High Availability and Traefik
What problem will this feature address?
Hello Everyone,
So I've sort of fallen in love with this project, but one of my main gripes is a lack of support (or perhaps documentation?) for high availability.
I'm considering setting up a PR, or forking this project entirely and adding it as a main feature.
One of the main issues I encountered when trying to setup Traefik and getting it to work with my Docker Swarm is that the nodes and the manager need to share a private network, and not only that, that private network needs to be setup BEFORE you set up Dokploy. This is because there is a step where the advertise address for docker swarm is setup at the beginning of the setup script, and it must be advertising on this local network that you've created.
The second part is that the overlay network (dokploy-network) needs to be created after you've already joined your nodes to the swarm. I encountered an error where Traefik was giving me a Bad Gateway error because it couldn't access the containers on the other nodes, and that was because the overlay network wasn't being propagated to the other nodes for some reason.
Lastly, in order to get Traefik to work, you'll need to set up some form of Shared Storage for the configuration files. This is one of the hardest parts about setting up docker swarm, and GlusterFS is one of the main contenders in this case for doing that, but obviously that comes with a whole new consideration for managing a glusterfs cluster.
I think with a bit of careful consideration, we could modify the Swarm and setup process so that setting this up is a breeze just like the setup for Dokploy is already a breeze.
Any thoughts? Anyone wanna work on this with me in a fork? I'm a Typescript and Go Developer.
Describe the solution you'd like
Features to automatically setup Docker Swarm with proper configurations for a private network, perhaps even using Tailscale or something between nodes if they're on different VPS's with only public IPs. The ability to automate GlusterFS setup for shared storage between nodes, and set up Traefik as a service on multiple nodes.
Describe alternatives you've considered
Kubernetes
Additional context
No response
Will you send a PR to implement it?
Maybe, need help
Swarm already shares config files using docker config
Hmm, but the only other issue is that Traefik doesn't support letsencrypt on multiple machines unless you use their Enterprise version. So that is obviously a big issue.
That's correct, that's the bad thing about traefik, another idea is implement caddy #1246