🎬 ARR Suite Template Bootstrap - Complete Media Automation Stack Features: - 16 production services (Prowlarr, Sonarr, Radarr, Plex, etc.) - One-command Ansible deployment - VPN-protected downloads via Gluetun - Tailscale secure access - Production-ready security (UFW, Fail2Ban) - Automated backups and monitoring - Comprehensive documentation Ready for customization and deployment to any VPS. Co-authored-by: openhands <openhands@all-hands.dev>
6.4 KiB
6.4 KiB
🎬 ARR Suite Template Bootstrap
Complete Media Automation Stack Template - Production-ready Ansible deployment for VPS
🚀 One-Command Media Server Deployment
Deploy a complete, production-ready media automation stack to your VPS in 15-30 minutes with a single Ansible command.
🎯 What You Get
📦 16 Production Services
├── 🔍 Prowlarr - Indexer management
├── 📺 Sonarr - TV show automation
├── 🎬 Radarr - Movie automation
├── 🎵 Lidarr - Music automation
├── 🔞 Whisparr - Adult content (optional)
├── 📝 Bazarr - Subtitle automation
├── 🎭 Jellyseerr - Request management
├── 📥 SABnzbd - Usenet downloader
├── 🌊 Deluge - Torrent downloader
├── 🎪 Plex - Media server
├── 📊 Tautulli - Analytics
├── 🔒 Gluetun - VPN protection
├── 🛡️ Fail2Ban - Security
├── 🔥 UFW - Firewall
├── 🌐 Tailscale - Remote access
└── 📈 Monitoring - Health checks
⚡ Quick Start
Prerequisites
- Ubuntu 20.04+ VPS with 4GB+ RAM
- SSH access with sudo privileges
- Domain name (optional but recommended)
1. Clone & Configure
git clone <this-repo> arr-suite
cd arr-suite
# Configure your VPS details
nano inventory/production.yml
# Set up your secrets
cp group_vars/all/vault.yml.example group_vars/all/vault.yml
ansible-vault encrypt group_vars/all/vault.yml
ansible-vault edit group_vars/all/vault.yml
2. Deploy Everything
# One command deployment
ansible-playbook -i inventory/production.yml ansible-deployment.yml
# Or use the helper script
./deploy.sh
3. Access Your Services
🌐 Web Interfaces (after deployment):
├── Prowlarr: http://your-vps:9696
├── Sonarr: http://your-vps:8989
├── Radarr: http://your-vps:7878
├── Lidarr: http://your-vps:8686
├── Bazarr: http://your-vps:6767
├── Jellyseerr: http://your-vps:5055
├── SABnzbd: http://your-vps:8080
├── Deluge: http://your-vps:8112
├── Plex: http://your-vps:32400
└── Tautulli: http://your-vps:8181
🔧 Configuration Guide
Required Configuration
- VPS Details (
inventory/production.yml):
ansible_host: YOUR_VPS_IP_ADDRESS
ansible_user: root
ansible_ssh_private_key_file: ~/.ssh/your_private_key
- VPN Credentials (
group_vars/all/vault.yml):
vault_vpn_provider: "nordvpn" # or surfshark, expressvpn
vault_vpn_username: "your_vpn_username"
vault_vpn_password: "your_vpn_password"
- Optional Services (
ansible-deployment.yml):
# Enable/disable services
enable_whisparr: false # Adult content
enable_tailscale: true # Remote access
enable_plex_claim: false # Auto Plex setup
VPN Providers Supported
- ✅ NordVPN
- ✅ Surfshark
- ✅ ExpressVPN
- ✅ ProtonVPN
- ✅ CyberGhost
- ✅ Private Internet Access
- ✅ Mullvad
📚 Documentation
- 📖 Complete Deployment Guide - Detailed setup instructions
- ⚙️ Configuration Guide - Service configuration
- 🔧 Troubleshooting - Common issues & solutions
- 🔒 VPN Setup - VPN provider configuration
- 🌐 Service Access - Web interface guide
🛡️ Security Features
- 🔒 VPN Protection - All downloads through encrypted VPN
- 🛡️ Firewall - UFW with minimal open ports
- 🚫 Intrusion Prevention - Fail2Ban protection
- 🔐 Encrypted Secrets - Ansible Vault for credentials
- 🌐 Secure Access - Tailscale mesh networking
- 🔄 Auto Updates - Security patches automated
🎯 Production Ready
✅ Tested on Ubuntu 22.04
✅ Resource optimized (4GB RAM minimum)
✅ High availability with health checks
✅ Automated backups with encryption
✅ Monitoring & alerts included
✅ SSL/TLS ready for domain setup
🚀 Deployment Options
Option 1: Full Automation (Recommended)
ansible-playbook -i inventory/production.yml ansible-deployment.yml
Option 2: Manual Bootstrap
./bootstrap.sh # Prepare VPS
docker-compose -f compose/docker-compose-vpn.yml up -d
Option 3: Custom Services
# Deploy only specific services
ansible-playbook -i inventory/production.yml ansible-deployment.yml --tags "sonarr,radarr,plex"
🔧 Customization
Add Your Own Services
- Create service definition in
compose/ - Add configuration in
templates/ - Update
ansible-deployment.yml
Custom Domains
# In group_vars/all/vault.yml
vault_domain: "yourdomain.com"
vault_ssl_email: "you@yourdomain.com"
Resource Limits
# Adjust in ansible-deployment.yml
docker_memory_limit: "2g"
docker_cpu_limit: "1.0"
📊 System Requirements
| Component | Minimum | Recommended |
|---|---|---|
| RAM | 4GB | 8GB+ |
| Storage | 50GB | 500GB+ |
| CPU | 2 cores | 4+ cores |
| Network | 100Mbps | 1Gbps |
| OS | Ubuntu 20.04 | Ubuntu 22.04 |
🆘 Support & Community
- 📖 Documentation: Check
docs/directory - 🐛 Issues: Open GitHub issues for bugs
- 💬 Discussions: Use GitHub Discussions for questions
- 🔧 Troubleshooting: See
docs/TROUBLESHOOTING.md
📝 License
MIT License - see LICENSE file for details.
🙏 Credits
Built with ❤️ using:
- Ansible - Infrastructure automation
- Docker - Containerization
- Gluetun - VPN container
- Linuxserver.io - Container images
⭐ Star this repo if it helped you build an awesome media server!
Note
: This is a template repository. Customize the configuration files with your own settings before deployment.