This document outlines the development roadmap for the Torrust Tracker Deployer project. Each task is marked with:
[ ]- Not completed[x]- Completed
When starting work on a new feature:
- Create the feature documentation in the
docs/features/folder and commit it - Open an issue on GitHub linking to the feature folder in the repository
- Add the new issue as a child issue of the main EPIC issue
Note: See
docs/features/README.mdfor detailed conventions and process guide for creating new features.
Epic Issue: #2 - Scaffolding for main app
- 1.1 Setup logging - Issue #3
- 1.2 Create command
torrust-tracker-deployer destroyto destroy an environment- It will depend on the environment status. For example, if it has not been provisioned we only have to delete the persistent data.
- For manual testing we can create envs with the E2E full test (there is an option to keep the infra after testing)
- 1.3 Refactor extract shared code between testing and production for app bootstrapping
- 1.4 Improve command to use better abstraction to handle presentation layer
- types to handle user's views, etc
- 1.5 Create command
torrust-tracker-deployer createto create a new environment- We need to decide how the user will provide config values.
- output using println and eprintln
- 1.6 Create command
torrust-tracker-deployer deployto run the Provision and Configuration commands (full deployment) - 1.7 Add levels of verbosity as described in the UX research
Note: See docs/research/UX/ for detailed UX research that will be useful to implement the features in this section.
- 2.1 Add Hetzner provider support
Note: These are internal app layer commands (like ProvisionCommand or ConfigureCommand), not console commands. The approach is to slice by functional services rather than deployment stages - we fully deploy a working stack from the beginning and incrementally add new services.
-
3.1 Finish ConfigureCommand
- Add firewall base configuration
-
3.2 Add ReleaseCommand and RunCommand with slices
- 3.2.1 Run only a docker compose configuration with hello-world docker image
- 3.2.2 Add MySQL to docker compose stack
- 3.2.3 Add Torrust Tracker to docker compose stack
- 3.2.4 Add Prometheus to docker compose stack
- 3.2.5 Add Grafana to docker compose stack
Notes:
- Each service will require new templates, template Rust wrappers, environment options, etc.
- 4.1 Create docker image for the deployer to use it without needing to install the dependencies (OpenTofu, Ansible, etc)
- Mount data and build dirs when running it.
- 5.1
torrust-tracker-deployer status- Check environment and service status - 5.2
torrust-tracker-deployer test- Run application tests
Note: The test console subcommand is already partially implemented.
- 6.1 Add HTTPS support for HTTP tracker
- 6.2 Add HTTPS support for tracker API
- 6.3 Add HTTPS support for Grafana
- 7.1 Implement database backups for MySQL
- 7.2 Implement configuration backups
- 7.3 Create recovery procedures documentation
- This roadmap will be linked to an EPIC issue on GitHub for tracking progress
- Each major feature should have corresponding documentation in
docs/features/before implementation begins