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:
253
README.md
253
README.md
@@ -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.
|
||||
|
||||
[](https://opensource.org/licenses/MIT)
|
||||
[](https://www.ansible.com/)
|
||||
[](https://www.docker.com/)
|
||||
[](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
|
||||
|
||||
Reference in New Issue
Block a user