Deployment Lifecycle & Command Overview
🎯 Quick Reference
Overview of the Torrust Tracker Deployer lifecycle, states, and command relationships.
graph LR
A[New] --> B[created]
B --> C[provisioned]
C --> D[configured]
D --> E[released]
E --> F[running]
F --> G[destroyed]
style B fill:#f9f9f9
style C fill:#e1f5fe
style D fill:#f3e5f5
style E fill:#e8f5e8
style F fill:#fff3e0
style G fill:#ffebee
Loading
State
Description
What Exists
created
Environment configuration exists
Config files, directories
provisioned
Infrastructure is running
VM/container, networking
configured
System setup complete
Docker, SSH, basic tools
released
Application deployed
Tracker files, Docker Compose config
running
Services are active
Running containers, accessible endpoints
destroyed
Resources cleaned up
Nothing (temporary files may remain)
Command State Transitions
Command
From State
To State
Current Status
create
-
created
❌ Not implemented
provision
created
provisioned
✅ E2E only
configure
provisioned
configured
🔄 Partial (Docker only)
release
configured
released
❌ Not implemented
run
released
running
❌ Not implemented
destroy
Any
destroyed
✅ E2E only
status
Any
No change
❌ Not implemented
test
Any
No change
❌ Not implemented
check
Any
No change
❌ Not implemented
# Basic deployment workflow
torrust-tracker-deployer create myenv # Initialize environment
torrust-tracker-deployer provision myenv # Create infrastructure
torrust-tracker-deployer configure myenv # Setup system
torrust-tracker-deployer release myenv # Deploy application
torrust-tracker-deployer run myenv # Start services
# Management commands
torrust-tracker-deployer status myenv # Check environment
torrust-tracker-deployer test myenv # Run validation
torrust-tracker-deployer destroy myenv # Cleanup everything
torrust-tracker-deployer check # Validate tools installation
torrust-tracker-deployer list # List all environments
What Works Today (E2E Tests)
# Simulate current working functionality through E2E tests
cargo run --bin e2e-tests-full
# This runs equivalent to:
# provision: Creates LXD container with OpenTofu
# configure: Installs Docker + Docker Compose
# validate: Tests Docker installation
# destroy: Cleans up container
Implementation Status Summary
Infrastructure provisioning (LXD containers)
Basic system configuration (Docker installation)
Template rendering (OpenTofu + Ansible)
Resource cleanup and validation
System configuration (missing firewall, monitoring)
Error handling (basic but needs improvement)
Multi-environment support
Application deployment (Torrust Tracker)
Service management and monitoring
Production CLI interface
State persistence between commands
Next Steps for Development
Extract E2E logic to production command handlers
Add CLI framework with proper subcommand structure
Implement state management for command sequencing
Add Torrust Tracker templates for application deployment
Build service management for running applications