-
-
Notifications
You must be signed in to change notification settings - Fork 2
Open
Milestone
Description
💭 RFC: Horizontal Scaling – Should deeploy Go There?
Context
A user asked about horizontal scaling support. This raises the question: does multi-server deployment fit deeploy’s simple, TUI-first philosophy, or would it bloat the scope?
Competitive Landscape
Coolify
- Multi-server: Experimental
- Tech: Docker Swarm
- Notes: Known edge cases
- Discussion: Allow scaling docker deployments using replicas coollabsio/coolify#3862
Dokploy
- Multi-server: Works
- Tech: Docker Swarm
- Notes: Requires external registry
Uncloud.run
- Multi-server: Works
- Tech: Fully custom stack (WireGuard + Go/Rust)
- Notes: No Kubernetes, no Swarm, decentralized
Realistic Options for deeploy
🥇 Tailscale + Custom Go Agents
- WireGuard-based, zero-config networking
- Modern, fits the TUI-first philosophy perfectly
- High effort, but unique positioning in the market
- Inspiration: https://uncloud.run/docs/ (custom WireGuard mesh, no K8s)
🥈 Docker Swarm
- Built-in Docker feature, battle-tested
- Low effort, pragmatic, what Dokploy does
- Downside: considered “deprecated in spirit”, minimal active development
🥉 Defer Decision
- Focus on core features first
- Revisit once there is clearer user demand
Ruled Out
Kubernetes / K3s
- Overkill
- Directly contradicts deeploy’s simplicity philosophy
HashiCorp Nomad
- Too many moving parts
- Requires additional dependencies (Consul, Envoy sidecars)
Raw WireGuard
- Extremely high effort
- Tailscale already solves the hard problems for us
Open Questions
- Is there real demand, or just a one-off question?
- Does scaling fit our target audience (indie devs, small teams, homelab)?
- If we build it: Tailscale (modern, unique) or Docker Swarm (pragmatic, fast)?
Resources
- https://uncloud.run/docs/ – Custom WireGuard approach (no K8s)
- https://tailscale.com/blog/docker-tailscale-guide
- https://tailscale.com/blog/services-beta – Service discovery
- https://docs.dokploy.com/docs/core/cluster – Docker Swarm approach
sdil
Metadata
Metadata
Assignees
Labels
No labels