From 70dbc40246d303b995d999dbd75104187985b501 Mon Sep 17 00:00:00 2001 From: alexion Date: Thu, 10 Sep 2026 07:52:48 -0400 Subject: [PATCH] docs: remove stale SteamCMD server notes --- docs/00 INBOX/ai/steamcmd-server.md | 93 ----------------------------- 1 file changed, 93 deletions(-) delete mode 100644 docs/00 INBOX/ai/steamcmd-server.md diff --git a/docs/00 INBOX/ai/steamcmd-server.md b/docs/00 INBOX/ai/steamcmd-server.md deleted file mode 100644 index 6a4cc67..0000000 --- a/docs/00 INBOX/ai/steamcmd-server.md +++ /dev/null @@ -1,93 +0,0 @@ -# Add a SteamCMD server - -## 1. Configure the generic SteamCMD module - -1. Create or update `configs/nixos/modules/services/steamcmd.nix`. -2. Define `modules.services.steamcmd.enable`. -3. Create the `steamcmd` service user. -4. Configure the shared SteamCMD data directory. -5. Add options for one Steam app service. -6. Run SteamCMD before the game service starts. -7. Update the Steam app on each service restart. -8. Add a restart timer with default settings. -9. Add an option that overrides the restart command. -10. Open declared in-machine firewall ports. - -## 2. Configure the game service module - -1. Create or update `configs/nixos/modules/services/.nix`. -2. Define `modules.services..enable`. -3. Add the Steam app ID for the dedicated server. -4. Add runtime packages that the server binary needs. -5. Add `serverName` for the service identity. -6. Use `serverName` as the default world or save name. -7. Add a game-specific world or save option when the game supports it. -8. Add guest-internal paths for server files and durable state. -9. Add options for required ports. -10. Add options for required secret files or values. -11. Map the game options to `modules.services.steamcmd`. -12. Configure the game service command. -13. Pass secrets to the service without embedding secret values in Nix. -14. Open the required in-machine firewall ports. - -## 3. Configure the guest module - -1. Create or update `configs/nixos/guests/.nix`. -2. Define `guests.` options for host-level wiring. -3. Add `serverName`. -4. Pass `serverName` to `modules.services.` inside `interior`. -5. Add host path options for SteamCMD data, server files, and durable state. -6. Use names such as `steamcmdPath`, `serverPath`, and `statePath`. -7. Mount each host path into the guest. -8. Mount sops-backed secret files read-only into the guest. -9. Pass guest paths for secret files to `modules.services.`. -10. Set guest resource limits. -11. Keep VLAN placement and address wiring in the guest or host configuration. - -## 4. Add host storage - -1. Choose a host path for SteamCMD data. -2. Choose a host path for downloaded server files. -3. Choose a host path for world data, saves, and generated config. -4. Configure those paths through `guests.`. - -## 5. Add secrets - -1. Add a sops secret for each durable server secret. -2. Configure the guest option that names each sops secret. -3. Do not put passwords or tokens in Nix strings. -4. Do not pass passwords or tokens as process arguments. - -## 6. Configure networking - -1. Keep game port knowledge in `modules.services.`. -2. Open game ports from `modules.services.`. -3. Configure guest VLAN placement from the guest or host configuration. -4. Add a DHCP reservation before you commit a stable guest address. -5. Forward public ports to the guest address when the server needs public access. - -## 7. Enable the guest on the target host - -1. Set `guests..enable = true`. -2. Set `guests..serverName` to the server identity. -3. Set the host paths for SteamCMD data, server files, and durable state. -4. Set the secret names for the server. -5. Set the guest network options required by the host. - -## 8. Deploy the host - -1. Run `deploy-to ` from a clean checkout. -2. Check `container@.service` on the host. -3. Enter the guest with `nixos-container root-login `. -4. Check the SteamCMD update service. -5. Check the game service with `systemctl status `. -6. Follow logs with `journalctl -u -f`. - -## 9. Validate the server - -1. Confirm the guest address with `machinectl status `. -2. Connect from the LAN before you add public forwarding. -3. Restart the game service. -4. Confirm that the restart updates the Steam app. -5. Confirm that the restart timer uses the expected command. -6. Confirm that durable state lands in the mounted state path.