Measured rather than assumed: the compositor and Sunshine together hold 220 MiB on the 3060 — sway ~112, Sunshine ~108. That card also runs the local LLM, and with an 11.3 GB model resident on a 12 GB card the free headroom goes from 992 MiB to 772. Losing a fifth of what is left matters for KV cache growth, so leaving it running was the wrong default. sway-headless and sunshine no longer start at boot. `stream on` brings them up, `stream status` reports state and VRAM, and sunshine-idle-stop.timer checks every five minutes whether any Moonlight client still holds a connection to 47984/47989/48010 — stopping the stack after 15 idle minutes so a forgotten session does not sit on memory the inference stack wants. Note for future edits: `systemctl --user disable` on a unit dotbot has symlinked into ~/.config/systemd/user deletes the symlink itself, because systemd treats it as a linked unit. Re-run ./install after disabling one.
48 lines
2.9 KiB
YAML
48 lines
2.9 KiB
YAML
# Headless homelab host. No WM, no terminal emulator, no browser.
|
|
# Owns every singleton automation in the fleet.
|
|
# dotbot does NOT carry a defaults block between config files, so each host
|
|
# config has to restate it. Without this, linking a path that already exists
|
|
# as a real file fails instead of replacing it.
|
|
- defaults:
|
|
link:
|
|
create: true
|
|
relink: true
|
|
force: true
|
|
|
|
- link:
|
|
~/.config/sway/headless.conf: hosts/mainframe/sway/headless.conf
|
|
~/.config/systemd/user/sway-headless.service: hosts/mainframe/systemd/sway-headless.service
|
|
~/.config/systemd/user/sunshine-idle-stop.service: hosts/mainframe/systemd/sunshine-idle-stop.service
|
|
~/.config/systemd/user/sunshine-idle-stop.timer: hosts/mainframe/systemd/sunshine-idle-stop.timer
|
|
~/.config/systemd/user/sunshine.service: hosts/mainframe/systemd/sunshine.service
|
|
~/.config/inbox-tidy: hosts/mainframe/config/inbox-tidy
|
|
~/.config/llmfit: hosts/mainframe/config/llmfit
|
|
~/.ssh/config.local: hosts/mainframe/ssh/config.local
|
|
~/.config/git/identity: hosts/mainframe/git/identity
|
|
~/.config/paru: common/paru
|
|
~/.config/rbw: common/rbw
|
|
~/.config/opencode/personal.json: common/opencode/personal.json
|
|
~/.config/opencode/work.json: common/opencode/work.json
|
|
~/.config/opencode/work-strict.json: common/opencode/work-strict.json
|
|
~/.config/opencode/local.json: common/opencode/local.json
|
|
~/.claude/CLAUDE.md: common/claude/CLAUDE.md
|
|
~/.claude/settings.json: common/claude/settings.json
|
|
~/.config/sunshine/sunshine.conf: hosts/mainframe/sunshine/sunshine.conf
|
|
~/.config/sunshine/apps.json: hosts/mainframe/sunshine/apps.json
|
|
~/.config/systemd/user/inbox-tidy.service: hosts/mainframe/systemd/inbox-tidy.service
|
|
~/.config/systemd/user/inbox-tidy.timer: hosts/mainframe/systemd/inbox-tidy.timer
|
|
~/.config/systemd/user/movie-recs.service: hosts/mainframe/systemd/movie-recs.service
|
|
~/.config/systemd/user/movie-recs.timer: hosts/mainframe/systemd/movie-recs.timer
|
|
~/.config/systemd/user/rent-utilities.service: hosts/mainframe/systemd/rent-utilities.service
|
|
~/.config/systemd/user/rent-utilities.timer: hosts/mainframe/systemd/rent-utilities.timer
|
|
~/.config/systemd/user/ddns.service: hosts/mainframe/systemd/ddns.service
|
|
~/.config/systemd/user/ddns.timer: hosts/mainframe/systemd/ddns.timer
|
|
|
|
- shell:
|
|
- command: systemctl --user daemon-reload
|
|
description: Reloading user units
|
|
- command: systemctl --user enable --now inbox-tidy.timer movie-recs.timer rent-utilities.timer ddns.timer
|
|
description: Enabling the singleton timers (mainframe only)
|
|
- command: systemctl --user enable --now sunshine-idle-stop.timer
|
|
description: Enabling the streaming idle-stop watchdog (the stack itself starts on demand via `stream on`)
|