Skip to content

Latest commit

 

History

History
68 lines (57 loc) · 3.23 KB

File metadata and controls

68 lines (57 loc) · 3.23 KB

Supervisor — pipeline + dashboard control

Both the 10 pipeline workers and the dashboard web UI run under supervisord (replacing the old systemd --user wildlife@<name> units and the dashboard Docker container). The workers are the wildlife group; the dashboard is a standalone dashboard program.

Files

  • wildlife.conf — the 10 worker programs ([program:<worker>]) + [group:wildlife].
  • dashboard.conf — the dashboard program (wildlife dashboard on :8080), run on the host (editable install → serves live src/ code). Standalone, not in the group.
  • web.conf — enables the supervisord web UI ([inet_http_server]) on port 9999.
  • install-supervisor.sh — installs supervisor (if needed), retires the old systemd --user units, stops the Docker dashboard container, copies all *.conf into /etc/supervisor/conf.d/, and restarts supervisord.

Dashboard

The web UI now runs on the host as the dashboard supervisor program (not Docker), serving the live src/wildlife/dashboard code on :8080. After editing dashboard code, sudo supervisorctl restart dashboard (templates reload per request without a restart). Revert to Docker: sudo supervisorctl stop dashboard then docker compose up -d dashboard.

Web UI

Browser control at http://<server>:9999/ (e.g. http://192.168.1.64:9999/) — view every worker and start/stop/restart/tail-log from the page. Basic auth, default wildlife / wildlife (change it in web.conf, then re-run the install script). Editing web.conf needs a full restart to apply (sudo systemctl restart supervisor, which the install script does); reread/update won't pick up the web-server section.

Deploy / update

Run on the server as bryan (not sudo — the script sudo's the root bits itself):

bash deploy/supervisor/install-supervisor.sh

Re-run any time after editing wildlife.conf to push changes and reload.

Control

sudo supervisorctl status wildlife:*              # all workers
sudo supervisorctl restart wildlife:animal-gate   # one worker
sudo supervisorctl stop  wildlife:*               # stop everything
sudo supervisorctl start wildlife:*               # start everything
sudo supervisorctl tail -f wildlife:animal-gate   # follow a worker's log

Per-worker logs also land in state/logs/<worker>.log (rotated, 10 MB × 3).

Workers

resmon, sd-import, ingest, animal-gate, audio-cleanup, species-visual, species-audio, caption-assembler, highlight-curator, stream-compiler

Revert to systemd --user

sudo supervisorctl stop wildlife:*
sudo rm /etc/supervisor/conf.d/wildlife.conf && sudo supervisorctl update
for w in resmon sd-import ingest animal-gate audio-cleanup species-visual \
         species-audio caption-assembler highlight-curator stream-compiler; do
  systemctl --user enable --now "wildlife@${w}.service"
done

Note — dashboard "Restart workers" button

That button (Config page) drops a request the resmon worker acts on by running systemctl --user restart wildlife@*. After moving to supervisor those user units are gone, so the button no longer restarts anything — use supervisorctl instead (or ask to have resmon rewired to call supervisorctl). The compilation render bridge is unaffected.