|
| 1 | +# Project Goals and Scope |
| 2 | + |
| 3 | +**Category**: Product Vision and Scope |
| 4 | +**Priority**: Critical |
| 5 | +**Status**: Draft |
| 6 | + |
| 7 | +## Primary Goal |
| 8 | + |
| 9 | +**Enable system administrators to provision a virtual machine and set up the Torrust tracker in an |
| 10 | +almost fully automated way (90% automation), providing excellent user experience and lowering |
| 11 | +the barrier to tracker adoption.** |
| 12 | + |
| 13 | +### Success Criteria |
| 14 | + |
| 15 | +- 90% automation of the installation process |
| 16 | +- Clear, intuitive user experience for system administrators |
| 17 | +- Significantly reduced time-to-deployment compared to manual installation |
| 18 | +- Comprehensive documentation that guides users through the entire process |
| 19 | +- Minimal technical expertise required beyond basic system administration |
| 20 | + |
| 21 | +## Secondary Goals |
| 22 | + |
| 23 | +### Documentation and Knowledge Transfer |
| 24 | + |
| 25 | +**Comprehensive documentation of tracker installation requirements including:** |
| 26 | + |
| 27 | +- System dependencies and prerequisites |
| 28 | +- Host system configuration best practices |
| 29 | +- Firewall configuration and security requirements |
| 30 | +- Performance tuning recommendations |
| 31 | +- Troubleshooting guides and common issues |
| 32 | + |
| 33 | +### Benefits |
| 34 | + |
| 35 | +- Reduces support burden through self-service documentation |
| 36 | +- Establishes best practices for tracker deployment |
| 37 | +- Enables community contribution to installation knowledge |
| 38 | +- Provides reference for manual installations when automation isn't sufficient |
| 39 | + |
| 40 | +## Long-Term Goals |
| 41 | + |
| 42 | +### Multi-Provider Support |
| 43 | + |
| 44 | +**Provide support for multiple cloud hosting providers to maximize deployment flexibility.** |
| 45 | + |
| 46 | +#### Planned Providers |
| 47 | + |
| 48 | +- Local virtualization (libvirt/KVM) - _Currently implemented_ |
| 49 | +- Cloud providers (AWS, DigitalOcean, Hetzner, etc.) - _Future roadmap_ |
| 50 | + |
| 51 | +#### Benefits |
| 52 | + |
| 53 | +- User choice and flexibility in hosting platform |
| 54 | +- Reduced vendor lock-in |
| 55 | +- Market expansion to different cloud ecosystems |
| 56 | +- Resilience against provider-specific limitations |
| 57 | + |
| 58 | +## Explicit Out-of-Scope |
| 59 | + |
| 60 | +### Server Maintenance |
| 61 | + |
| 62 | +**Rationale**: This is a one-execution installer focused on initial deployment. |
| 63 | + |
| 64 | +- **Not included**: Post-installation system updates |
| 65 | +- **Not included**: Application updates and patching |
| 66 | +- **Not included**: Ongoing maintenance automation |
| 67 | +- **Alternative**: Users handle maintenance through standard system administration practices |
| 68 | + |
| 69 | +### Dynamic Scaling and High Availability |
| 70 | + |
| 71 | +**Rationale**: The installer is intentionally focused on a single-node deployment |
| 72 | +for two primary reasons: |
| 73 | + |
| 74 | +1. **Application Architecture**: The Torrust tracker application itself does not |
| 75 | + natively support horizontal scaling. Peer data is managed in memory on a |
| 76 | + single instance, meaning that true high availability or load balancing would |
| 77 | + require significant changes to the core tracker application, which is beyond |
| 78 | + the scope of this installer project. |
| 79 | +2. **Target Audience**: The primary users are often hobbyists or small groups |
| 80 | + who require a simple, cost-effective, single-server deployment. The current |
| 81 | + architecture meets this need directly. |
| 82 | + |
| 83 | +- **Not included**: Auto-scaling based on load. |
| 84 | +- **Not included**: Multi-instance load balancing or high-availability clusters. |
| 85 | +- **Not included**: Automatic migration to larger servers. |
| 86 | +- **Alternative**: Users can manually migrate to a more powerful server by |
| 87 | + provisioning new infrastructure and transferring their data. |
| 88 | + |
| 89 | +### Migration Between Providers |
| 90 | + |
| 91 | +**Rationale**: Complex cross-provider migration is beyond project scope. |
| 92 | + |
| 93 | +- **Not included**: Automated provider-to-provider migration |
| 94 | +- **Not included**: Data migration tooling |
| 95 | +- **Not included**: Cross-provider compatibility layers |
| 96 | +- **Alternative**: Fresh deployment on new provider with manual data migration |
| 97 | + |
| 98 | +### 100% Automation |
| 99 | + |
| 100 | +**Rationale**: Perfect automation has diminishing returns for a typically one-time installation. |
| 101 | + |
| 102 | +- **Acceptable**: 10% manual steps for complex or rarely-automated tasks |
| 103 | +- **Acceptable**: Manual verification steps for security-critical operations |
| 104 | +- **Acceptable**: Provider-specific manual configuration where APIs are insufficient |
| 105 | +- **Focus**: Automate the 90% that provides the most value |
| 106 | + |
| 107 | +### Provider Account Resource Isolation |
| 108 | + |
| 109 | +**Rationale**: Provider-level resource isolation requires complex provider-specific |
| 110 | +implementation that varies significantly across cloud providers. |
| 111 | + |
| 112 | +### Multi-User Deployment Management |
| 113 | + |
| 114 | +**Rationale**: The project is designed for a single system administrator to perform a one-time |
| 115 | +deployment. It is not intended to be a multi-user platform for managing different |
| 116 | +environments. |
| 117 | + |
| 118 | +- **Not included**: Remote state management for team collaboration (e.g., Terraform Cloud, S3 backend) |
| 119 | +- **Not included**: Role-based access control for infrastructure changes |
| 120 | +- **Not included**: Environment management for multiple users |
| 121 | +- **Alternative**: The system uses local state files, which is sufficient for the |
| 122 | + single-administrator use case. Disaster recovery relies on data and configuration backups, |
| 123 | + not on collaborative state management. |
| 124 | + |
| 125 | +### Generic Infrastructure Abstraction Layer |
| 126 | + |
| 127 | +**Rationale**: Building a custom abstraction layer to normalize infrastructure resources across |
| 128 | +different cloud providers (e.g., creating a generic "server" or "network" concept) is a |
| 129 | +significant engineering effort that replicates the core functionality of tools like OpenTofu |
| 130 | +and Terraform. The project's goal is to leverage these existing IaC tools, not to reinvent |
| 131 | +them. |
| 132 | + |
| 133 | +- **Not included**: A custom, intermediate API or schema for defining infrastructure. |
| 134 | +- **Alternative**: Directly use provider-specific configurations within OpenTofu, mapping |
| 135 | + project needs to the native capabilities of each provider. This approach is more maintainable |
| 136 | + and aligns with industry best practices. |
| 137 | + |
| 138 | +- **Not included**: Resource name prefixes for environment isolation |
| 139 | +- **Not included**: Private network creation for environment separation |
| 140 | +- **Not included**: Provider-specific isolation mechanisms (VPCs, resource groups, etc.) |
| 141 | +- **Not included**: Automatic project/account boundary management |
| 142 | + |
| 143 | +**Implication**: Multiple environments deployed to the same provider account will |
| 144 | +create independent resources (VMs, storage, networking) but these resources remain |
| 145 | +visible and potentially accessible to each other within the provider account scope. |
| 146 | + |
| 147 | +**Provider-Specific Workarounds**: Some providers offer account-level isolation: |
| 148 | + |
| 149 | +- **Hetzner Cloud**: Use separate projects with project-specific API tokens for true isolation |
| 150 | +- **AWS**: Use separate accounts or strict IAM policies per environment |
| 151 | +- **Application Perspective**: The installer treats each provider profile (token/credentials) |
| 152 | + as a completely isolated infrastructure boundary, regardless of actual provider-level separation |
| 153 | + |
| 154 | +**Alternative**: Manual provider account management and project separation by users who |
| 155 | +require strict environment isolation. |
| 156 | + |
| 157 | +## Target Audience |
| 158 | + |
| 159 | +### Primary Users |
| 160 | + |
| 161 | +- **System Administrators**: Setting up tracker infrastructure |
| 162 | +- **DevOps Engineers**: Integrating tracker deployment into existing workflows |
| 163 | +- **Self-hosters**: Individuals running personal tracker instances |
| 164 | + |
| 165 | +### User Characteristics |
| 166 | + |
| 167 | +- Basic understanding of Linux system administration |
| 168 | +- Familiarity with command-line interfaces |
| 169 | +- Understanding of networking concepts (DNS, firewalls, etc.) |
| 170 | +- May or may not have cloud provider experience |
| 171 | + |
| 172 | +## Value Proposition |
| 173 | + |
| 174 | +### For Users |
| 175 | + |
| 176 | +- **Reduced Complexity**: Streamlined installation process |
| 177 | +- **Time Savings**: Hours reduced to minutes for deployment |
| 178 | +- **Reliability**: Tested, repeatable deployment process |
| 179 | +- **Flexibility**: Choice of hosting providers and configurations |
| 180 | + |
| 181 | +### For Torrust Ecosystem |
| 182 | + |
| 183 | +- **Adoption**: Lower barriers increase user base |
| 184 | +- **Quality**: Standardized deployments reduce support issues |
| 185 | +- **Community**: Enables focus on tracker features rather than deployment |
| 186 | + |
| 187 | +## Measurement Criteria |
| 188 | + |
| 189 | +### Quantitative Metrics |
| 190 | + |
| 191 | +- **Deployment Time**: From start to working tracker (target: < 30 minutes) |
| 192 | +- **Automation Percentage**: Automated steps vs total steps (target: 90%) |
| 193 | +- **Success Rate**: Successful deployments vs attempted deployments |
| 194 | +- **Documentation Coverage**: Percentage of installation scenarios documented |
| 195 | + |
| 196 | +### Qualitative Metrics |
| 197 | + |
| 198 | +- **User Feedback**: Ease of use and clarity of process |
| 199 | +- **Community Adoption**: Usage in community deployments |
| 200 | +- **Support Reduction**: Fewer installation-related support requests |
| 201 | + |
| 202 | +--- |
| 203 | + |
| 204 | +**Note**: This scope definition emerged from lessons learned during the proof of concept phase |
| 205 | +and community feedback about deployment complexity. |
0 commit comments