mirror of
https://github.com/BillyOutlast/audiojacker.git
synced 2026-06-29 21:53:20 -04:00
main
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 ./audiojacker/{downloads,audiobooks,music,config}
# Create subdirectories
sudo mkdir -p ./audiojacker/downloads/{torrents,soulseek,youtube,torbox,complete}
sudo mkdir -p ./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 ./audiojacker
# Set permissions
sudo chmod -R 755 ./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
./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.
Description