-
Notifications
You must be signed in to change notification settings - Fork 0
Description
This EPIC tracks the overall development roadmap for the Torrust Tracker Deployer project.
π Living Documentation
- π Complete Roadmap:
docs/roadmap.md - β Q&A Clarifications:
docs/roadmap-questions.md - π οΈ Feature Process:
docs/features/README.md
π― Roadmap Overview
The roadmap is organized into 7 main sections with incremental delivery:
- Main app scaffolding - Console commands, logging, presentation layer β Near completion (8/9 tasks)
- Hetzner provider - Additional infrastructure provider support β COMPLETED
- Application commands - Service deployment with incremental slicing β COMPLETED
- Docker image - Official containerized deployer
- Console commands - Status and testing capabilities
- HTTPS support - SSL/TLS for all services
- Backup & recovery - Data protection and disaster recovery
π Key Insights
Target Users
- Primary: Developers wanting simple deployment without infrastructure knowledge
- Secondary: System administrators comfortable with the deployer's approach
Technical Approach
- Configuration: TOML files + environment variables (aligned with Torrust ecosystem)
- Architecture: Clear DDD layering (presentation β application β domain)
- Deployment: Service-based incremental slicing (hello-world β Tracker β MySQL β Prometheus β Grafana)
- Testing: Focus on E2E tests, expanding with each service addition
Strategic Decisions
- MVP Scope: Basic deployer with Hetzner provider support
- Service Slicing: Deploy fully working stacks incrementally, not deployment stages
- State Management: JSON persistence with simple locking mechanisms
- Error Handling: Detailed messages with verbosity levels, user-friendly guidance
Development Process
- Team Size: 1 Rust developer
- Dependencies: Minimal external team dependencies (some Tracker project coordination)
- Feature Workflow: Document in
docs/features/β Create issue β Link as child of this EPIC
π Progress Tracking
Child issues will be created for each major feature and linked to this EPIC. Progress can be tracked through:
- Individual feature completion
- Roadmap document checkbox updates
- Integration test expansion
π Related Resources
Note: This is a living roadmap. The linked documents will be updated as development progresses and new insights are gained. Below you have a copy of docs/roadmap.md, which is the source of truth.
Roadmap
1. Scaffolding for main app - 8/9 tasks complete (89%) β Near Completion
Epic Issue: #2 - Scaffolding for main app
- 1.1 Setup logging - Issue #3 β Completed
- 1.2 Create command
torrust-tracker-deployer destroy- EPIC #8, EPIC #9, EPIC #10 β Completed - 1.3 Refactor extract shared code between testing and production for app bootstrapping β Completed
- 1.4 Improve command to use better abstraction to handle presentation layer β Completed - EPIC #102
- 1.5 Create command
torrust-tracker-deployer create- EPIC #34 β Completed - 1.6 Create command
torrust-tracker-deployer provision(UI layer) - Issue #174 β Completed - 1.7 Create command
torrust-tracker-deployer configure(UI layer) - Issue #180 β Completed - 1.8 Create command
torrust-tracker-deployer test(UI layer) - Issue #188 β Completed - 1.9 Add levels of verbosity as described in the UX research
2. Add new infrastructure provider: Hetzner β COMPLETED
Epic Issue: #205 - Add Hetzner Provider Support β Completed
- 2.1 Add Hetzner provider support (Phase 1: Make LXD Explicit) β Completed
- 2.2 Add Hetzner provider support (Phase 2: Add Hetzner) β Completed
3. Continue adding more application commands - 5/5 slices complete (100%) β COMPLETED
Epic Issue: #216 - Implement ReleaseCommand and RunCommand with vertical slices
Note: These are internal app layer commands. The approach is to slice by functional services - we fully deploy a working stack from the beginning and incrementally add new services.
-
3.1 Finish ConfigureCommand β Completed - Epic #16
-
3.2 Implement ReleaseCommand and RunCommand with vertical slices - Epic #216
Strategy: Build incrementally with working deployments at each step.
4. Create a docker image for the deployer
- 4.1 Create docker image for the deployer
5. Add extra console app commands
- 5.1
torrust-tracker-deployer show - 5.2
torrust-tracker-deployer test - 5.3
torrust-tracker-deployer list
6. Add HTTPS support
- 6.1 Add HTTPS support for HTTP tracker
- 6.2 Add HTTPS support for tracker API
- 6.3 Add HTTPS support for Grafana
7. Add backup and disaster recovery
- 7.1 Implement database backups for MySQL
- 7.2 Implement configuration backups
- 7.3 Create recovery procedures documentation