Files
board-viewer/deploy/auth.toml.example
vitya e64d94cd25 feat(deploy): docker-compose stack for VDS (board.kzntsv.site) [skip-tdd: visual]
closes board-viewer-cron-deploy

Two-service stack at /opt/stacks/board-viewer/ on VDS:
- board-viewer-build (node:22-alpine): cron-loop `while true; do node cli.ts; sleep 300`,
  writes to shared docker volume `dist`
- board-viewer-web (nginx:alpine): serves dist read-only,
  Traefik route Host(`board.kzntsv.site`) → letsEncrypt + basic-auth middleware

Files:
- deploy/Dockerfile.build — build image (registry.kzntsv.site/board-viewer-build)
- deploy/docker-compose.yml — stack with traefik labels (`proxy` network, same as Gitea)
- deploy/nginx.conf — static serving with Cache-Control
- deploy/auth.toml.example — Gitea token + board_viewer_repos whitelist
- deploy/.env.example — BOARD_VIEWER_USERS for basic-auth (with $$ escape note)
- deploy/README.md — DNS setup + image build/push + bootstrap + smoke + DR steps

Configs are declarative ([skip-tdd: visual]). Acceptance = deploy + curl
(see README §4 'Verify'). Both auth.toml and .env are gitignored.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 15:09:30 +03:00

15 lines
518 B
Plaintext

# Copy to ./auth.toml (in the same dir as docker-compose.yml).
# Mounted read-only into the build container at /etc/board-viewer/auth.toml.
gitea_url = "https://git.kzntsv.site"
gitea_token = "REPLACE_WITH_GITEA_ADMIN_TOKEN"
# Whitelist of repos to scan. Each entry is "owner/repo".
# Only listed repos are inspected; repo without .tasks/STATUS.md → skipped silently.
board_viewer_repos = [
"OpeItcLoc03/board-viewer",
"OpeItcLoc03/books",
"OpeItcLoc03/claude-skills",
"OpeItcLoc03/projects-meta-mcp",
]