# task-board MCP + web dashboard that shows what the assistant is working on. Green (active) / Red (waiting) / Grey (dormant) cards with comment streams. **Server:** ana-docker **Port:** 7878 (configurable via `.env`) **Upstream repo:** [vh/task-board](https://gitea.phasefinal.com/vh/task-board) **Image:** `task-board:local` — built on the host from the git repo by the deploy playbook. Not pulled from a registry. ## Deploy Two paths — automated (preferred) and manual (escape hatch / first-time). ### Automated (Gitea Actions, push-to-main) Once the central gitea-runner is up (see `stacks/gitea-runner/README.md`), every push to `main` on `vh/task-board` triggers a deploy. The workflow just calls the same elway playbook below; the playbook stays the single source of truth for "how task-board is deployed." Workflow template lives next to this README at [`gitea-workflow-deploy.yaml.example`](gitea-workflow-deploy.yaml.example); copy it into the task-board repo at `.gitea/workflows/deploy.yaml`. The example header lists the two repo secrets required (`DEPLOY_SSH_KEY`, `MGMT_REPO_TOKEN`). ### Manual (elway from a workstation) The playbook owns the full flow: clone/update the source repo, `docker build`, install compose + seed .env, bring up, verify health. ```bash # First deploy (or update to latest main) scripts/elway ana-docker --playbook playbooks/deploy-task-board.yaml # Pin to a specific ref (tag, branch, or commit SHA) scripts/elway ana-docker --playbook playbooks/deploy-task-board.yaml --var ref=v0.1.0 ``` ## Wiring into Claude Code After deploy, add to `~/.claude/settings.json` (user-level) or `.mcp.json` (project-level): ```json { "mcpServers": { "task-board": { "type": "http", "url": "http://10.250.50.70:7878/mcp" } } } ``` Assistant gains four tools (`task_start`, `task_update`, `task_wait`, `task_complete`). Web UI at `http://10.250.50.70:7878/`. ## Path layout (on ana-docker) | Host path | Container path | Purpose | Restic? | |---|---|---|---| | `/opt/docker/build/task-board/` | — | git checkout used as docker build context | excluded | | `/opt/docker/compose/task-board/` | — | compose.yaml + .env | included (via `/opt/docker`) | | `/opt/docker/conf/task-board/data/` | `/app/data` | SQLite (`tasks.db`) | **included** |