Skip to content

RoadmapΒ #1

@josecelano

Description

@josecelano

This EPIC tracks the overall development roadmap for the Torrust Tracker Deployer project.

πŸ“‹ Living Documentation

🎯 Roadmap Overview

The roadmap is organized into 7 main sections with incremental delivery:

  1. Main app scaffolding - Console commands, logging, presentation layer βœ… Near completion (8/9 tasks)
  2. Hetzner provider - Additional infrastructure provider support βœ… COMPLETED
  3. Application commands - Service deployment with incremental slicing βœ… COMPLETED
  4. Docker image - Official containerized deployer
  5. Console commands - Status and testing capabilities
  6. HTTPS support - SSL/TLS for all services
  7. 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.

    • 3.2.1 Hello World slice (scaffolding) - #217 βœ… Completed
    • 3.2.2 Torrust Tracker slice - #220 βœ… Completed
    • 3.2.3 MySQL slice - #232 βœ… Completed
    • 3.2.4 Prometheus slice - #238 βœ… Completed
    • 3.2.5 Grafana slice - #246 βœ… Completed

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

Sub-issues

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions