Files
esh-pfi-infrastructure/stacks/task-board/compose.yaml
T
vh e6da607767 chore(task-board): mothball it; superseded by the High Seat and ledger
Operator ruling 2026-09-24. On ana-docker the stack is `docker compose
down`: the container is removed and port 7878 is closed. Kept for revival:
- the data dir /opt/docker/conf/task-board/data (tasks.db, last written
  2026-09-11)
- the task-board:local image
- stacks/task-board/ and the host's compose + .env

The Uptime Kuma monitor (id 3) was deleted before the stop so it could
not page, and its row is removed from monitors.yaml. Homepage drops the
card on its own, since it reads the container's labels.

Hooks: the container log showed no hook POSTs in 30 days. The only
traffic was open browser tabs holding /events, and the plugin was already
uninstalled on nh3-dev. Removed the paragraph that told sessions to call
task_* tools (CLAUDE.md, and the fork-fleet.sh template that seeds new
repos), the vestigial TASK_BOARD_SESSION env in .claude/settings.json, and
the listings in README and FLEETTOOLS.
2026-09-24 09:22:50 -07:00

54 lines
2.1 KiB
YAML

# task-board — MCP + web dashboard for assistant task state.
#
# ⚠ MOTHBALLED 2026-09-24 (operator): superseded by the High Seat (SVOS) and
# ledger. On ana-docker the container is `docker compose down`ed; the data dir
# (/opt/docker/conf/task-board/data, tasks.db last written 2026-09-11), the
# task-board:local image and this compose + .env are KEPT. To revive:
# `cd /opt/docker/compose/task-board && docker compose up -d`, then re-add its
# Uptime Kuma row. Its Claude Code hooks had sent no traffic for 30+ days.
#
# Image is built on the host from the task-board git repo by the deploy
# playbook (`playbooks/deploy-task-board.yaml`), which clones into
# /opt/docker/build/task-board and runs `docker build -t task-board:local .`
# before installing this compose and bringing it up.
#
# SQLite state persists under ${TASK_BOARD_DATA_DIR} (bind-mounted) so
# container rebuilds don't lose task history.
#
# All tunables live in .env — edit that, not this file.
services:
task-board:
image: ${TASK_BOARD_IMAGE}
container_name: task-board
restart: unless-stopped
ports:
- "${TASK_BOARD_BIND:-0.0.0.0}:${TASK_BOARD_PORT}:7878"
volumes:
- ${TASK_BOARD_DATA_DIR}:/app/data
environment:
# Container always listens on 7878 internally; host port is the only knob.
- TASK_BOARD_PORT=7878
- TASK_BOARD_BIND=0.0.0.0
- TASK_BOARD_DORMANT_AFTER=${TASK_BOARD_DORMANT_AFTER:-3600}
- TASK_BOARD_ARCHIVE_TTL=${TASK_BOARD_ARCHIVE_TTL:-86400}
healthcheck:
test: ["CMD-SHELL", "python -c 'import urllib.request,sys; r=urllib.request.urlopen(\"http://127.0.0.1:7878/api/health\",timeout=3); sys.exit(0 if r.status==200 else 1)' || exit 1"]
interval: 30s
timeout: 5s
retries: 3
start_period: 15s
networks:
- tnet
labels:
- homepage.group=Toolchain
- homepage.name=task-board
- homepage.icon=mdi-view-dashboard-variant
- homepage.description=Assistant task state dashboard (MCP + web UI)
- homepage.href=http://10.250.50.70:${TASK_BOARD_PORT}
networks:
tnet:
name: traefik-net
external: true