cdf21682d6
AES-256-GCM encryption for credential storage, YAML seed config parser with validation, and transactional import into SQLite. Credentials (registry tokens, NPM password) encrypted before storage.
86 lines
4.4 KiB
Markdown
86 lines
4.4 KiB
Markdown
# 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
|
|
|
|
- [x] Phase 1: Project Scaffold & SQLite Store [domain: backend] → [subplan](./phase-1-scaffold-store.md)
|
|
- [ ] Phase 2: Crypto & Config Seed Loader [domain: backend] → [subplan](./phase-2-crypto-config.md)
|
|
- [ ] Phase 3: Docker Client [domain: backend] → [subplan](./phase-3-docker-client.md)
|
|
- [ ] Phase 4: NPM Client [domain: backend] → [subplan](./phase-4-npm-client.md)
|
|
- [ ] Phase 5: Registry Client & Poller [domain: backend] → [subplan](./phase-5-registry-poller.md)
|
|
- [ ] Phase 6: Webhook Handler [domain: backend] → [subplan](./phase-6-webhook-handler.md)
|
|
- [ ] Phase 7: Deployer & Health Checker [domain: backend] → [subplan](./phase-7-deployer.md)
|
|
- [ ] Phase 8: REST API Layer [domain: backend] → [subplan](./phase-8-api-layer.md)
|
|
- [ ] Phase 9: SvelteKit Dashboard & Project Views [domain: frontend] → [subplan](./phase-9-dashboard.md)
|
|
- [ ] Phase 10: Quick Deploy & Settings Pages [domain: frontend] → [subplan](./phase-10-settings-deploy.md)
|
|
- [ ] Phase 11: Frontend Embed & Real-Time Updates [domain: fullstack] → [subplan](./phase-11-embed-sse.md)
|
|
- [ ] Phase 12: Hardening [domain: backend] → [subplan](./phase-12-hardening.md)
|
|
- [ ] Phase 13: Frontend Polish & Modern UI [domain: frontend] → [subplan](./phase-13-ui-polish.md)
|
|
|
|
### 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 | ⬜ Not Started | ⬜ | ⏭️ Skip (Big Bang) | ⬜ |
|
|
| Phase 3: Docker Client | backend | ⬜ Not Started | ⬜ | ⏭️ Skip (Big Bang) | ⬜ |
|
|
| Phase 4: NPM Client | backend | ⬜ Not Started | ⬜ | ⏭️ Skip (Big Bang) | ⬜ |
|
|
| Phase 5: Registry & Poller | backend | ⬜ Not Started | ⬜ | ⏭️ Skip (Big Bang) | ⬜ |
|
|
| Phase 6: Webhook Handler | backend | ⬜ Not Started | ⬜ | ⏭️ Skip (Big Bang) | ⬜ |
|
|
| Phase 7: Deployer & Health | backend | ⬜ Not Started | ⬜ | ⏭️ 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`
|