6.7 KiB
title: DockFlare created: 2026-06-06 updated: 2026-06-06 type: app tags: [catalogue, reverse-proxy, cloudflare, tunnel, docker, dns, webui] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Reverse+Proxy, https://github.com/ChrispyBacon-dev/DockFlare]
☁️ DockFlare
Gestionnaire de tunnels Cloudflare automatisé par labels Docker, avec WebUI de supervision. Réputation : excellent complément à app-cloudflared pour les utilisateurs qui veulent piloter leurs tunnels depuis Docker.
📋 Informations Générales
| Champ | Valeur |
|---|---|
| Site web | github.com/ChrispyBacon-dev/DockFlare |
| GitHub | ChrispyBacon-dev/DockFlare |
| License | MIT |
| Langage | Python (Flask), JavaScript |
| Étoiles GitHub | 2.2k ⭐ |
| Dernière MAJ | 2026-06 |
| Catégorie | cat-reverse-proxy, Tunnel, Cloudflare |
📝 Description
DockFlare est une WebUI + orchestrateur pour Cloudflare Tunnels qui automatise la création des ingress rules et des DNS CNAME à partir de labels Docker posés sur vos conteneurs. Au lieu de gérer manuellement votre config.yml de cloudflared, vous déclarez l'intention sur le conteneur et DockFlare réconcilie l'état réel sur l'API Cloudflare.
Le principe de fonctionnement : un daemon Python surveille les événements Docker (docker events), lit les labels dockflare.enable=true, dockflare.hostname=app.example.com, et propage la configuration sur l'API Cloudflare. La WebUI affiche l'état de tous les tunnels et de leurs ingress rules, avec édition manuelle possible.
DockFlare ne remplace pas cloudflared — il orchestre sa configuration. Vous avez toujours besoin d'un (ou plusieurs) agents cloudflared qui font passerelle entre Internet et votre réseau. DockFlare est à cloudflared ce que Traefik est à Nginx : un planificateur intelligent.
Public cible : utilisateurs qui veulent la simplicité de Cloudflare Tunnel (pas de port forwarding, IP masquée) combinée à l'auto-discovery Docker (à la Traefik). Idéal pour les setups derrière un NAT strict ou un CGNAT.
🚀 Installation
Option 1 : Docker Compose (recommandé)
# docker-compose.yml
services:
cloudflared:
image: cloudflare/cloudflared:latest
container_name: cloudflared
restart: unless-stopped
command: tunnel run
environment:
- TUNNEL_TOKEN=${TUNNEL_TOKEN}
networks:
- dockflare-net
depends_on:
- dockflare
dockflare:
image: alplat/dockflare:latest
container_name: dockflare
restart: unless-stopped
ports:
- "5000:5000" # WebUI
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
environment:
- CF_API_TOKEN=${CF_API_TOKEN}
- CF_ACCOUNT_ID=${CF_ACCOUNT_ID}
- CF_TUNNEL_ID=${CF_TUNNEL_ID}
- TUNNEL_NAME=home-tunnel
- LABELS_MODE=secure
networks:
- dockflare-net
networks:
dockflare-net:
💡 Variables d'environnement sensibles :
TUNNEL_TOKENetCF_API_TOKENdoivent être dans un.envnon versionné.
Option 2 : Variante Traefik
DockFlare est complémentaire de Traefik dans certains setups : Traefik gère le reverse proxy interne, DockFlare gère l'exposition publique via Cloudflare. Les deux peuvent coexister.
# Sur une app exposée à la fois en interne (Traefik) et en externe (Cloudflare)
services:
mon-app:
labels:
# Traefik (interne)
- "traefik.enable=true"
- "traefik.http.routers.app.rule=Host(`app.lan`)"
# DockFlare (externe via Cloudflare)
- "dockflare.enable=true"
- "dockflare.hostname=app.example.com"
- "dockflare.service=http://mon-app:80"
⚙️ Configuration Initiale
- Créer un tunnel Cloudflare :
cloudflared tunnel create home-tunnelpuis récupérer le token - Créer un token API Cloudflare avec permissions
Zone:DNS:EditetAccount:Cloudflare Tunnel:Edit - Renseigner
.envavecTUNNEL_TOKEN,CF_API_TOKEN,CF_ACCOUNT_ID,CF_TUNNEL_ID - Lancer :
docker compose up -d - Accéder à la WebUI :
http://localhost:5000 - Ajouter des labels sur les conteneurs à exposer
# Exemple labels
labels:
- "dockflare.enable=true"
- "dockflare.hostname=photos.example.com"
- "dockflare.service=http://immich-server:2283"
- "dockflare.access.policy=authenticated" # optionnel
🔀 Alternatives
Open Source
- cloudflared standalone (sans DockFlare) : config manuelle via
config.yml - app-traefik : auto-discovery Docker mais pas spécifique à Cloudflare
- app-pangolin : concurrent plus large (tunnel + auth + reverse proxy)
- app-caddy : peut s'intégrer à Cloudflare via le plugin DNS
Comparaison DockFlare vs cloudflared standalone vs Traefik
| Critère | DockFlare | cloudflared seul | Traefik + Cloudflare |
|---|---|---|---|
| Auto-discovery Docker | ✅ | ❌ | ✅ |
| WebUI | ✅ | ❌ | ⚠️ Dashboard basique |
| Édition manuelle | ✅ | ✅ (config.yml) | ⚠️ |
| Tunnel Cloudflare | ✅ (orchestre) | ✅ (mote) | ⚠️ Plugin |
| Auth intégrée | ⚠️ Basique | ❌ | ⚠️ ForwardAuth |
| Multi-tunnel | ✅ | ⚠️ Config complexe | ⚠️ |
| Sans port forwarding | ✅ | ✅ | ⚠️ Selon config |
Propriétaires (ce que DockFlare remplace)
- Cloudflare Zero Trust dashboard (en partie, pour la partie tunnel)
- Ngrok Business (en self-hosted)
🔒 Sécurité
- ✅ Pas d'exposition de ports sur l'IP publique (Cloudflare Tunnel)
- ✅ IP d'origine masquée derrière le réseau Cloudflare
- ✅ WebUI protégée par token / mot de passe configurable
- ✅ Cloudflare Access intégrable (auth Zero Trust)
- ⚠️ Token Cloudflare = accès total au compte : rotation régulière recommandée
- ⚠️ Socket Docker monté : envisager app-docker-socket-proxy en amont
- ⚠️ Pas de rate-limiting natif : compter sur Cloudflare côté edge
📚 Ressources
🔗 Pages Liées
- cat-reverse-proxy — Catégorie Reverse Proxy
- app-traefik — Concurrent auto-discovery
- app-pangolin — Concurrent orienté tunnel + auth
- app-cloudflared — Composant sous-jacent
- comparatif-reverse-proxy — Comparaison détaillée
- securisation-home-lab — Sécurité