# ===================================================================== # Host-side settings for vm/host/install.sh. # # cp configs/host.env.example configs/host.env # # EVERYTHING HERE IS OPTIONAL. install.sh works out a value for each one # from the machine it finds, and this file is only for when its guess is # wrong. Copy it, set the lines you care about, delete the rest. It is # gitignored, because it describes your machine rather than the project. # # These are read at INSTALL time and baked into the units and scripts # that are written out, so re-run install.sh after changing anything. # ===================================================================== # --- who and where ---------------------------------------------------- # The person who operates the VMs: who gets the desktop shortcut, and who # polkit lets unfreeze a base image. Detected from `sudo`, so you only # need this if you install as someone other than yourself. #OWUIVM_OPERATOR=yourname # The ZFS pool that holds overlays and project folders, by MOUNTPOINT. # install.sh creates /vmrun and /vmprojects if they are # missing, and puts a quota on the first. # # It must be ZFS: the per-project quota and the overlay ceiling are ZFS # quotas, and they are what stops a runaway guest filling the root # filesystem and taking Docker, Ollama and Open WebUI down with it. # `zfs list` shows what you have. #OWUIVM_POOL_ROOT=/Pool # How much room the throwaway overlays get between them. #OWUIVM_OVERLAY_QUOTA=40G # --- how much of the machine one VM may take -------------------------- # Derived from nproc and installed RAM, leaving headroom for Ollama - # which needs cores for sampling while a session runs, so taking every # core makes both slower. #OWUIVM_VM_MEM_MB=8192 #OWUIVM_VM_CPUS=8 # The cgroup ceilings. They sit above the guest's own figures because # qemu's overhead is outside the guest's RAM, and a unit that hits its # own MemoryMax is killed rather than slowed. #OWUIVM_MEMORY_MAX=11G #OWUIVM_CPU_QUOTA=700% #OWUIVM_MAINT_CPU_QUOTA=800% # Pin the VM to particular cores. EMPTY MEANS NO PINNING, which is right # unless something else on this machine owns specific cores. #OWUIVM_ALLOWED_CPUS=20-27 # --- what the daemon may reach ---------------------------------------- # vmd runs with IPAddressDeny=any and an allowlist. Gitea is NOT on it by # default: a fresh install has no Gitea, publishing is optional, and the # daemon should not be given reach it does not need. # # BOTH the LAN address and the container's own Docker network are needed, # and the second is not redundant - systemd's filter is a BPF program on # the cgroup's packets, and Docker's DNAT has already rewritten the # destination by the time it sees them. Measured: with only the /32 the # connection times out. See docs/setup/gitea.md. #OWUIVM_GITEA_ALLOW="192.168.1.10/32 172.28.0.0/16" # The tool server's own subnet, for the sub-agent's lookup tools. Pinned # in docker-compose.yml, so change both together or neither. #OWUIVM_TOOLS_SUBNET=172.22.0.0/24