diff --git a/.planning/phases/06-deployment/06-CONTEXT.md b/.planning/phases/06-deployment/06-CONTEXT.md new file mode 100644 index 0000000..ba31f9c --- /dev/null +++ b/.planning/phases/06-deployment/06-CONTEXT.md @@ -0,0 +1,67 @@ +# Phase 6: Deployment - Context + +**Gathered:** 2026-02-01 +**Status:** Ready for planning + + +## Phase Boundary + +Application runs in Docker with persistent data and easy configuration. Single docker-compose.yml starts the entire application. Data persists via named volumes. + + + + +## Implementation Decisions + +### Container Setup +- Node Alpine base image (small ~150MB) +- Multi-stage build: separate build dependencies from runtime +- Run as non-root user ('node' user for security) +- Include /health endpoint for Docker health checks + +### Environment Configuration +- Extended config scope: PORT, DATA_DIR, log level, max upload size, etc. +- TASKPLANER_ prefix for all env vars (e.g., TASKPLANER_PORT) +- All env vars have sensible defaults (works out of the box, zero config required) +- Document in both README and .env.example template file + +### Data Persistence +- Single volume for all data (/data mount with db + images subdirs) +- Include backup.sh script that users can run +- Backups stored in local ./backups directory by default +- App auto-creates /data/db and /data/images directories on first run + +### Production Assumptions +- Designed to run behind reverse proxy (Nginx/Traefik handles HTTPS) +- docker-compose includes app only (no bundled reverse proxy) +- JSON logging format for log aggregators +- Trust X-Forwarded headers from proxy (for correct client IP logging) + +### Claude's Discretion +- Exact multi-stage build structure +- Which extended env vars to include beyond PORT/DATA_DIR +- Health check implementation details +- Backup script format (tar, timestamp naming) + + + + +## Specific Ideas + +- Works out of the box with zero configuration +- Single command to start: `docker-compose up -d` +- Backup script should be simple to run manually + + + + +## Deferred Ideas + +None — discussion stayed within phase scope + + + +--- + +*Phase: 06-deployment* +*Context gathered: 2026-02-01*