Clean up - simple zero-intervention bootstrap

- Removed ansible, compose, docs, scripts, tasks, templates
- Simplified bootstrap.sh for all major distros
- Works on Ubuntu, Debian, Fedora, Rocky, Arch, openSUSE
- Installs Docker, Tailscale, essential tools
- Configures firewall automatically

Co-authored-by: openhands <openhands@all-hands.dev>
This commit is contained in:
Vish-hands
2026-01-10 09:04:07 +00:00
parent 24f2cd64e9
commit cddeee6849
69 changed files with 341 additions and 9743 deletions

253
README.md
View File

@@ -1,215 +1,112 @@
# 🎬 ARR Suite Template Bootstrap
# Server Bootstrap
> **Complete Media Automation Stack Template** - Production-ready Ansible deployment for VPS
One-command server preparation for media automation stacks.
[![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/)
## What It Does
## 🚀 **One-Command Media Server Deployment**
**Zero intervention required.** The bootstrap script automatically:
Deploy a complete, production-ready media automation stack to your VPS in **15-30 minutes** with a single Ansible command.
- ✅ Detects your OS (Ubuntu, Debian, Fedora, Rocky, Arch, openSUSE)
- ✅ Installs Docker and Docker Compose
- ✅ Installs Tailscale for secure remote access
- ✅ Configures firewall (SSH, Plex, Jellyfin ports)
- ✅ Installs essential tools (htop, git, curl, jq, etc.)
- ✅ Creates helpful shell aliases
### **🎯 What You Get**
**Run one command, server is ready.**
```
📦 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 Install
## ⚡ **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
curl -fsSL -H "Authorization: token 77e3ddaf262bb94f6fa878ca449cc1aa1129a00d" \
"https://git.vish.gg/Vish/arr-suite-template-bootstrap/raw/branch/main/bootstrap.sh" | sudo bash
```
### **2. Deploy Everything**
### Install Options
```bash
# One command deployment
ansible-playbook -i inventory/production.yml ansible-deployment.yml
# Without Tailscale
curl -fsSL -H "Authorization: token 77e3ddaf262bb94f6fa878ca449cc1aa1129a00d" \
"https://git.vish.gg/Vish/arr-suite-template-bootstrap/raw/branch/main/bootstrap.sh" | sudo bash -s -- --no-tailscale
# Or use the helper script
./deploy.sh
# Without firewall configuration
curl -fsSL -H "Authorization: token 77e3ddaf262bb94f6fa878ca449cc1aa1129a00d" \
"https://git.vish.gg/Vish/arr-suite-template-bootstrap/raw/branch/main/bootstrap.sh" | sudo bash -s -- --no-firewall
```
### **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
```
## Supported Systems
## 🔧 **Configuration Guide**
- Ubuntu 20.04, 22.04, 24.04+
- Debian 11, 12+
- Linux Mint 20, 21, 22+
- Fedora 38+
- Rocky Linux / AlmaLinux / RHEL 9+
- Arch Linux / Manjaro
- openSUSE
### **Required Configuration**
## What Gets Installed
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
```
| Component | Description |
|-----------|-------------|
| Docker | Container runtime |
| Docker Compose | Multi-container orchestration |
| Tailscale | Secure mesh VPN |
| htop | Process viewer |
| git | Version control |
| curl, wget | Download tools |
| jq | JSON processor |
| tree, ncdu | File utilities |
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"
```
## After Bootstrap
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)**
Connect to Tailscale:
```bash
ansible-playbook -i inventory/production.yml ansible-deployment.yml
sudo tailscale up
```
### **Option 2: Manual Bootstrap**
Then install your media stack:
### Plex + SABnzbd + Deluge
```bash
./bootstrap.sh # Prepare VPS
docker-compose -f compose/docker-compose-vpn.yml up -d
curl -fsSL -H "Authorization: token 77e3ddaf262bb94f6fa878ca449cc1aa1129a00d" \
"https://git.vish.gg/Vish/arr-suite/raw/branch/main/install.sh" | sudo bash
```
### **Option 3: Custom Services**
### Jellyfin + qBittorrent
```bash
# Deploy only specific services
ansible-playbook -i inventory/production.yml ansible-deployment.yml --tags "sonarr,radarr,plex"
curl -fsSL -H "Authorization: token 77e3ddaf262bb94f6fa878ca449cc1aa1129a00d" \
"https://git.vish.gg/Vish/arr-suite-jellyfin/raw/branch/main/install.sh" | sudo bash
```
## 🔧 **Customization**
## Shell Aliases
### **Add Your Own Services**
1. Create service definition in `compose/`
2. Add configuration in `templates/`
3. Update `ansible-deployment.yml`
After bootstrap, these aliases are available (reload shell first):
### **Custom Domains**
```yaml
# In group_vars/all/vault.yml
vault_domain: "yourdomain.com"
vault_ssl_email: "you@yourdomain.com"
```bash
dps # Show running containers
dlogs # View container logs
dstop # Stop containers
dstart # Start containers
drestart # Restart containers
dupdate # Update all containers
sysinfo # System information
myip # Show public IP
ports # Show listening ports
```
### **Resource Limits**
```yaml
# Adjust in ansible-deployment.yml
docker_memory_limit: "2g"
docker_cpu_limit: "1.0"
```
## Firewall Ports
## 📊 **System Requirements**
The bootstrap configures these ports:
| Component | Minimum | Recommended |
|-----------|---------|-------------|
| **RAM** | 4GB | 8GB+ |
| **Storage** | 50GB | 500GB+ |
| **CPU** | 2 cores | 4+ cores |
| **Network** | 100Mbps | 1Gbps |
| **OS** | Ubuntu 20.04 | Ubuntu 22.04 |
| Port | Service |
|------|---------|
| 22 | SSH |
| 32400 | Plex |
| 8096 | Jellyfin |
## 🆘 **Support & Community**
Additional ports are opened by the arr-suite installers.
- 📖 **Documentation**: Check `docs/` directory
- 🐛 **Issues**: Open GitHub issues for bugs
- 💬 **Discussions**: Use GitHub Discussions for questions
- 🔧 **Troubleshooting**: See `docs/TROUBLESHOOTING.md`
## License
## 📝 **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.
MIT