I am trying to get through the install on my UGreen 2800. I will say this is my second install on the UGOS. The first install kinda worked but once I updated it, non of the apps even sparkbox wanted to connect to the internet. S, I uninstalled it. Additional info, the first install, I installed as root using sudo curl ....install.sh | sudo. Anyways, second install, I am using my normal 1000 id user. So far I was able to clear out most of the Doctor errors. However, it does not seem like any containers/daemons or services are running ( based on my own install of Portainer which is managed by UGreen's Docker). From what I remember from my initial install, I had to add a new network for Sparkbox to work. It seems like "sparkbox up" tries then fails. I am not sure if it is trying to manage it through its own instance of Portainer/Docker(which I do not see) or it is something else. Anyways, below is my doctor output. Edit: Updated solution on the bottom, however, I am still working on a fully functional Sparkbox. Leaving my initial post for reference.
12 replies
tomspark wrote:
Glad you got it running! SparkBox runs its own managed versions of Portainer, Immich, Jellyfin, and so on — it doesn't take over or connect to the ones you already had installed. They can coexist fine on different ports without stepping on each other. You don't need to reinstall everything from scratch. For Immich and Jellyfin specifically, SparkBox's copies just need to point at the folders where your existing photos and media live — same files, new managed stack. You set the media path during setup (or in Settings afterwards), so your data carries over automatically. Your existing containers can keep running while you decide which ones you prefer.
tomspark wrote:
Yes, it's all connected — Prowlarr feeds your arr apps with indexers, they grab via qBittorrent, and Jellyfin serves everything through Seerr. Staying on SparkBox's stack is the simpler long-term path, everything talks to each other out of the box. For directories: the one file is /opt/sparkbox/.env, the MEDIAROOT= line. Your doctor output already shows /volume4/Media there, so that part's done. Inside Radarr and Sonarr just add Root Folders pointing to /data/movies and /data/tv — those /data/ paths map to your MEDIAROOT automatically. Same idea for Jellyfin libraries. No other files needed.
tomspark wrote:
Yes — Radarr and Sonarr support as many root folders as you like. Create your subfolders first on the NAS (like /data/movies/Anime and /data/movies/Family), then in Radarr go to Settings → Root Folders and add each one. When you grab a title you pick which folder it goes into. Sonarr works exactly the same for TV. CineSync isn't needed for new downloads — Radarr and Sonarr handle the placement automatically once you've got the folders set up.
echojoker wrote:
$ sudo sparkbox doctor SparkBox v1.6.321 - Self-Hosted Privacy Stack Created by Tom Spark | youtube.com/@TomSparkReviews Environment: NAS (ugreen) SparkBox Doctor Running diagnostics... [Install location] [OK] SparkBox is installed at: /opt/sparkbox [OK] Settings file (.env): /opt/sparkbox/.env [OK] Media library folder (MEDIAROOT): /volume4/Media [Docker] [OK] Docker daemon is accessible [OK] Docker version: Docker version 26.1.0, build 9714adc [OK] Docker Compose: 2.26.1 [Docker Socket] [OK] Docker socket exists at /var/run/docker.sock [OK] Docker socket is readable [User IDs] [INFO] Current user: root (UID=0, GID=0) [OK] PUID=1000 (containers run as UID 1000) [OK] PGID=10 (containers run as GID 10) [Container Egress] [OK] Containers can reach webhook.tomsparkbox.com (license server) [Port Conflicts] [WARN] Port 53: in use by non-Docker process LISTEN 0 32 192.100.1.1:53 0.0.0.0: users:(("dnsmasq",pid=1600,fd=8)) [WARN] Port 80: in use by non-Docker process LISTEN 0 511 0.0.0.0:80 0.0.0.0: users:(("nginx",pid=2662,fd=6),("nginx",pid=2661,fd=6),("nginx",pid=2660,fd=6),("nginx",pid=2658,fd=6),("nginx",pid=1651,fd=6)) [WARN] Port 443: in use by non-Docker process LISTEN 0 511 0.0.0.0:443 0.0.0.0: users:(("nginx",pid=2662,fd=8),("nginx",pid=2661,fd=8),("nginx",pid=2660,fd=8),("nginx",pid=2658,fd=8),("nginx",pid=1651,fd=8)) [OK] Port 8080: available [OK] Port 8443: available [OK] Port 9000: in use (Docker -- likely SparkBox) [OK] Port 9092: available [Portainer Auth] [INFO] sb-portainer not running — skipping (run: sudo sparkbox up) [VPN Tunnel] [INFO] sb-gluetun not deployed — media stack not installed (or VPN module skipped) [Hardware Transcoding] [OK] /dev/dri exists -- GPU devices detected total 0 drwxr-xr-x 3 root root 100 Jul 1 10:22 . drwxr-xr-x 20 root root 7700 Jul 1 10:22 .. drwxr-xr-x 2 root root 80 Jul 1 10:22 by-path crw-rw---- 1 root video 226, 0 Jul 1 10:22 card0 crw-rw---- 1 root render 226, 128 Jul 1 10:22 renderD128 [OK] Intel Quick Sync / GPU render device available (renderD128) [OK] Render device is accessible by current user [Media Storage] [OK] MEDIAROOT=/volume4/Media exists [OK] MEDIAROOT is writable [OK] Your apps (user id 1000) can read your media library [INFO] Free space at MEDIAROOT: 288GB [System Resources] [INFO] Total RAM: 11711MB [INFO] Available RAM: 7422MB [OK] RAM looks sufficient for 2 enabled modules [INFO] Free disk at SBROOT: 15GB [NAS-Specific] [INFO] NAS type: ugreen [INFO] Install directory: /opt/sparkbox [WARN] Install directory is on system partition -- consider moving to a data volume [Container Health] [OK] All SparkBox containers are running ============================================ 3 issue(s) found. Review warnings above and fix as needed. ============================================
echojoker wrote:
$ sudo sparkbox up SparkBox v1.6.321 - Self-Hosted Privacy Stack Created by Tom Spark | youtube.com/@TomSparkReviews Environment: NAS (ugreen) [INFO] Starting SparkBox... [INFO] Active modules: core dashboard [INFO] Creating sbproxy network (172.20.0.0/24)... Error response from daemon: network sbproxy not found WARN[0000] The "SBADMINPASSWORDHASH" variable is not set. Defaulting to a blank string. Error response from daemon: network sbproxy not found $ sudo sparkbox status (Everything else is disabled) ● core (enabled) - Core Infrastructure ● dashboard (enabled) - TomSparkBox Dashboard
echojoker wrote:
$ sudo sparkbox repair-portainer SparkBox v1.6.321 - Self-Hosted Privacy Stack Created by Tom Spark | youtube.com/@TomSparkReviews Environment: NAS (ugreen) Repair Portainer Wiping Portainer admin state and regenerating credentials from scratch. Anything you'd configured inside Portainer (custom dashboards, env groups, etc.) will be lost — most users have nothing in there because they couldn't log in to begin with. [INFO] Stopping sb-portainer... [INFO] Wiping /opt/sparkbox/modules/core/config/portainer... [OK] New admin password written to /opt/sparkbox/state/portainer-admin-password.txt [INFO] Starting sb-portainer with new credentials... [ERROR] docker compose up failed — Portainer not restarted. Run: sudo sparkbox up
echojoker wrote:
$ sudo sparkbox up SparkBox v1.6.321 - Self-Hosted Privacy Stack Created by Tom Spark | youtube.com/@TomSparkReviews Environment: NAS (ugreen) [INFO] Starting SparkBox... [INFO] Active modules: core dashboard [INFO] Creating sbproxy network (172.20.0.0/24)... [INFO] Prepared 1 module config dir(s) for PUID=1000 PGID=10 Error response from daemon: network sbproxy not found WARN[0000] The "SBADMINPASSWORDHASH" variable is not set. Defaulting to a blank string. Error response from daemon: network sbproxy not found
echojoker wrote:
Update: I was able to get the stack finally running. I had to run sudo sparkbox factory-reset. With that, is there a way for me to point SparkBox to my native pre-installed apps? Like my Portainer, Immich, Jellyfin, Pihole containers/stacks? I see no sense on reinstalling those Apps/Containers. My currents apps are hosted on their own IP. The SB apps use the host's IP with the service's ports.
echojoker wrote:
Gotcha. With that, the entire SB Media stack is set up as an ecosystem? If so, I guess in the end, staying with SB's Media Stack is better in the long run? Edit: What files do I need to edit to point the services to the proper directory?
echojoker wrote:
Ah cool! I am still new in the Media stack space. Is there a way for the current stack setup to create sub folders in /data/movies and /data/tv? Like Movies{Anime, Family, Movies}, TV{{Anime, Family, Movies}, Documentaries, etc.? Or is everything downloaded and just placed in those two folders? I been trying to use CineSync to help with organization.
echojoker wrote:
Got it! Thanks for the hard work! I'll continue to test things on my end. Just had to go through setting up Immich. I needed to add more external mounts and saw you posted about creating "override" files. I tried that initially and kept receiving build errors. I then noticed I can configure the yaml compose files manually to add or remove mounts and other variables. I am not sure if those yaml files persist through updates as I may configure yamls for other apps as needed. Changing gears, you mentioned that you have a UGOS. The processing power for LocalAI using UGreen is limited. I have a 3090 on my desktop. Is it possible using UGOS SparkBox as a prompt client and setting up a remote AI processing server elsewhere all through SparkBox? I deduce the server side, I may need to configure myself through some sort of Ollama iteration without SparkBox.
tomspark wrote:
The yaml files do get replaced when you update — SparkBox re-syncs its managed ones, so direct edits get wiped. Override files are the right approach and you're not wrong to use them; if you paste the build error you got, I can figure out what tripped it up. On the remote Ollama idea — SparkBox's AI module currently expects Ollama on the same box. Pointing it at your desktop's 3090 isn't a setting yet, but it's a genuinely smart use of existing hardware. I'll log it as a feature request. If you want to try it manually while that's in the queue, drop a note and I'll walk you through an override.