Initial template repository

🎬 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>
This commit is contained in:
openhands
2025-11-28 04:26:12 +00:00
commit 24f2cd64e9
71 changed files with 9983 additions and 0 deletions

215
README.md Normal file
View File

@@ -0,0 +1,215 @@
# 🎬 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 <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**
```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.