Dokploy / Dokploy/dokploy

Allow Dokploy and traefic panel UI to bind to 127.0.0.1 (don’t publish :3000)

Open
#2,661 2 comments 11 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
TypeScript
Stars
37.4k
Forks
3k
Avg merge
1d 3h
Merged PRs (30d)
73

Description

What problem will this feature address?

When self-hosted, the Dokploy UI always binds to 0.0.0.0:3000 in host mode. This makes the dashboard publicly accessible at http://:3000 even if Traefik + HTTPS are set up. It exposes the login page directly to the internet and can’t be restricted with UFW due to Swarm host networking.

Describe the solution you'd like

Add a configuration option (e.g., BIND_ADDRESS=127.0.0.1) or route the UI only through the built-in Traefik. This would ensure the dashboard is only accessible via a secure domain (with HTTPS and middleware) instead of a raw public IP.

Describe alternatives you've considered

Cloud provider firewalls (Hetzner/DO): works, but adds extra complexity.

Removing the Swarm published port manually: fragile, breaks after updates.

VPN/Tunnel (Tailscale, Cloudflare): works, but not beginner-friendly and adds overhead.

Additional context

Other platforms (Portainer, CapRover, Coolify) allow localhost-only binding or force proxy access for their admin UIs. Supporting this in Dokploy would reduce the attack surface and align with security best practices.

Will you send a PR to implement it?

No

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing how the self-hosted UI service is configured for Swarm host networking and how its port is published, then inspect the built-in Traefik routing. Done should mean the dashboard is not reachable through the server's raw :3000 address while remaining accessible through the secured HTTPS domain, using either configurable localhost binding or proxy-only access.

Written by the indexing model from the issue text.

Assessment

Tech stack
docker, typescript
Domain
devops, infrastructure, security
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.