MediaStack
Automated media server VM running on PVE1 Proxmox (VM 113).
All traffic routes through WireGuard VPN → DO server — bypasses home ISP entirely.
VM Info
| Item |
Value |
| VM ID |
113 |
| Name |
MediaStack-35 |
| IP |
10.48.200.35 |
| Hypervisor |
PVE1 (10.48.200.90) |
| OS |
Ubuntu 24.04 |
| SSH |
root via PVE1 key (ssh -i /root/.ssh/id_rsa root@10.48.200.35 from PVE1) |
Services
| Service |
Port |
Binary |
Data |
| qBittorrent |
8080 |
/usr/bin/qbittorrent-nox |
/home/qbittorrent/.config/qBittorrent/ |
| Sonarr |
8989 |
/opt/Sonarr/Sonarr |
/var/lib/sonarr |
| Radarr |
7878 |
/opt/Radarr/Radarr |
/var/lib/radarr |
| Prowlarr |
9696 |
/opt/Prowlarr/Prowlarr |
/var/lib/prowlarr |
| NFS server |
2049 |
nfs-kernel-server |
/etc/exports |
| JARVIS agent |
— |
/opt/jarvis-agent/agent.py |
/opt/jarvis-agent/ |
| qemu-guest-agent |
— |
system |
— |
API Keys
| Service |
Key |
| Sonarr |
b43e04350a594846b4ee95261c29e9e0 |
| Radarr |
53c4268360444feeae5f98c0cc24e0e3 |
| Prowlarr |
9d0ce6c5660743b5bf1c7951efc62252 |
| qBittorrent |
admin / Joker1974!!! |
Media Paths
| Purpose |
Path |
| Downloads |
/media/downloads/complete |
| Movies |
/media/movies (NFS → Jellyfin) |
| TV Shows |
/media/tv (NFS → Jellyfin) |
| Music |
/media/music |
Jellyfin NFS Mounts (VM 112, 10.48.200.33)
| Remote |
Local mount |
10.48.200.35:/media/movies |
/mnt/mediastack/movies |
10.48.200.35:/media/tv |
/mnt/mediastack/tv |
WireGuard VPN
- Interface:
wg0, VM IP: 10.200.0.4/24
- Routes through CT110 (WireGuard-19,
10.48.200.19:51821) → DO server (165.22.1.228)
- All internet traffic exits via DO — ISP never sees download activity
- Kill-switch: external traffic blocked if VPN drops; LAN
10.48.200.0/24 always allowed
- CT110 public key:
RXxDgIAaie4n0BxBA48rlmt9BJyp2GEktENeQDlc4hA=
- MediaStack public key:
SjVwsfPvNFDeLxS6vYesiLVrA8BhdYkquSlMCxpeI2Q=
DNS
FortiGate blocks outbound port 53 to external DNS servers.
Fix: dnsmasq installed on PVE1 (10.48.200.90), forwards to Tailscale DNS (100.100.100.100).
MediaStack resolv config: /etc/systemd/resolved.conf.d/dns.conf → DNS=10.48.200.90
Indexer
- IPTorrents configured in Prowlarr via cookie auth
- Prowlarr auto-syncs all indexers to Sonarr and Radarr
Known Issues & Fixes
| Issue |
Fix |
| musl vs glibc binary crash |
Use linux-core-x64 releases (glibc), NOT linux-musl-x64 |
| WireGuard kill-switch blocks SSH |
ACCEPT LAN rule must use -A (append), not -I (insert), so it runs before the REJECT rule |
| DNS fails on first boot |
PVE1 dnsmasq forwards DNS; set DNS=10.48.200.90 in systemd-resolved |
| qBittorrent random temp password |
Permanent password set; login is admin / Joker1974!!! |
| JARVIS agent config keys |
Needs jarvis_url, registration_key, ssl_verify: false — see config/jarvis-agent/config.json.example |
Repository Layout