# 🎬 ARR Suite Template Bootstrap > **Complete Media Automation Stack Template** - Production-ready Ansible deployment for VPS [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Ansible](https://img.shields.io/badge/Ansible-2.9%2B-red.svg)](https://www.ansible.com/) [![Docker](https://img.shields.io/badge/Docker-20.10%2B-blue.svg)](https://www.docker.com/) [![Ubuntu](https://img.shields.io/badge/Ubuntu-20.04%2B-orange.svg)](https://ubuntu.com/) ## 🚀 **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** ```bash git clone 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** ```bash # 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** 1. **VPS Details** (`inventory/production.yml`): ```yaml ansible_host: YOUR_VPS_IP_ADDRESS ansible_user: root ansible_ssh_private_key_file: ~/.ssh/your_private_key ``` 2. **VPN Credentials** (`group_vars/all/vault.yml`): ```yaml vault_vpn_provider: "nordvpn" # or surfshark, expressvpn vault_vpn_username: "your_vpn_username" vault_vpn_password: "your_vpn_password" ``` 3. **Optional Services** (`ansible-deployment.yml`): ```yaml # 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](ANSIBLE_DEPLOYMENT.md)** - Detailed setup instructions - ⚙️ **[Configuration Guide](docs/CONFIGURATION.md)** - Service configuration - 🔧 **[Troubleshooting](docs/TROUBLESHOOTING.md)** - Common issues & solutions - 🔒 **[VPN Setup](docs/VPN_CONFIGURATION.md)** - VPN provider configuration - 🌐 **[Service Access](docs/SERVICE_ACCESS.md)** - 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)** ```bash ansible-playbook -i inventory/production.yml ansible-deployment.yml ``` ### **Option 2: Manual Bootstrap** ```bash ./bootstrap.sh # Prepare VPS docker-compose -f compose/docker-compose-vpn.yml up -d ``` ### **Option 3: Custom Services** ```bash # Deploy only specific services ansible-playbook -i inventory/production.yml ansible-deployment.yml --tags "sonarr,radarr,plex" ``` ## 🔧 **Customization** ### **Add Your Own Services** 1. Create service definition in `compose/` 2. Add configuration in `templates/` 3. Update `ansible-deployment.yml` ### **Custom Domains** ```yaml # In group_vars/all/vault.yml vault_domain: "yourdomain.com" vault_ssl_email: "you@yourdomain.com" ``` ### **Resource Limits** ```yaml # 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](LICENSE) file for details. ## 🙏 **Credits** Built with ❤️ using: - [Ansible](https://www.ansible.com/) - Infrastructure automation - [Docker](https://www.docker.com/) - Containerization - [Gluetun](https://github.com/qdm12/gluetun) - VPN container - [Linuxserver.io](https://www.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.