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