I'm looking to create a homelab for myself and some friends, and I want to explore using Docker. I've heard of Docker Swarm, which helps with redundancy by allowing multiple machines to run services together. For my setup, I'd like to run OpenCloud, Immich, and Jellyfin. However, I'm concerned about what happens if my power or internet goes down, making these services inaccessible. Is there a way to set up a Docker Swarm across multiple LANs?
Essentially, I'd love to know:
- How can I sync the state of Docker services between different LANs?
- How can I manage public-facing URLs to have backup IP addresses in case one of the machines goes down?
I realize this is a bit advanced, but I want to understand what I might be getting into as I develop my homelab. I appreciate any insights you might have!
4 Answers
You'll want the head or leader node of your swarm to be on a public network so you can access it remotely. You can implement a VPN like Tailscale to allow visibility between your machines across different networks. This way, you can handle load balancing and routing effectively!
Jellyfin currently uses SQLite, which makes horizontal scaling pretty much impossible right now. They’re working on separating the database from Jellyfin instances, which could open up more options within the next year or so!
The tough part about setting up a swarm like that is less about failing over the compute services and more about managing data replication. For files, you could use a tool like rsync. However, databases can be more complex to keep consistent across multiple locations. Both OpenCloud and Jellyfin, for instance, use databases — likely MySQL for OpenCloud. You’ll need a robust solution to keep your data in sync!
Check out uncloud.run for some interesting solutions regarding cloud setups — it might help with your quest for redundancy!

If you crack that code, I’d love to hear about it!