Overview
This epic tracks the implementation of roadmap task 3.2: Implement ReleaseCommand and RunCommand with vertical slices.
The goal is to add two new application commands:
release: Copy docker-compose configuration to the provisioned VM
run: Execute docker compose up -d to start the services
Strategy
Build incrementally with working deployments at each step. Each slice adds a new service to the docker-compose stack, delivering value progressively.
Roadmap Reference
From docs/roadmap.md:
3.2 Implement ReleaseCommand and RunCommand with vertical slices
Strategy: Build incrementally with working deployments at each step. Each slice adds a new service to the docker-compose stack.
- 3.2.1 Hello World slice (scaffolding)
- 3.2.2 Torrust Tracker slice
- 3.2.3 MySQL slice
- 3.2.4 Prometheus slice
- 3.2.5 Grafana slice
Tasks
Slices will be implemented sequentially, each delivering a working deployment:
Implementation Approach
Each slice follows this pattern:
- Hardcoded first: Start with fixed configuration to validate the pipeline
- Add environment config: Progressively expose configuration options
- Full flexibility: Add advanced options as needed
This ensures we always have a working deployment while incrementally adding complexity.
Related
Reference Implementation
The torrust-demo repository contains the current Torrust Tracker Demo configuration and serves as a reference for this implementation:
- compose.yaml - Docker Compose configuration for the full stack
- share/ - Service configurations (tracker, MySQL, Prometheus, Grafana, etc.)
These will be consulted when creating subissues for each slice.
Progress
Completed: 4 out of 5 slices (80%)
Notes
- Each slice requires new templates, template Rust wrappers, and potentially new environment options
- Configuration complexity grows incrementally across slices
- Detailed implementation tasks will be defined in subissues for each slice
Overview
This epic tracks the implementation of roadmap task 3.2: Implement ReleaseCommand and RunCommand with vertical slices.
The goal is to add two new application commands:
release: Copy docker-compose configuration to the provisioned VMrun: Executedocker compose up -dto start the servicesStrategy
Build incrementally with working deployments at each step. Each slice adds a new service to the docker-compose stack, delivering value progressively.
Roadmap Reference
From docs/roadmap.md:
Tasks
Slices will be implemented sequentially, each delivering a working deployment:
3.2.1 Hello World slice (scaffolding) - ✅ Completed in Demo Slice: Release and Run Commands Scaffolding #217
releaseandruncommands structure (App + UI layers)3.2.2 Torrust Tracker slice - ✅ Completed in Tracker Slice - Release and Run Commands #220
3.2.3 MySQL slice - ✅ Completed in MySQL Slice - Release and Run Commands #232
3.2.4 Prometheus slice - ✅ Completed in Prometheus Slice - Release and Run Commands #238
3.2.5 Grafana slice - Grafana Slice - Add Grafana metrics visualization service #246
Implementation Approach
Each slice follows this pattern:
This ensures we always have a working deployment while incrementally adding complexity.
Related
Reference Implementation
The torrust-demo repository contains the current Torrust Tracker Demo configuration and serves as a reference for this implementation:
These will be consulted when creating subissues for each slice.
Progress
Completed: 4 out of 5 slices (80%)
Notes