I'm having a lot of trouble installing spark box. before i say anything im using surfshark vpn. I'm running proxmox i tried in a Debian 13 lxc and a Ubuntu server vm and still didn't work I'm getting like vpn errors, or when I'm installing the media bundle with all the "arr" apps i get an error after it installs all the containers then when it start extracting it works for a couple but then go's red and says Error response from daemon: error gathering device information while adding custom device "/dev/net/tun" no such file or directory. If i could get some help that would be great, Thanks
50 replies
tomspark wrote:
You didn't do anything wrong — this is a known Proxmox quirk. That "/dev/net/tun ... no such file or directory" message means the VPN piece can't find a network device it needs, and Proxmox's lightweight LXC containers don't include that device by default. Easiest fix by far: run SparkBox in a Proxmox VM instead of an LXC. A VM has everything out of the box and the whole stack, VPN included, just works. If you're already on the VM and still get VPN errors, paste the exact red error text and I'll get you sorted. (LXC can be made to work too, but it needs extra device tweaks — the VM is the painless route.)
master-oogway wrote:
Yep Cheers for the reply but I have just run the Quick Install in a Ubuntu Server VM and it says "[SparkBox] Next steps: 1. Open the dashboard: http://My IP:8443 2. Paste the bootstrap token above and pick an admin password 3. Follow the setup wizard in your browser [SparkBox] If you enable the Media stack (Sonarr, Radarr, qBittorrent), [SparkBox] two things you must do yourself before downloads will work: [SparkBox] • A VPN subscription — the wizard prefills Surfshark [SparkBox] https://get.surfshark.net/affc?offerid=1126&affid=9447&affsub=hr52es [SparkBox] • At least one indexer in Prowlarr (Settings → Indexers → Add) [SparkBox] SparkBox does not pre-configure any indexer — you choose. [SparkBox] Without an indexer, requests queue but never download. Don't have a server? Hostinger VPS at https://www.hostg.xyz/affc?offerid=815&affid=230550 Affiliate links — supports SparkBox at no extra cost to you." But I don't see and bootstrap token + no setup wizard has shown up. Edit. I ran "sudo sparkbox bootstrap-token" got my token and added a password ran the media install and after like 5 minutes it said this " Network sparkboxsbmediainternal Creating Network sparkboxsbmediainternal Created Network sparkboxsbmedia Creating Network sparkboxsbmedia Created Container sb-gluetun Creating Container sb-deunhealth Creating Container sb-seerr Creating Container sb-bazarr Creating Container sb-jellyfin-media Creating Container sb-seerr Created Container sb-jellyfin-media Created Container sb-gluetun Created Container sb-prowlarr Creating Container sb-radarr Creating Container sb-flaresolverr Creating Container sb-sonarr Creating Container sb-qbittorrent Creating Container sb-sabnzbd Creating Container sb-deunhealth Created Container sb-bazarr Created Container sb-sonarr Created Container sb-sabnzbd Created Container sb-qbittorrent Created Container sb-radarr Created Container sb-prowlarr Created Container sb-flaresolverr Created Container sb-gluetun Starting Container sb-jellyfin-media Starting Container sb-seerr Starting Container sb-bazarr Starting Container sb-deunhealth Starting Container sb-deunhealth Started Container sb-gluetun Started Container sb-gluetun Waiting Container sb-gluetun Waiting Container sb-gluetun Waiting Container sb-gluetun Waiting Container sb-gluetun Waiting Container sb-gluetun Waiting Container sb-seerr Started Container sb-bazarr Started Container sb-jellyfin-media Started Container sb-gluetun Healthy Container sb-radarr Starting Container sb-gluetun Healthy Container sb-sabnzbd Starting Container sb-gluetun Healthy Container sb-qbittorrent Starting Container sb-gluetun Healthy Container sb-sonarr Starting Container sb-gluetun Healthy Container sb-flaresolverr Starting Container sb-gluetun Healthy Container sb-prowlarr Starting Container sb-sabnzbd Started Container sb-prowlarr Started Container sb-sonarr Started Container sb-qbittorrent Started Container sb-radarr Started Container sb-flaresolverr Started /app/sparkbox: line 1474: /app/state/.env-hash: Permission denied [0;32m[OK][0m SparkBox is running!"
tomspark wrote:
Good news — it actually worked. Every app came up and your VPN (gluetun) shows Healthy, so the hard part's done. Moving to the VM sorted the /dev/net/tun error like we hoped. That red "Permission denied" line at the very end was a harmless display bug on our side — your install was fine, it just printed a scary message it shouldn't have. I just shipped a fix for it, so run sudo sparkbox update to clear it. Last thing before downloads work: open the dashboard, go to Prowlarr → Settings → Indexers, and add at least one indexer. Without that, requests just sit in the queue. Then you're set — give a shout if anything's off.
master-oogway wrote:
Thank You So Much thanks for all the hard work on sparkbox your amazing Tom
tomspark wrote:
Anytime — really glad it's all up and running. You did the work, I just pointed the way. Enjoy the setup, and we're around if anything else comes up.
master-oogway wrote:
Okay sorry Im having one more issue with the Prowlarr indexer when i try to add one it work once but the says indexer disabled because of failure and in settings it says "All indexers are unavailable due to failures You can find more information about the cause of these health check messages by clicking the wiki link (book icon) at the end of the row, or by checking your logs. If you have difficulty interpreting these messages then you can reach out to our support, at the links below." but i cant seem to find the issue Thanks
tomspark wrote:
No need to apologize — this one's really common and easy. A lot of indexer sites put up an "are you a robot?" security check, and that's what trips Prowlarr after the first try, so it marks the indexer as failed. Good news: SparkBox already includes a helper for exactly this (FlareSolverr) — it's set up, you just need to switch it on for that indexer. In Prowlarr, click your indexer to edit it, find the "Tags" box, type flaresolverr and pick it, then Save. Now hit Test — it should go green and stop disabling itself. If it still fails after that, that particular tracker may just be down for a bit — try adding a different one.
master-oogway wrote:
Now it says "Unable to connect to indexer. Unexpected response status Forbidden code from indexer request" when i try to test even after adding "flaresolverr" ive tried 5 different ones.
tomspark wrote:
That "Forbidden" is a different beast from the robot-check — it means the tracker is flat-out refusing the connection. Getting it on 5 of them points to one thing: your VPN's current IP. Public trackers often block known VPN addresses, and SparkBox runs the indexers through your VPN, so they all get refused. Easiest fix: get a fresh IP. In the dashboard, open your Media app's settings, find the "VPN Server Country" field (and optional Cities), change the country or add a different nearby city, then Save — SparkBox reconnects, and you re-test the indexer. Fair warning: some public trackers block every VPN no matter the server. If a fresh location still gives Forbidden, that tracker just won't play nice behind a VPN — the bigger, well-known public indexers are usually the most VPN-tolerant.
master-oogway wrote:
Do you have any recomendations on locations on the VPN, as i am using Surfshark. Thanks
tomspark wrote:
Honestly it's a bit of trial-and-error — trackers update their blocklists constantly — but a couple of tips that help most. Start with a server in your own country (or the nearest big one): lowest latency, and location-checking trackers won't refuse you for looking foreign. If the regular servers keep getting blocked, switch to one of Surfshark's Static IP locations — those are shared by far fewer people, so they're much less likely to be on a tracker's blocklist. You'll find them listed under "Static IP" in the Surfshark app; pick the closest one and put that city in the VPN Cities box. If a location still gives Forbidden after a minute, just try the next nearest one.
master-oogway wrote:
also quick question i have a 6tb hdd, how could i get the movies to download to that and also let jellyfin see it, as i set the VM to use 64gb of my ssd. I know its probably alot but i would be amazing if you could help. Thanks
tomspark wrote:
Great question, and totally normal — lots of people start small then add a big drive. The neat part: SparkBox keeps your downloads and your library in one "media folder," so once we point that at your 6TB drive, qBittorrent downloads straight to it AND Jellyfin sees the files automatically — no separate setup. First thing to sort: the 6TB drive has to be visible inside your Ubuntu VM, not just attached in Proxmox. Can you run this in the VM and paste what shows up? sudo lsblk -f That lists your drives and where they're mounted. Tell me what you see and I'll give you the exact next step to point SparkBox at the big one.
master-oogway wrote:
Sorry for the late response, heres what it says "NAME sda sda1 -sda2 sda3 Lubuntu -- vg-ubuntu -- lv ext4 sr0 FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS ext4 1.0 LVM2member LVM2 001 1.0 1.7G 18.4G 5% /boot 64% / iso9660 78f4ed55-1783-4cd9-a90a-52e1e561d728 90M01w-CKw1-YTD9-aKSF-6qbz-DBuC-Ct 1zGW 76d7d8df-ba97-47fe-aa4b-b66bf89848de Joliet Extension Ubuntu-Server 24.04.4 LTS amd64 2026-02-10-06-52-50-00" And this is my it in my proxmox nodes shell "NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS loop0 7:0 0 32G 0 loop sda 8:0 0 465.8G 0 disk ├─sda1 8:1 0 1007K 0 part ├─sda2 8:2 0 1G 0 part /boot/efi └─sda3 8:3 0 464.8G 0 part ├─pve-swap 252:0 0 8G 0 lvm [SWAP] └─pve-root 252:1 0 456.8G 0 lvm / sdb 8:16 0 931.5G 0 disk ├─sdb1 8:17 0 529M 0 part ├─sdb2 8:18 0 100M 0 part ├─sdb3 8:19 0 16M 0 part ├─sdb4 8:20 0 930.2G 0 part └─sdb5 8:21 0 735M 0 part sdc 8:32 0 5.5T 0 disk └─sdc1 8:33 0 5.5T 0 part /mnt/pve/HDD-6TB sr0 11:0 1 1024M 0 rom " Thanks
tomspark wrote:
Perfect — that tells us exactly what's going on. Your 6TB drive (the 5.5T "sdc") is plugged into Proxmox itself and mounted there as HDD-6TB, but your Ubuntu VM only sees its own small disk — so SparkBox has nothing big to point at yet. We just need to hand the drive to the VM. Safest way, all in the Proxmox web page (no risky commands): click your SparkBox VM → Hardware → Add → Hard Disk. For Storage pick HDD-6TB, set the size as large as it'll let you, and Add. Then restart the VM. After it reboots, run sudo lsblk in the VM again — you'll see a new big disk this time. Paste that and I'll walk you through formatting it, mounting it, and pointing SparkBox's media folder right at it.
master-oogway wrote:
I already have 1tb of movies from my old jellyfin on the 6TB HDD, is there a way i can just get the VM to see the whole drive not just assign storage to it? Thanks
tomspark wrote:
Ah, that changes the plan for the better — since you've already got movies on it, we give the VM the whole drive (not a fresh empty one). That's called disk passthrough, and it keeps your 1TB exactly as is. One catch: a drive can't be safely used by both Proxmox and the VM at the same time, so we unhook it from Proxmox first. Step one (safe — this does NOT delete anything, it just un-lists the drive): in the Proxmox web page go to Datacenter → Storage, click the HDD-6TB entry, and hit Remove. Your VM lives on your SSD, so this won't touch it — your movies stay put on the drive. Reply once that's done and I'll give you the one-line command to attach the whole drive to the VM, plus how to mount it so SparkBox and Jellyfin see your existing movies.
master-oogway wrote:
Yep finshed, Ready
tomspark wrote:
Awesome — the storage list confirms it's unhooked. Now I just need two details so I can hand you the exact attach command (this way we grab the right drive, no guessing). On the Proxmox shell, run this — it only reads info, changes nothing — and paste what it shows: echo '=== VMs ==='; qm list; echo '=== 6TB id ==='; ls -l /dev/disk/by-id/ | grep -i sdc; echo '=== mounted? ==='; lsblk -o NAME,SIZE,MOUNTPOINTS /dev/sdc That gives me your VM's ID number, the drive's permanent name, and whether it's still mounted. With those I'll give you the one-line command to attach the whole drive, then the quick mount step so SparkBox and Jellyfin see your movies.
master-oogway wrote:
Here it is sorry if you dont like the screenshot its just easier for me. Thanks
tomspark wrote:
Screenshots are totally fine — clearer, honestly! Got everything I need: your VM is 101, and the drive's still mounted on Proxmox, so we unmount it first, then hand it to the VM. Run these three on the Proxmox shell, in order: sudo umount /mnt/pve/HDD-6TB sudo qm set 101 -scsi1 /dev/disk/by-id/ata-HGSTHUS726T6TALE6L4V9GD5TLU sudo qm reboot 101 (If the first line says "target is busy," stop there and tell me — don't run the rest.) The middle line hands the whole 6TB to VM 101, and the reboot makes it show up inside. Once the VM is back, run sudo lsblk -f in it and paste that — you should see your 6TB with its movies, and I'll get it mounted and pointed into SparkBox.
master-oogway wrote:
Yep done idk if its worked can you see?
master-oogway wrote:
also I'm having a new issue, my jellyfin load very slowly then freezes and i check the dashboard and it keeps crashing and booting.
master-oogway wrote:
also I don't know if this might help you
tomspark wrote:
Two things going on — let's take them in order. Good news on the drive: the passthrough worked. Your 6TB is now inside the VM as /dev/sdb1 with your movies intact (I can see it). We'll mount it in a moment. First though, let's calm Jellyfin down — that "crashing and booting" you're seeing is just the Jellyfin app restarting over and over (your other apps are healthy, so the box itself is fine). I need to see why it keeps quitting. Run this and paste the last chunk it prints: sudo docker logs --tail 40 sb-jellyfin-media That'll show the reason it's bailing — I'll fix that, then we mount your 6TB and point SparkBox at it.
master-oogway wrote:
Ok here
tomspark wrote:
Good — that log actually tells me a lot: Jellyfin starts up cleanly and reaches "startup complete," so nothing's misconfigured. It's dying AFTER it starts, which on a busy 8GB box usually means it ran out of memory (it's sharing 8GB with about a dozen other apps, and Jellyfin's the hungry one). Let's confirm so I give you the right fix. Run this in the VM and paste what it shows: sudo docker inspect sb-jellyfin-media --format 'exit={{.State.ExitCode}} oom={{.State.OOMKilled}} restarts={{.RestartCount}}'; echo ---; free -h If it says oom=true (or exit=137), it's memory — and the fix is easy: give the VM a couple more GB of RAM. I'll walk you through it from there.
master-oogway wrote:
oh no it doesnt say oom=true,
tomspark wrote:
Ah, the curly brackets in that command got garbled on the way to you (my fault for using a fiddly one) — but the memory part came through, and it's good news: you've got 6GB free and barely any swap used, so this probably isn't a memory problem after all. Let me grab the real reason with a copy-paste-safe version. Run this and paste what it shows: sudo docker inspect sb-jellyfin-media | grep -iE 'oomkilled|exitcode|restartcount'; echo ---; sudo docker ps | grep jellyfin The first part shows why it last stopped, and the second shows whether it's still restarting right now or has settled down. With those two I'll know exactly what's poking it.
master-oogway wrote:
Sorry for taking a while didnt see your message and sorry for the misstype earlier i cant copy paste in the VM so this time i had to ssh to copy and paste. Thanks
tomspark wrote:
No worries at all! And even better news — Jellyfin sorted itself out. Your check shows "Up (healthy)" and OOMKilled: false, and it only restarted 3 times — that was just it settling in after the reboot, not a real crash or a memory problem. So nothing to fix there; it's stable now. Now let's finish the main job: getting your 6TB (with your 1TB of movies) mounted and SparkBox pointed at it. Run this in the VM and paste the output: sudo mkdir -p /mnt/media && sudo mount UUID=51b3a75d-4ba7-4edc-9023-f8e28a60b593 /mnt/media && ls -la /mnt/media That mounts your drive and lists what's on it. Once I can see how your movie folders are laid out, I'll give you the exact change to point SparkBox + Jellyfin at them (and make it stick across reboots).
master-oogway wrote:
Sadly its still not working, still loading, freezing and crashing. but ill still try to mount the HDD okay dont worry about all the other stuff but it in media there is a movies and shows folders i think is there away to see in them? Thanks
tomspark wrote:
Right, I can see it now — it's cycling healthy then crashing every minute or so. The log you sent earlier only caught a clean start, so the actual reason is in the lines right before each crash. This grabs the last few minutes (which covers a couple of those crashes) — no timing needed, just run it once and paste the result: sudo docker logs --since 3m sb-jellyfin-media 2&1 | tail -50 The reason it's bailing should be in there, and then I can fix it for real. Good news on the movies, by the way: they're in the "Media" folder on your drive (I can see movies + shows inside). Once Jellyfin's stable, pointing it straight at them is a quick 2-minute job — I've got that ready to go.
master-oogway wrote:
Great I'm almost there. hope this is the final problem
tomspark wrote:
Almost there indeed! That log's still showing a clean startup — turns out Jellyfin's start-up is so chatty (it lists every video format it supports) that it fills the whole window and pushes the actual crash off the top. So let me catch the crash a different way that ignores all that noise. Run this — it lists exactly what happens to the container minute by minute (when it goes unhealthy, what stops it): sudo docker events --since 6m --until now --filter container=sb-jellyfin-media Paste that and I'll see the precise moment it turns and what's restarting it. This should be the one that tells me the real cause.
master-oogway wrote:
Sorry it says this
master-oogway wrote:
so i changed it a bit so if it doesnt work now im sorry
master-oogway wrote:
also do you reckon we could talk on discord if you have / want to ? as i dont get a notification sound on your website. Thanks
tomspark wrote:
I keep support right here on the forum — it stays in one place and it helps the next person who hits the same thing — but I'm watching this thread closely and replying fast, so you won't be left waiting. Let's keep rolling here. Good sign in that output, by the way: the health checks are actually passing (every curl health line shows exit 0), so Jellyfin is responding fine. Two quick things and I think we're there: what did you change? And is it STILL doing the crash-cycle right now, or has it calmed down? Easiest way to tell — watch the dashboard's Recent Activity for ~3 minutes; if Jellyfin stays green and "crashed" stops popping up, your change sorted it.
master-oogway wrote:
Okay all good we will keep it here, but yes it is still crash cycling I need to get to bed in like a hour and a half so we better make this quick. Thanks
master-oogway wrote:
is there a way to just full wipe / uninstall just jellyfin, then reinstall.
tomspark wrote:
Yep, that's a solid move — and your media is totally safe (it lives on your drive, not inside Jellyfin), so a clean Jellyfin reset won't touch your movies. Run these three on the VM, in order: sudo docker rm -f sb-jellyfin-media sudo rm -rf /opt/sparkbox/modules/media/config/jellyfin sudo sparkbox up That removes the misbehaving Jellyfin, wipes only its own settings (a fresh slate, which usually clears these loops), and rebuilds it clean. Give it a minute, then watch the dashboard — Jellyfin should come up and STAY green this time. If it does, you're sorted and we'll point it at your movies. If it somehow still loops, that tells us it's something outside Jellyfin and we'll hunt that next. Let me know how it lands!
master-oogway wrote:
Jellyfin made me name it and make a user now and all the setting reset aswell will that stuff anything up as there no longer is any api keys
tomspark wrote:
That's the fix working! Jellyfin asking you to name it and make a user means it came back clean and stopped crashing — big win. And no, nothing's stuffed up. Those regenerated keys only matter for Seerr (the "request a movie" app) talking to Jellyfin — your actual movies will play in Jellyfin perfectly fine without them. Re-linking Seerr is a quick 2-minute job for later, not urgent. So go ahead and finish making your Jellyfin user. The only thing left after that is pointing Jellyfin at your 6TB so the movies show up. If you've got 5 minutes I'll give you the steps now; if you're ready for bed, the crash is sorted and it'll keep till tomorrow — just say the word.
master-oogway wrote:
yes i need some help almost bed time tho
master-oogway wrote:
Ready when you are. so i just need to setup my 6tb hdd and get seer working again and thats it. finally! soo closeee
tomspark wrote:
Let's get you across the line! Two parts — drive first, then your movies show up. PART 1 — point SparkBox at your 6TB. Run these 3 lines (they make the drive mount automatically on boot, tell SparkBox to use it, then restart the media apps): echo 'UUID=51b3a75d-4ba7-4edc-9023-f8e28a60b593 /mnt/media ext4 defaults,nofail 0 0' | sudo tee -a /etc/fstab sudo sed -i 's|^MEDIAROOT=.|MEDIAROOT=/mnt/media|' /opt/sparkbox/.env sudo sparkbox up PART 2 — show the movies in Jellyfin. Open Jellyfin, go to Dashboard → Libraries → Add Media Library. Pick type Movies, click Add Folder, and browse into /data → Media → movies. Do the same for a Shows library → /data → Media → shows. Save, and it'll scan your 1TB in. Tell me how that lands and we'll re-link Seerr last (quick one). You're basically there!
master-oogway wrote:
i ran it and this is what it said and i checked jellyfin and there is nothing in data oh no what now
tomspark wrote:
No worries — easy fix and nothing's broken. We added the drive to the auto-mount list but didn't actually mount it yet, so Jellyfin's been staring at an empty folder. Run these three: sudo mount -a ls /mnt/media sudo sparkbox restart The middle line should now list your folders (Media, dump, etc.) — that confirms the drive mounted. The restart makes the apps pick it up. Give it a minute, then back in Jellyfin → Add Library, browse /data → Media → movies (and → shows). Your 1TB will be sitting right there. Paste the "ls" output if anything looks off — but I reckon this is the one!
master-oogway wrote:
YESS thank you so much they are all there. quick question tho if i download a movie will it download to the 6tb hdd then inside media then Movies or Shows. and now i just need help with seer. Also thank you man you have been a real help