1.6 KiB
1.6 KiB
Playbook: Add a Host Toggle
- Name: Add or adjust host toggles
- Purpose: Enable categories, services, or features per host in
hosts/<name>/toggles.nix. - Prerequisites: Identify host role (see Hosts and Roles), secureHost setting, and whether proxies/containers are required.
- Inputs: Toggle category (apps/dev/scripts/services/servers/units), users list, proxy/container flags, mainServer override, network interface names.
- Steps:
- Open
hosts/<name>/toggles.nixand adjust category maps using helper patterns (enableListwithmkEnabled,mkEnabledWithUsers, ormkEnabledIp). - Set feature flags such as
enableProxy,enableContainers, andmainServerwhen the host should own proxied services. - Add service toggles under
serverswith proxy/ip data as needed; align IPs tomy.ips(e.g.,mkEnabledIpfor remote hosts). - Ensure
interfacesentries exist for network-facing services and matchmy.interfacesdefaults unless intentionally overridden. - Reconcile toggle changes with secrets and secureHost: avoid enabling secret-backed services on hosts with
secureHost = false.
- Open
- Validation:
- Toggle sets align with host capabilities and
my.secureHost. - Proxy- or container-dependent services have
enableProxy/enableContainersenabled. - IP/interface values match
docs/reference/index.mdentries.
- Toggle sets align with host capabilities and
- Outputs: Updated host toggle file reflecting new enablement and infrastructure flags.
- References:
docs/constitution.md(Hosts and toggles, Main server and proxies),docs/reference/index.md(Hosts and Roles, Proxy rules, Network maps)