--- 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](https://github.com/ChrispyBacon-dev/DockFlare) | | **GitHub** | [ChrispyBacon-dev/DockFlare](https://github.com/ChrispyBacon-dev/DockFlare) | | **License** | MIT | | **Langage** | Python (Flask), JavaScript | | **Étoiles GitHub** | 2.2k ⭐ | | **Dernière MAJ** | 2026-06 | | **Catégorie** | [[cat-reverse-proxy\|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é) ```yaml # 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_TOKEN` et `CF_API_TOKEN` doivent être dans un `.env` non 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. ```yaml # 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 1. **Créer un tunnel Cloudflare** : `cloudflared tunnel create home-tunnel` puis récupérer le token 2. **Créer un token API Cloudflare** avec permissions `Zone:DNS:Edit` et `Account:Cloudflare Tunnel:Edit` 3. **Renseigner** `.env` avec `TUNNEL_TOKEN`, `CF_API_TOKEN`, `CF_ACCOUNT_ID`, `CF_TUNNEL_ID` 4. **Lancer** : `docker compose up -d` 5. **Accéder à la WebUI** : `http://localhost:5000` 6. **Ajouter des labels** sur les conteneurs à exposer ```yaml # 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 - [README GitHub](https://github.com/ChrispyBacon-dev/DockFlare) - [Wiki - BasicUsageSingleDomain](https://github.com/ChrispyBacon-dev/DockFlare/wiki/BasicUsageSingleDomain.md) - [Documentation Cloudflare Tunnels](https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/) - [Wiki selfh.st](https://selfh.st/apps/?tag=Reverse+Proxy) ## 🔗 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é