Files
wiki/Catalogue-Self-Hosted/apps/app-dockflare.md
T
2026-06-09 18:40:21 +02:00

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_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.

# 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
# 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