## 1. Python Packaging (pyproject.toml) - [x] 1.1 Create `backend/pyproject.toml` with project metadata, dependencies, and build system - [x] 1.2 Migrate all dependencies from `requirements.txt` to `pyproject.toml` - [x] 1.3 Add optional dependency groups: `[dev]` for pytest, `[prod]` for gunicorn - [x] 1.4 Add console script entry point for `backup-tool` CLI - [x] 1.5 Test `pip install -e .` works correctly - [x] 1.6 Remove `backend/requirements.txt` or mark as deprecated ## 2. Docker Configuration - [x] 2.1 Create `.dockerignore` to optimize build context - [x] 2.2 Create `backend/Dockerfile` with multi-stage build (builder + runtime) - [x] 2.3 Create `docker-compose.yml` for full stack orchestration - [x] 2.4 Add docker-compose profiles for dev (hot reload) and prod modes - [x] 2.5 Ensure SQLite database and backups persist across container restarts ## 3. Integration and Testing - [x] 3.1 Test Docker image builds successfully from project root - [x] 3.2 Test `docker compose up` starts both backend and frontend - [x] 3.3 Verify backend hot reload works in development mode - [x] 3.4 Verify production mode serves static frontend files - [x] 3.5 Run existing test suite inside Docker container - [x] 3.6 Test data persistence: create backup, restart containers, verify data exists ## 4. Documentation - [x] 4.1 Update `README.md` with Docker installation instructions - [x] 4.2 Document environment variables for Docker configuration - [x] 4.3 Add troubleshooting section for common Docker issues - [x] 4.4 Document both manual and Docker deployment paths