cc694e71b4
- 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
30 lines
1.9 KiB
Markdown
30 lines
1.9 KiB
Markdown
## 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
|