32 replies
tomspark wrote:
Good news — this one's fixed. The Tdarr 'loses its settings after an update' bug came down to a file-ownership issue: Tdarr couldn't read its own database on restart, so it rebuilt an empty one. We shipped the root-cause fix in v1.6.263 — run sudo sparkbox update and it'll stop wiping your config. Sorry it took a bit to reach you here, and thanks for the nudge.
tomspark wrote:
Thanks for the precise report — and good news, your data is safe (your manual cp -a is exactly the same copy SparkBox makes). You're right that it's the verification step failing, not the copy itself. That's a bug on our end in how the migration double-checks the copy, and I'm getting it fixed so it stops blocking the move. Since you've already copied the folders by hand you're fine to carry on, and I'll follow up here once the fix ships.
tomspark wrote:
Good idea — logged it. Right now updates are one-command-when-you-choose (sparkbox update) rather than scheduled, partly so an update never lands while you're mid-something. But a 'set it and forget it' auto-update schedule is a reasonable ask and it's on the list now. Thanks!
tomspark wrote:
Great suggestion, Paul — and you're not missing anything, it's a genuine gap in the guide. You're right that the install lands in /opt by default, which is tight on some UGREEN models, while /volume1 has the real space. Two things: the installer does let you choose the location up front — you can run it as curl -sSL https://get.tomsparkbox.com/install.sh | sudo bash -s -- --dir /volume1/sparkbox to put it straight on the big volume — and I'm adding a clear heads-up about this to the UGREEN guide so the next person doesn't lose hours to it. One quick thing so I can get the auto-detect right too: what's your exact model, and are you running UGREEN's own OS (UGOS) or your own Linux on it? On some models the installer already auto-points to the data volume, and it sounds like yours slipped through that check — I'd like to widen it to catch your model. Thanks for taking the time to write this up — genuinely useful.
jackhammer57 wrote:
Hey Tom, I have an add on I could really use for the media stack. I just uploaded my iTunes library into my Lidarr root folder, but Lidarr can’t seem understand the file structure or read the metadata so it has left the entire library in unmapped. So I guess what I need now is a musicbrainz Picard container to parse and populate metadata so Lidarr recognises my library
tomspark wrote:
Good news — you probably don't need a whole new app first. Dropping the files in the root folder doesn't make Lidarr match them on its own; it has a built-in tool for exactly this. In Lidarr, look for Library Import (it's how you bring in an existing collection) — point it at your music root folder and it scans everything and tries to match each album to an artist. Anything it can't auto-match, you can match by hand right there. That clears most "unmapped" libraries. Where it does struggle is messy iTunes tags — and you're spot on that MusicBrainz Picard is the perfect tool for cleaning those up. We don't ship a Picard app yet, but it's a genuinely good add to the stack and I'm putting it on the list. Try the Library Import first and tell me how many it leaves behind.
siv wrote:
Hi Tom, I think I may have found a bug with the File Browser module. During SparkBox setup I chose a custom media root (/srv/media) instead of the default /data. The File Browser container was created and the admin password file was generated in /opt/sparkbox/state, but the credentials from the state file did not work for the File Browser web UI. Investigation showed: Container: sb-filebrowser Media mount: /srv/media - /srv/data Database mount: /opt/sparkbox/modules/files/config/filebrowser - /database File Browser database existed at /opt/sparkbox/modules/files/config/filebrowser/filebrowser.db Attempts to manage users inside the running container failed because the File Browser CLI defaulted to /filebrowser.db instead of the mounted database path. After stopping the container and directly accessing /database/filebrowser.db, I was able to reset the admin account successfully. This makes me suspect that when a non-default media root is selected, the initial File Browser admin password stored in state/filebrowser-admin-password.txt is either: Not being applied to the actual database used by the container, or Being applied to a different database/config path than the one the container ultimately uses. It might be worth checking whether the File Browser provisioning logic behaves differently when the media root is changed from the default. One thing I'm not completely certain about is whether the media root change actually caused the issue, or whether the password-generation step failed independently. The developer will probably want to compare the generated password in state/filebrowser-admin-password.txt against the password hash stored in filebrowser.db to confirm the root cause. Footnote: Here's the setup I've got sparkbox running on. My old laptop from 2011 maybe some of the oldest it's been run on yet but uptime going strong above 4 days. Hardware: Toshiba Satellite L570 laptop (repurposed as home server) CPU: Intel Core i5-2410M 2 cores / 4 threads 2.3 GHz base, up to 2.9 GHz turbo Intel Sandy Bridge (2011) Memory: worked with 4 GB initially found some cheap ddr3 so swapped to 16 GB DDR3 RAM Operating System: Ubuntu Server Services Running: Jellyfin Sonarr Radarr Prowlarr Bazarr SABnzbd qBittorrent Overseerr Pi-hole File Browser Tailscale Home Assistant
Frosty wrote:
Hi Tom, I think port forwarding should have better support through the web UI. It took me a few hours to figure out how to get it working. Also after any nightly server updates I'm having to go back into the docker-compose to remove the firewall outbound subnet 10.0.0.0/8 which interferes with proton vpn port forwarding. Maybe there's a better way to do this, but I'm pretty new to this.
jackhammer57 wrote:
I tried the library import. It scanned all 13,000 files but left them all unmapped. It’s weird that it doesn’t recognise the metadata. When I click the info button on the unmapped track it shows the artist, album, and track information, but when I click the manual import it doesn’t show the metadata fields populated. I’d show you pictures of what I mean but the photo link button above is not working for me.
tdyoung8 wrote:
Hi Tom, It would be nice to have the ability to schedule SparkBox updates for auto install.
Amilo21 wrote:
EDIT: A lot of googling and forum reading. Turned out the issue was my uid, so I didn't have the permission. Factory reset and started over, now I can log in Trying to make it short. I'm a "regular people" and have never coded in my life. I installed it almost trouble free two days ago, but by mistake I wrote Natherlands instead of Natherlands when trying to install the medieserver. Big mistake, tried fixing it. Didn't work. Factory reset my NAS (just got it so had only spend a couple of hours) to try and run sparkbox again. But this time when enabling ssh i forgot to mark it never instead of the deffault 10minutes. So when I ran the script in putty, it ended with an error that didnt happen the first time. I tried to go to dashboard, and again i could put in the key and password like the first time, but i either did something wrong or forgot the password, so i used the forgot password in putty. I changed it and went back to dashboard, but trying to log in now there is only space for putting in my password not the key. Well then I tried to snapshot back before install sparkbox but that didnt delete the files in docker. I got them deleted manually and tried running it in putty again. Now it says i didnt finish the first time and i can still use my key. I go to dashboard page and there is still only space for my password. And trying to connect i keep getting a failed to load error. I checked out the log in the docker container and it says error permission denied because of missing key. How do I fix this? I have probably spend 6-8 hours on sparkbox now (as I said regular people, so i probably have to reread the guide 5 times for each step to make sure i get it, and apparently i still didnt) Any suggestions to help me out? Much appreciated 2026-06-13T22:32:39.928018269Z Error: EACCES: permission denied, open '/app/state/sessions/XsjqYU1YKAkStd7P0nGdJiyy46JoPfz.json.tmp.1.91c6991e' 2026-06-13T22:32:39.928049902Z at async Object.open (node:internal/fs/promises:637:25) 2026-06-13T22:32:39.928055862Z at async writeFileAtomic (/app/lib/atomic-write.js:81:18)
adiemin wrote:
As a bit of a noob to this, I would love to see Kometa in the Media package/ advice on how to install that alongside :)
AvantMagus wrote:
Possible Bug. I have installed Tdarr but it's not retaining the configuration after updates. I have to re-enter it every time.
tdyoung8 wrote:
Hi Tom, I ran into an issue every time "sparkbox up paperless" command ran, the one-time data migration failed with : Could not safely copy Paperless's [data/media/db] to /volume1/sparkbox-data/paperless/[folder] (verification failed). I'm running SparkBox v1.6.259 on a UGreen DXP4800pro. I have plenty of space and the source folder existed and was readable. The cp -a manual copy works fine — the verification logic itself is what's failing, not the actual copy. Had to manually cp all three folders (data, media, db) and move the originals to .migrated to get past it. Looks like the verification step doesn't play nice with btrfs/UGOS on this platform. Worth checking what the verify logic does differently on btrfs vs ext4.
AvantMagus wrote:
@tomspark did you see this?
return wrote:
My tom AI always says and I cannot seem to have access to it anymore. I hit a problem reaching the AI service mid-task: AI Troubleshooting is temporarily unavailable. Wait a minute and try again.. Try again in a moment. I am not particularly in a rush for a fix. I really enjoy the product and am more than happy to support. I did not support for extra features. Also is there any reason why the update pulls for containers are not latest but are particular version. For example my prowlarr reverted back to 2.35 when I had previously updated it to 2.4 manually.
tomspark wrote:
Thanks for the kind words! Two answers. The Tom AI error is on our side, not your box — the dashboard reached our AI service fine, but the service hit a snag finishing your request. It's the 'agentic' mode (the one that can run fixes for you) specifically; as a workaround, in Settings - Tom AI turn OFF the run-actions/agentic mode and plain chat should still answer. It's not a licensing thing — your support covers it; it's a bug on our end and we're on it. On the container versions: that's on purpose. SparkBox pins each app to a specific tested version (Prowlarr is on 2.3.5 right now) so every box runs a known-good combo, instead of 'latest' which can break unpredictably. The trade-off is that a manual update gets put back to the pinned version on the next sparkbox update. We bump those pins ourselves as new versions pass testing, so 2.4 will reach you through a normal update. If you'd rather run your own version and have it stick across updates, there's a supported override file — say the word and I'll walk you through it.
tomspark wrote:
You've hit a real rough edge — thanks for flagging it. That 10.0.0.0/8 line is there so your apps can reach your local network, but it does clash with Proton's port-forwarding, and it comes back on updates because it's part of the shipped config. Better built-in port-forwarding support — without hand-editing compose each time — is something we're actively working on. For now your workaround is the right one; sorry it's manual. I've made sure this is on the port-forwarding fix list.
tomspark wrote:
Logged it, thanks! Kometa (the collections/metadata manager) isn't in the media package today, but it's a good candidate and I've added it to the feature list. If you'd like to run it alongside in the meantime it works as its own container pointed at your media library and arr apps — happy to point you at a setup if you want to try it now.
tomspark wrote:
That unmapped-but-shows-metadata behavior is a known Lidarr quirk: the info popup reads the tags straight from your file, but Lidarr only matches against the MusicBrainz database — so if an album/artist isn't found there (or the tags don't match it closely), the manual-import fields come up blank. Two things that usually clear it: make sure the files have clean Artist/Album tags (MusicBrainz Picard is the go-to tool for tidying these), and in Lidarr add the artist first, then 'Manual Import' into that artist. Glad the image upload sorted itself out — want me to walk through tagging a sample album?
tomspark wrote:
Thanks for the detailed dig — that's a real bug, and you've pinned it well: with a custom media root, the FileBrowser password in the state file isn't matching the running container. I'm logging it to get fixed properly. In the meantime I can get you a working login — reply here and I'll walk you through resetting the FileBrowser admin password for your exact setup. Appreciate the thorough report.
paulrturnbull wrote:
Hi Tom, Can I suggest an addition to the Ugreen install guide? The default /opt directory is too small on the DH series of NAS. I'm not sure what the other Ugreen NAS devices are like but the default install location of /opt/sparkbox from the website command caused me a lot of troubled hours. All good now and have the Sparkbox running in /volume1/sparkbox and /volume1/sparkbox-data sweet but has taken a bit to get there. I think mentioning this in the guide for new Ugreen NAS users and advising them to check in case they also need to inject a target directory such as /volume1. I apologise if there is info to meet this already and I just missed it :) Cheers, Paul
paulrturnbull wrote:
Thanks Tom, It's the bog standard dh2300 with UGOS - a bit light power wise to run the media centre but worked great before I started trying to move things around. It's coming together now and I expect it to be able to run without issue once it has all it's db's etc. in order. I'm thinking of also installing on my linux Mint server (dual xeon, 128GB ram etc.) and if I do, will decide then which one to keep as the MC. Cheers, Paul
tomspark wrote:
Perfect — that's exactly what I needed: DH2300 on UGOS. Two things. (1) It confirms the gap — your model wasn't being recognized for the data-volume hint, and there's a UGOS-specific wrinkle to the /opt-vs-/volume1 choice, so I've noted it to sort properly rather than just paper over it. (2) Honestly, your Mint box (dual Xeon, 128GB) would be a much happier home for the media centre than the DH2300 — the little NAS is great for always-on, but the full arr + Jellyfin stack is heavy for a 2-core unit, which is the same reason you saw that deunhealth restart loop earlier. If you do stand it up on the Mint server, I'm glad to help you pick which to keep and move things across cleanly. Glad it's all coming together — enjoy it, Paul.
AvantMagus wrote:
Thank you sir
tomspark wrote:
Anytime — glad it's sorted! The v1.6.263 update should keep Tdarr's settings put for good now. Shout if anything else comes up.
paulrturnbull wrote:
Hi Tom, Over and running on the Mint box and sweet as. Went way easier than the UGOS install (I ready the guide properly this time - which I would stress any new user do and it was an easy install. RTFM as they say) The NAS will be returning to what it does best and hosting files. I learned a lot from the UGOS install but the thing I learned the most was to allow the scripts to do their thing and not running ahead thinking I knew what I was doing just because I had done a manual install of ARRSuite in the past 🙄
adiemin wrote:
Please send through setup, that would be appreciated :)
noahlol01 wrote:
Is there anyway to change the weather widget from Fahrenheit to Celsius in the v2 dashboard? And it seems that the resource usage and bandwidth doesn't update/refresh itself
tomspark wrote:
Good catches — both are fixed in the update that just went out (v1.6.311). The resource usage and bandwidth now refresh on their own every few seconds while the page is open, instead of only updating when you switch back to the tab. And you can now click the temperature on the weather card to flip between F and C — it remembers your choice. Grab it with: sudo sparkbox update Thanks for flagging both!
tomspark wrote:
Here's how. SSH into your box and create a folder for Kometa's config: sudo mkdir -p /opt/kometa/config. Then create a config.yml in that folder — the key things you need are your Plex server address (your NAS's local IP + port 32400) and your Plex token. Find the token in Plex Web: open any movie, click "Get Info" then "View XML", and copy the X-Plex-Token= value from the URL. Kometa's own docs have a starter config template (search "Kometa config.yml"). Once your config is ready, start the container: sudo docker run -d --name kometa -v /opt/kometa/config:/config lscr.io/linuxserver/kometa:latest Let me know how it goes!