Files
tiny-forge/plans/docker-watcher-core/PLAN.md
T
alexei.dolgolyov bbcc4f55f0 feat(docker-watcher): phase 7 - deployer & health checker
Deploy orchestrator with full pipeline: pull → create container →
start → network → NPM proxy → health check. Rollback on failure,
multi-instance support, max_instances enforcement, webhook notifications.
Fix NPM auth in rollback and error logging in removeInstance.
2026-03-27 22:02:09 +03:00

4.5 KiB

Feature: Docker Watcher Core

Branch: feature/docker-watcher-core Base branch: main Created: 2026-03-27 Status: 🟡 In Progress Strategy: Big Bang (with per-phase code quality reviews) Mode: Automated Execution: Orchestrator

Summary

A self-hosted tool that automates Docker container deployment with Nginx Proxy Manager integration. Detects new images from Gitea/GitHub registries, deploys containers, and configures reverse proxy routing — all from a web dashboard. Supports multiple simultaneous versions of the same project.

Build & Test Commands

  • Build (Go): go build ./cmd/server/
  • Test (Go): go test ./...
  • Lint (Go): golangci-lint run
  • Build (Frontend): cd web && npm run build
  • Test (Frontend): cd web && npm test
  • Dev server: go run ./cmd/server/

Phases

  • Phase 1: Project Scaffold & SQLite Store [domain: backend] → subplan
  • Phase 2: Crypto & Config Seed Loader [domain: backend] → subplan
  • Phase 3: Docker Client [domain: backend] → subplan
  • Phase 4: NPM Client [domain: backend] → subplan
  • Phase 5: Registry Client & Poller [domain: backend] → subplan
  • Phase 6: Webhook Handler [domain: backend] → subplan
  • Phase 7: Deployer & Health Checker [domain: backend] → subplan
  • Phase 8: REST API Layer [domain: backend] → subplan
  • Phase 9: SvelteKit Dashboard & Project Views [domain: frontend] → subplan
  • Phase 10: Quick Deploy & Settings Pages [domain: frontend] → subplan
  • Phase 11: Frontend Embed & Real-Time Updates [domain: fullstack] → subplan
  • Phase 12: Hardening [domain: backend] → subplan
  • Phase 13: Frontend Polish & Modern UI [domain: frontend] → subplan

Parallel Execution Notes

  • Phases 3 and 4 are independent (Docker client vs NPM client) — can run in parallel
  • Phases 9 and 10 are independent (dashboard vs settings pages) — can run in parallel

Phase Progress Log

Phase Domain Status Review Build Committed
Phase 1: Scaffold & Store backend Complete Pass w/ fixes ⏭️ Skip (Big Bang)
Phase 2: Crypto & Config backend Complete Pass w/ notes ⏭️ Skip (Big Bang)
Phase 3: Docker Client backend Complete Pass w/ fixes ⏭️ Skip (Big Bang)
Phase 4: NPM Client backend Complete Pass w/ fixes ⏭️ Skip (Big Bang)
Phase 5: Registry & Poller backend Complete Pass w/ fixes ⏭️ Skip (Big Bang)
Phase 6: Webhook Handler backend Complete Pass w/ fixes ⏭️ Skip (Big Bang)
Phase 7: Deployer & Health backend Complete Pass w/ fixes ⏭️ Skip (Big Bang)
Phase 8: API Layer backend Not Started ⏭️ Skip (Big Bang)
Phase 9: Dashboard frontend Not Started ⏭️ Skip (Big Bang)
Phase 10: Settings & Deploy frontend Not Started ⏭️ Skip (Big Bang)
Phase 11: Embed & SSE fullstack Not Started ⏭️ Skip (Big Bang)
Phase 12: Hardening backend Not Started ⏭️ Skip (Big Bang)
Phase 13: UI Polish frontend Not Started Required (Final)

Amendment Log

Amendment 1 — 2026-03-27

Type: Added phase What changed: Added Phase 13: Frontend Polish & Modern UI after Phase 12 Why: User wants modern look & feel with SVG icons and polished frontend Impact on existing phases: None — Phase 13 runs after all functionality is complete. Build/tests now required on Phase 13 (final) instead of Phase 12.

Amendment 2 — 2026-03-27

Type: Modified phase What changed: Added Task 13 (EN/RU localization) to Phase 13: Frontend Polish & Modern UI Why: User wants bilingual support (English and Russian) in the dashboard Impact on existing phases: None — contained within Phase 13

Final Review

  • Comprehensive code review
  • Full build passes
  • Full test suite passes
  • Security review
  • Merged to main