Files
family_home_lab/deploy/service-controller/services.toml
Sam Rolfe 990e433117 panel: remove the Ollama card and its controller entry
The local 14B model is not usable from this machine (8.25 tok/s prompt
processing; pi sends a 9,510-token agent prompt against a 4,096 context, so it
was truncated to 2,050 and still needed ~4 min before the first token). Nothing
about the panel was worth keeping for it.

- portal/tools.py: drop the 'Ollama Local LLM' tile (no other references remain)
- services.toml: drop the ollama allowlist entry; 8 services remain
- service_controller.py + docs: keep the generic 'systemd-system' kind but drop
  the ollama-specific wording and mark it as currently unused

Verified on .13: /api/services no longer lists ollama, the deployed tools.py has
0 ollama matches, the other 8 cards still report correctly, portal is healthy.
2026-10-12 19:39:45 +11:00

102 lines
2.9 KiB
TOML

# service-controller allowlist — ON_OFF.md §3/§4.
#
# Only services listed here can be started/stopped. Everything else 404s.
# Safety (non-negotiable, §6): never list console deps, house-critical audio,
# voice/whisper/HA path, or n8n/prefect-server (shared infra, always on).
#
# kind:
# container -> docker start/stop <target> (sam is in the docker group)
# systemd-user -> systemctl --user start/stop <target> (local .13 user units)
# systemd-system -> sudo -n systemctl start/stop <target> (system units; `remote`
# sends it over ssh). Needs a matching NOPASSWD sudoers rule on
# the target host, and `target` must match it verbatim
# (e.g. "foo", not "foo.service").
# NOTE: no service currently uses this kind.
#
# group "media": family-facing editors (shared by everyone).
# group "pipeline": photo ingestion (prefect worker + dashboard) — admin only.
# group "admin": heavy infra someone may pause when idle — admin only.
[[services]]
id = "gimp"
kind = "container"
target = "family-home-lab-gimp-1"
group = "media"
label = "GIMP"
ram_mb = 233
default_state = "stopped"
who = ["sam", "finn", "harry", "jo"]
[[services]]
id = "video-editor"
kind = "container"
target = "family-home-lab-video-editor-1"
group = "media"
label = "Video Editor (KdenLive)"
ram_mb = 237
default_state = "stopped"
who = ["sam", "finn", "harry", "jo"]
[[services]]
id = "audio-editor"
kind = "container"
target = "family-home-lab-audio-editor-1"
group = "media"
label = "Audio Editor (Audacity)"
ram_mb = 201
default_state = "stopped"
who = ["sam", "finn", "harry", "jo"]
[[services]]
id = "lmms"
kind = "container"
target = "lmms"
group = "media"
label = "LMMS Music Studio"
ram_mb = 798 # incl. webtop desktop; Xvfb fixed to 2560x1440 (2026-10-07)
default_state = "stopped"
who = ["sam", "finn", "harry", "jo"]
[[services]]
id = "paperclip"
kind = "systemd-user"
target = "paperclipai"
group = "admin"
label = "Paperclip"
ram_mb = 495
default_state = "stopped"
who = ["sam"]
# Photo ingestion pipeline — admin controlled. Do NOT stop while ingesting
# Google Photos (user actively working on it, 2026-10-07).
[[services]]
id = "prefect-worker"
kind = "systemd-user"
target = "prefect-worker"
group = "pipeline"
label = "Prefect worker (photo pool)"
ram_mb = 129
default_state = "running"
who = ["sam"]
[[services]]
id = "photo-dashboard"
kind = "systemd-user"
target = "photo-dashboard"
group = "pipeline"
label = "Photo pipeline dashboard"
ram_mb = 112
default_state = "running"
who = ["sam"]
# WorldMonitor — 4-container group (UI + relay + redis + rest). One switch for all.
[[services]]
id = "worldmonitor"
kind = "container"
targets = ["worldmonitor", "worldmonitor-ais-relay", "worldmonitor-redis", "worldmonitor-redis-rest"]
group = "admin"
label = "World Monitor"
ram_mb = 120
default_state = "running"
who = ["sam"]