Add native support for showing real client IP when behind Cloudflare (or other reverse proxies)
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 38/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- docker, typescript
- Ambito
- cloud, devops, infrastructure, networking
Direzione di ricerca
Inizia tracciando come viene rappresentata la configurazione Settings > Traefik / Network e come viene generato /etc/dokploy/traefik/traefik.yml. Esamina gli entryPoints di Traefik per web e websecure, le origini IPv4/IPv6 di Cloudflare e la issue correlata #2349. Il lavoro è completato quando gli intervalli dei proxy attendibili possono essere configurati tramite Dokploy e persistono dopo la rigenerazione della configurazione.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
What problem will this feature address?
When an application is deployed behind Cloudflare (proxied DNS) or another reverse proxy, both Dokploy's dashboard and the request headers passed to deployed applications reflect Cloudflare's edge IP address rather than the end user's actual IP address.
This creates critical limitations:
- Inability to perform accurate IP-based access control or allowlisting.
- Inaccurate rate limiting at the application level.
- Loss of visibility into actual traffic sources in application logs.
Current Workaround & Friction:
Currently, the only workaround is to SSH into the host server and manually edit Traefik's static configuration (/etc/dokploy/traefik/traefik.yml) to populate entryPoints.<name>.forwardedHeaders.trustedIPs with Cloudflare’s published IP ranges.
This approach is fragile because:
- It is not exposed or discoverable in the UI.
- Changes risk being silently overwritten whenever Dokploy regenerates the Traefik configuration.
- Cloudflare's IP ranges must be maintained manually or through out-of-band scripting.
Describe the solution you'd like
A native configuration toggle in the Dokploy settings (e.g., under Settings > Traefik / Network) to handle trusted reverse proxy headers automatically:
- Preset Options: A toggle to enable "Trust Proxy / Restore Real IP" with built-in presets:
- Cloudflare: Automatically fetches and injects Cloudflare’s official IPv4 and IPv6 ranges (
https://www.cloudflare.com/ips-v4and/ips-v6). - Custom / Generic: A text input accepting user-defined CIDR ranges (for Cloudflare Tunnels, AWS ALB, custom NGINX, etc.).
- Cloudflare: Automatically fetches and injects Cloudflare’s official IPv4 and IPv6 ranges (
- Persistence & Maintenance:
- Ensure these entries are natively written into Traefik's entryPoints (
web,websecure) so they persist across Dokploy updates or Traefik config regenerations. - Periodically auto-refresh Cloudflare's IP list (or sync on container restart).
- Ensure these entries are natively written into Traefik's entryPoints (
- UI Visibility (Optional): Display the resolved real client IP in Dokploy dashboard logs and request analytics.
Describe alternatives you've considered
- Manual
traefik.ymlmodification + Cron script: Functional, but prone to breakage when Dokploy regenerates Traefik files. - Traefik Plugins (e.g.,
traefik-real-ip,Traefik Warp): Solves parts of the issue, but requires enabling Traefik's plugin system, which is currently unexposed in Dokploy.
Additional context
- Potentially related to #2349 (IPv6 client IP reporting issues).
Will you send a PR to implement it?
Yes
- Lingua principale
- TypeScript
- Stelle
- 38.2k
- Fork
- 3.1k
- Merge medio
- 1g 18h
- PR unite (30g)
- 74
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Include un Dockerfile o un file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di Dokploy/dokploy
-
needs-triage🔍
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
Dokploy/dokploy#5836 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Server threshold (CPU/Memory) alerts for the main Dokploy server never reach any notificationForse già presa @ghazy2001 l’ha presa 6 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
Dokploy/dokploy#5830 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Add a "System" option to the dark/light mode setting (follow OS appearance)Forse già presa @fabianfrankwerner l’ha presa 27 giorni fa. Apertaenhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
Dokploy/dokploy#5638 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
compose.search omits services missing from member accessedServices, even for owners/adminsForse già presa @imrja8 l’ha presa 8 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
Dokploy/dokploy#5361 · 2 commenti · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
-
[Feature Request] Show usage example for File Mounts created in the UIForse già presa @jereok91 l’ha presa 50 giorni fa. Apertaenhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
Dokploy/dokploy#5147 · 3 commenti · 1 reazione ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di Dokploy/dokploy
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
I maintainer di solito rispondono entro 1 giorno
-
"Claude Code request is missing its initial user message" when the prompt starts with an image pathAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
earendil-works/pi-claude-code#31 ·
I maintainer di solito rispondono entro 8 giorni
-
bug pending triage
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 92/100
privatenumber/cleye#48 ·
-
Google text documents are base64-encoded twiceForse già presa @feiiiiii5 l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno