Files
backup-tool/openspec/changes/dockerize-and-pyproject-setup/proposal.md
T
alex cc694e71b4 feat: dockerize app and convert to pyproject setup
- Add pyproject.toml with proper metadata and dependency groups
- Create multi-stage Dockerfile for backend
- Add docker-compose.yml with dev/prod profiles
- Create frontend Dockerfile with nginx
- Add .dockerignore for optimized builds
- Update README with Docker instructions and troubleshooting
- Remove requirements.txt in favor of pyproject.toml
- Ensure data persistence with Docker volumes
2026-05-11 22:50:11 +02:00

1.9 KiB

Why

The current backup tool uses a simple requirements.txt for dependency management and lacks containerization. This makes deployment inconsistent across environments and complicates dependency resolution. Converting to a proper pyproject.toml setup and adding Docker support will provide reproducible builds, standardized packaging, and one-command deployment for users.

What Changes

  • Convert backend to pyproject.toml: Replace requirements.txt with a modern pyproject.toml including project metadata, dependencies, build system, and optional dev/test dependencies
  • Add Dockerfile: Multi-stage Docker build for the Python backend with proper layer caching
  • Add docker-compose.yml: Orchestrate backend + frontend services with volume mounts and environment configuration
  • Add .dockerignore: Optimize build context and exclude unnecessary files
  • Update README: Add Docker deployment instructions
  • Frontend containerization (optional): Dockerfile for production frontend build served via nginx or integrated into backend static serving

Capabilities

New Capabilities

  • docker-deployment: Container-based deployment with Docker and docker-compose for consistent environments
  • python-packaging: Modern Python packaging with pyproject.toml, proper dependency groups, and build tooling

Modified Capabilities

  • None (this is a build/deployment improvement, no spec-level behavior changes)

Impact

  • Build system: Replaces requirements.txt with pyproject.toml (standard modern Python practice)
  • Deployment: New Docker-based deployment path alongside existing manual setup
  • CI/CD: Enables standardized container builds for CI pipelines
  • Developer experience: docker compose up to start full stack instead of manual venv + npm setup
  • No API changes: All existing endpoints and functionality remain unchanged