9c20e42215
stacks/task-board/compose.yaml + .env.example describe the runtime —
image tag is task-board:local (built on the host), 7878 on host maps
to 7878 in container, SQLite lives at /opt/docker/conf/task-board/data/
(bind mount, uid 1000 friendly), homepage auto-card labels under
Toolchain group, on traefik-net like the rest of the fleet.
playbooks/deploy-task-board.yaml is the first real elway playbook —
exercises everything we built tier-1 + tier-2 idempotency for:
- `creates:` on mkdir + first-time clone + compose dir + data dir
- `when:` to chown /opt/docker/build only if it came up root-owned
- `when:` to seed .env only if one doesn't already exist (never
clobbers user edits on rerun)
- `changed_when:` on the `git reset --hard` step so repeat runs
against the same ref report `ok` instead of `changed`
- `changed_when: "false"` on every verify step (they attest, not
change)
- `upload:` with mode for compose.yaml + .env
Post-up the playbook polls /api/health for 30s before handing off to
the verify phase, so verification doesn't race the healthcheck's
start_period. Verify covers: /api/health 200, /api/tasks shape, /mcp
reachable, container on traefik-net.
Prereqs documented in the playbook header: Docker + compose plugin,
traefik-net network, git SSH access to gitea from the target host.
26 lines
1016 B
Bash
26 lines
1016 B
Bash
# task-board stack tunables. Copy to `.env` on ana-docker before deploying.
|
|
#
|
|
# The deploy playbook seeds `.env` from this template on first run only —
|
|
# it won't clobber an existing `.env`.
|
|
|
|
# Image tag. Built locally from the task-board git repo by the playbook.
|
|
TASK_BOARD_IMAGE=task-board:local
|
|
|
|
# Host port exposing MCP + web UI (container listens on 7878 internally).
|
|
TASK_BOARD_PORT=7878
|
|
|
|
# Bind address. 0.0.0.0 exposes to LAN; 127.0.0.1 restricts to localhost.
|
|
# Claude Code running on another machine needs LAN (or SSH-forward + 127.0.0.1).
|
|
TASK_BOARD_BIND=0.0.0.0
|
|
|
|
# Host path for the SQLite store. Container runs as uid 1000 — path must be
|
|
# writable by that uid (mkdir'd by the playbook without sudo, so lkraven-owned
|
|
# when lkraven is uid 1000 on the host).
|
|
TASK_BOARD_DATA_DIR=/opt/docker/conf/task-board/data
|
|
|
|
# Seconds of inactivity before a card turns grey (dormant).
|
|
TASK_BOARD_DORMANT_AFTER=3600
|
|
|
|
# Seconds archived (completed) cards are kept before hard-delete.
|
|
TASK_BOARD_ARCHIVE_TTL=86400
|