[Fix] SparkBox on Windows/WSL2 — containers healthy but nothing loads in browser (mirrored networking mode)
Posted by niels
If you installed SparkBox via the Windows/WSL2 route and you're stuck with: all containers showing healthy in docker ps, ping to your WSL IP works fine, but every SparkBox service (dashboard, Portainer, qBittorrent, etc.) just times out or spins forever in the browser — this might be your fix. Cause: Check your .wslconfig file: notepad $env:USERPROFILE\.wslconfig If you see networkingMode=mirrored under [wsl2], that's it. Mirrored mode makes WSL2 share Windows' network interface directly instead of getting its own NAT'd IP — and it breaks Docker's port publishing to the Windows host. Containers stay perfectly healthy inside WSL, they're just unreachable from outside. Fix: Comment out or delete the networkingMode=mirrored line in .wslconfig (leave other lines like dnsTunneling=true alone). Open PowerShell as Administrator, then: wsl --shutdown Wait ~10 seconds, open a normal terminal, start WSL again, bring SparkBox back up: wsl sudo sparkbox up Get your new WSL IP: wsl hostname -I Take the first IP listed — the rest (172.x.x.x addresses) are Docker's internal bridge networks, not your host IP. Browse to http://<that-ip:<port — e.g. :9000 for Portainer, :8443 for the dashboard. Note: in normal NAT mode this IP can change after a WSL restart or reboot — just re-run wsl hostname -I if things stop loading again later.
1 replies
Chris wrote:
Thanks for sharing this, niels — that's a genuine fix for the symptom (everything healthy in docker ps, nothing loads in the browser), and it matches what SparkBox's own health check looks for on WSL2. One heads-up before others copy this: the installer turns on networkingMode=mirrored on purpose, specifically so phones, TVs, consoles and other PCs on your home network can reach the dashboard and apps directly. Switching to NAT mode (as above) fixes access from the Windows PC itself, but any other device on the network will lose access to those same addresses — it trades one "can't reach it" problem for a different one. If you'd rather keep mirrored mode's LAN access and still clear the timeout, there's a narrower fix. In an administrator PowerShell, run: Set-NetFirewallHyperVVMSetting -Name '{40E0AC32-46A5-438A-A0B2-2B479E8F2E90}' -DefaultInboundAction Allow wsl --shutdown Then reopen Ubuntu and run sudo sparkbox up. That's the same rule sudo sparkbox doctor points people to when it detects this exact "port is listening but times out instead of connecting" wedge. Full walkthrough covering both routes: https://tomsparkbox.com/guides/run-sparkbox-on-windows-wsl