Files
booth/booth.service
T
vh 726822b2b9 docs: the information architecture, and a v1 target to gate it against
The Booth was built as a file-shuttle on a whim and turned into the fleet's
operator-review surface without anyone deciding that. This is the decision,
written down, with the measurement that forced it.

The defect behind every bolt-on: one lifetime and one shape serving five jobs.
Five separate mechanisms exist to put one question next to one artifact.

Numbers that drove the model, taken against the live service:
  - 211 link rows, 145 (69%) pointing at booths that no longer exist
  - 22 rows that are the same bench re-posted (talk 5x, peedlar 4x)
  - 13 of 24 booths (54%) on the .forever escape hatch
  - 270 images rendered as one flat wall, subfolders discarded at render
  - 5 commits in one day to ship the asks primitive

Four nouns replace the accretion: booth (derived lifetime), item (one record),
mark (pick/note/flag -- asks, comments and votes were always one thing), and
bench (a registry, not an append log).

v1 is seven capabilities, each closing a measured defect. Compare mode is the
best idea in the set and is parked anyway, because it is the only one that is a
new capability rather than a fix.
2026-09-21 21:57:21 -07:00

22 lines
803 B
Desktop File

[Unit]
Description=The Booth — ephemeral media drop board (scan+serve ~/booth-data, 24h TTL)
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
WorkingDirectory=/home/lkraven/development/booth
ExecStart=/home/lkraven/development/booth/.venv/bin/uvicorn booth.app:app --host 0.0.0.0 --port 8090
Environment=BOOTH_DATA_DIR=/home/lkraven/booth-data
Environment=BOOTH_TTL_HOURS=24
Environment=BOOTH_HOST_LABEL=nh3-dev 10.100.10.50
Environment=BOOTH_SWEEP_INTERVAL_MIN=15
Restart=on-failure
RestartSec=3
# User-level unit: install to ~/.config/systemd/user/booth.service and
# systemctl --user daemon-reload && systemctl --user enable --now booth.service
# (loginctl enable-linger lkraven — so it survives logout, already set on nh3-dev)
[Install]
WantedBy=default.target