mirror of
https://github.com/BillyOutlast/audiojacker.git
synced 2026-07-01 15:58:18 -04:00
7.7 KiB
7.7 KiB
Audiojacker - All-in-One Media Download & Streaming Stack
A comprehensive Docker Compose setup for automated media downloading and streaming with VPN protection.
🎯 Features
- VPN Protection: All download services route through ProtonVPN via gluetun
- Torrent Downloads: qBittorrent with Web UI
- Music Management: Lidarr for automated music collection management
- Soulseek Integration: slskd client + soularr for Lidarr integration
- YouTube Downloads: yubal for audio extraction
- Torbox Integration: Automated debrid downloading
- Audiobook Streaming: audiobookshelf server
- Music Streaming: Koel self-hosted music player
📋 Services Overview
| Service | Purpose | Port | Network |
|---|---|---|---|
| gluetun | VPN Gateway | - | Bridge |
| qBittorrent | Torrent Client | 8080 | Via VPN |
| Lidarr | Music Manager | 8686 | Via VPN |
| slskd | Soulseek Client | 5000 | Via VPN |
| soularr | Lidarr-Soulseek Bridge | 8400 | Via VPN |
| yubal | YouTube Downloader | 8888 | Via VPN |
| torbox-auto-downloader | Torbox Integration | - | Via VPN |
| audiobookshelf | Audiobook Server | 13378 | Direct |
| koel | Music Streaming | 8000 | Direct |
🚀 Quick Start
1. Prerequisites
- Docker and Docker Compose installed
- ProtonVPN account (OpenVPN credentials)
- Soulseek account (for slskd)
- Torbox account (optional, for torbox-auto-downloader)
2. Clone/Create Directory Structure
# Create the base directory
sudo mkdir -p /mnt/fast-block/audiojacker/{downloads,audiobooks,music,config}
# Create subdirectories
sudo mkdir -p /mnt/fast-block/audiojacker/downloads/{torrents,soulseek,youtube,torbox,complete}
sudo mkdir -p /mnt/fast-block/audiojacker/music/{incoming,library}
3. Configure Environment
# Copy the example environment file
cp .env.example .env
# Edit with your credentials
nano .env
Required credentials to fill in:
| Variable | Where to get it |
|---|---|
PROTONVPN_USER |
ProtonVPN Account → OpenVPN/IKEv2 username |
PROTONVPN_PASSWORD |
ProtonVPN Account → OpenVPN/IKEv2 password |
SOULSEEK_USER |
Soulseek account |
SOULSEEK_PASS |
Soulseek password |
TORBOX_API_KEY |
Torbox API key |
4. Set Permissions
# Set ownership (replace with your PUID:PGID)
sudo chown -R 1000:1000 /mnt/fast-block/audiojacker
# Set permissions
sudo chmod -R 755 /mnt/fast-block/audiojacker
5. Start the Stack
# Start all services
docker-compose up -d
# Check status
docker-compose ps
# View logs
docker-compose logs -f
6. Access Web Interfaces
| Service | URL | Default Credentials |
|---|---|---|
| qBittorrent | http://localhost:8080 | admin / adminadmin |
| Lidarr | http://localhost:8686 | None (set on first access) |
| slskd | http://localhost:5000 | Set in .env (SLSKD_ADMIN_USER/PASS) |
| soularr | http://localhost:8400 | - |
| yubal | http://localhost:8888 | - |
| audiobookshelf | http://localhost:13378 | None (set on first access) |
| koel | http://localhost:8000 | Set in .env (KOEL_ADMIN_EMAIL/PASS) |
📁 Directory Structure
/mnt/fast-block/audiojacker/
├── downloads/
│ ├── torrents/ # qBittorrent downloads
│ ├── soulseek/ # slskd downloads
│ ├── youtube/ # yubal downloads
│ ├── torbox/ # Torbox downloads
│ └── complete/ # Completed downloads
├── audiobooks/ # Audiobook library
├── music/
│ ├── incoming/ # Music being processed
│ └── library/ # Organized music library
└── config/
├── gluetun/
├── qbittorrent/
├── lidarr/
├── slskd/
├── soularr/
├── yubal/
├── torbox/
├── audiobookshelf/
└── koel/
⚙️ Configuration
ProtonVPN Setup
- Log into ProtonVPN
- Go to Downloads → OpenVPN configuration
- Note your OpenVPN / IKEv2 username and password
- (Optional) Choose preferred server countries in
.env
Lidarr Setup
- Access Lidarr at http://localhost:8686
- Complete the setup wizard
- Add your music library path:
/music/library - Add download client: qBittorrent at
localhost:8080 - Get API key from Settings → General → Security
- Update
.envwithLIDARR_API_KEY - Restart soularr:
docker-compose restart soularr
slskd Setup
- Access slskd at http://localhost:5000
- Login with credentials from
.env - Configure share directories in Shares settings
- Add
/musicas a share directory
soularr Setup
soularr connects Lidarr with Soulseek for automated downloads:
- Ensure Lidarr is configured and running
- Ensure slskd is configured and running
- soularr will automatically search Soulseek for Lidarr requests
qBittorrent Setup
- Access qBittorrent at http://localhost:8080
- Login with
admin/adminadmin - Change password immediately in Tools → Options → Web UI
- Set download path to
/downloads - Configure connection settings as needed
audiobookshelf Setup
- Access audiobookshelf at http://localhost:13378
- Create admin account on first access
- Add library pointing to
/audiobooks - Configure metadata provider preferences
Koel Setup
- Access Koel at http://localhost:8000
- Login with credentials from
.env - Scan music library:
/music - Configure settings as needed
🔧 Maintenance
View Logs
# All services
docker-compose logs -f
# Specific service
docker-compose logs -f gluetun
docker-compose logs -f qbittorrent
Restart Services
# Restart all
docker-compose restart
# Restart specific service
docker-compose restart gluetun
Update Services
# Pull latest images
docker-compose pull
# Recreate containers with new images
docker-compose up -d
Stop Services
# Stop all
docker-compose down
# Stop and remove volumes
docker-compose down -v
🐛 Troubleshooting
VPN Not Connecting
# Check gluetun logs
docker-compose logs gluetun
# Common issues:
# - Wrong OpenVPN credentials
# - Server country not available
# - Network connectivity issues
Services Can't Connect Through VPN
Ensure services are using network_mode: service:gluetun and gluetun is healthy:
# Check gluetun health
docker-compose ps gluetun
# Check VPN connection
docker-compose exec gluetun curl -s https://ipinfo.io
Permission Issues
# Check current PUID/PGID
id
# Update .env with correct values
# Fix ownership
sudo chown -R $(id -u):$(id -g) /mnt/fast-block/audiojacker
Port Conflicts
If default ports are in use, modify the port mappings in .env:
# Example: Change qBittorrent port
QBITTORRENT_PORT=18080
📚 Additional Resources
- gluetun Wiki
- qBittorrent Documentation
- Lidarr Documentation
- slskd Documentation
- soularr GitHub
- audiobookshelf Documentation
- Koel Documentation
📜 License
This configuration is provided as-is. Individual services have their own licenses.
⚠️ Disclaimer
This setup is for personal use with legally obtained content. Ensure compliance with copyright laws in your jurisdiction. The authors are not responsible for any misuse of this software.