Coba inget-inget, tiap kali kamu deploy container baru terus mau diakses dari luar lewat Cloudflare Tunnel, biasanya alurnya gimana? Buka config.yml cloudflared, tambahin ingress rule manual, restart tunnel, terus balik lagi ke dashboard Cloudflare buat bikin DNS record-nya satu-satu. Kalau container-nya cuma dua tiga sih masih santai. Tapi begitu jumlahnya udah belasan, capeknya kerasa banget. Apalagi kalau lupa update satu ingress rule, bisa-bisa malah error 502 pas diakses. Nah, di titik ini banyak yang mulai lirik cara install DockFlare. Tinggal kasih label di docker-compose.yml, semua urusan itu otomatis beres.
Ini beda sama setup Cloudflare Tunnel manual yang pernah dibahas di sini. DockFlare gak nyuruh kamu ngedit file konfigurasi tiap ada perubahan. Container jalan, DockFlare baca label-nya, terus otomatis bikinin ingress rule, DNS record, sampai kebijakan Zero Trust Access-nya lewat API Cloudflare. Cocok banget buat kamu yang udah kepake ekosistem Docker Compose dan males bolak-balik antara terminal sama dashboard Cloudflare.
Kenapa Manual Setup Cloudflare Tunnel Bikin Capek
Masalah utama pendekatan manual itu bukan soal susah, tapi soal gak scalable. Setiap nambah service baru, kamu mesti masuk lagi ke config, restart tunnel, dan cek DNS. Kalau service itu butuh proteksi login, Access Policy-nya juga mesti diatur manual. Prosesnya berulang dan gampang kelewat satu langkah, apalagi kalau server udah jalanin puluhan container. Ditambah lagi, config yang diubah manual gampang out of sync sama kondisi container yang sebenernya. Soalnya, gak ada mekanisme yang otomatis nyocokin keduanya.
DockFlare ngatasin ini pakai pendekatan reconciliation, mirip konsep di Kubernetes. Dia terus mantau event Docker, lalu bandingin state container yang lagi jalan sama konfigurasi di Cloudflare. Begitu ada bedanya, DockFlare otomatis nyamain keduanya. Container mati, ingress rule-nya ikut dibersihin. Container baru muncul dengan label yang pas, rule-nya otomatis dibikin. Gak ada lagi drift antara apa yang jalan di server dan apa yang kesetting di Cloudflare.
Cara Kerja DockFlare: Container Kasih Label, Tunnel Otomatis Jalan
Arsitekturnya sengaja dipisah biar aman. DockFlare gak pernah nyentuh langsung /var/run/docker.sock, soalnya itu pintu masuk yang sensitif banget kalau bocor. Sebagai gantinya, dia lewat docker-socket-proxy yang cuma ngasih akses terbatas: baca event, baca info container, gak lebih. Dari pengalaman ngoperasiin CrowdSec dan Cloudflare bareng-bareng buat lapisan keamanan server, prinsip least-privilege kayak gini emang paling masuk akal. Makin sedikit permukaan akses yang kebuka, makin kecil juga risiko kalau ada komponen yang di-compromise.
Begitu ada container baru nongol dengan label yang sesuai, DockFlare langsung proses tiga hal sekaligus. Dia bikin DNS record di zona Cloudflare kamu, nambahin ingress rule di tunnel yang aktif, dan kalau perlu, masang kebijakan Zero Trust Access buat proteksi tambahan. Semua state-nya disimpen di Redis, jadi kalau container-nya di-restart atau DockFlare-nya sendiri yang restart, konfigurasi gak hilang begitu aja.
Yang Mesti Ada Dulu Sebelum Install DockFlare
Sebelum eksekusi, siapin beberapa hal ini biar prosesnya lancar tanpa bolak-balik:
- VPS dengan Docker dan Docker Compose yang udah jalan.
- Domain yang DNS-nya udah dikelola Cloudflare (zona aktif, bukan cuma didaftarin doang).
- Cloudflare API Token dengan scope Zone dan Account yang cukup, plus Account ID dan Zone ID-nya dicatat dulu.
- Network Docker eksternal bernama
cloudflare-net, biar semua service yang mau diekspos gampang disambungin.
Langkah Install DockFlare Pakai Docker Compose
Ikutin urutan berikut satu-satu biar gak ada yang kelewat, soalnya urutan startup service-nya emang saling gantung satu sama lain.
1. Bikin Network Eksternal Dulu
Network ini yang bakal dipakai bareng sama semua container yang mau diekspos lewat DockFlare nantinya.
docker network create cloudflare-net
2. Siapin Folder dan docker-compose.yml
Bikin folder khusus, terus taro file docker-compose.yml isinya empat service inti: docker-socket-proxy, job init buat benerin permission volume, DockFlare sendiri, dan Redis buat nyimpen state.
mkdir dockflare && cd dockflare
nano docker-compose.yml
Isi filenya kira-kira begini, versi ringkas tanpa profil email yang opsional:
services:
docker-socket-proxy:
image: tecnativa/docker-socket-proxy:v0.4.1
container_name: docker-socket-proxy
restart: unless-stopped
environment:
- CONTAINERS=1
- EVENTS=1
- NETWORKS=1
- POST=1
volumes:
- /var/run/docker.sock:/var/run/docker.sock
networks:
- dockflare-internal
dockflare-init:
image: alpine:3.20
command: ["sh", "-c", "chown -R 65532:65532 /app/data"]
volumes:
- dockflare_data:/app/data
networks:
- dockflare-internal
restart: "no"
dockflare:
image: alplat/dockflare:stable
container_name: dockflare
restart: unless-stopped
ports:
- "5000:5000"
volumes:
- dockflare_data:/app/data
environment:
- REDIS_URL=redis://redis:6379/0
- DOCKER_HOST=tcp://docker-socket-proxy:2375
depends_on:
- docker-socket-proxy
- dockflare-init
- redis
networks:
- cloudflare-net
- dockflare-internal
redis:
image: redis:7-alpine
container_name: dockflare-redis
restart: unless-stopped
command: ["redis-server", "--save", "", "--appendonly", "no"]
volumes:
- dockflare_redis:/data
networks:
- dockflare-internal
volumes:
dockflare_data:
dockflare_redis:
networks:
cloudflare-net:
external: true
dockflare-internal:
3. Jalankan Stack dan Kelarin Setup Wizard
Setelah file-nya siap, jalanin stack-nya pakai perintah biasa.
docker compose up -d
docker compose ps
Pastiin keempat container statusnya “running” atau “healthy”, terus buka browser ke http://IP-VPS-kamu:5000. Harusnya langsung disambut Pre-Flight Setup Wizard. Di situ kamu bakal diminta bikin password buat Web UI, masukin Account ID, Zone ID, dan API Token Cloudflare tadi, terus setup tunnel awal. Ikutin aja step-nya sampai selesai. Wizard ini yang bakal generate tunnel pertama kamu otomatis lewat API, jadi gak perlu ngetik command cloudflared manual.
Expose Container Pertama Cuma Modal Label
Setelah wizard kelar, coba tes ke container lain yang mau diekspos. Tinggal tambahin label ini ke service-nya di docker-compose.yml masing-masing, terus docker compose up -d ulang buat apply-nya.
labels:
- dockflare.enable=true
- dockflare.hostname=app.domainmu.com
- dockflare.service=http://nama-container:port
Dalam beberapa detik, DNS record buat app.domainmu.com otomatis nongol di Cloudflare, dan ingress rule-nya kesambung ke tunnel yang udah jalan. Service-nya langsung bisa diakses dari luar tanpa buka port apa pun di firewall VPS. Kalau butuh proteksi login tambahan, bisa dipasang Access Policy lewat Web UI DockFlare. Pengaturan ini bakal override konfigurasi dari label sampai kamu revert manual.
Kendala yang Sering Muncul Setelah Install DockFlare
Beberapa masalah yang paling sering ketemu di lapangan, plus cara ngatasinnya:
- Container dengan label gak kedeteksi: cek dulu apakah container-nya nyambung ke network
cloudflare-net. Tanpa network itu, DockFlare bisa baca label-nya tapi service-nya gak bisa dijangkau lewat tunnel. - Wizard gagal connect ke Cloudflare: biasanya API Token-nya kurang scope. Pastiin token itu punya izin Zone:DNS:Edit dan Account:Cloudflare Tunnel:Edit minimal.
- docker-socket-proxy restart terus: cek permission file
docker.sockdi host, kadang kebentur sama plugin security lain kayak AppArmor yang terlalu strict. - Ingress rule lama gak kehapus otomatis: DockFlare butuh waktu beberapa detik buat siklus reconciliation berikutnya. Kalau lebih dari semenit masih nyangkut, cek log container
dockflarebuat liat errornya.
Satu hal yang mungkin kelewat dari dokumentasi resminya: DockFlare bakal ngehapus ingress rule apa pun di tunnel yang gak dikenalnya sebagai rule yang dia kelola. Jadi kalau kamu udah punya tunnel lama dengan config manual, mending bikin tunnel baru khusus buat DockFlare. Jangan dicampur sama yang lama. Ini yang bikin transisi dari setup manual ke DockFlare kadang butuh sedikit perencanaan ekstra. Bukan tinggal pasang lalu langsung mulus di percobaan pertama.
Buat kamu yang server-nya udah kepenuhan container dan capek ngurusin tunnel manual satu-satu, DockFlare ini beneran ngebantu. Beban operasional harian jadi jauh lebih ringan. Kombinasiin sama Dockge buat kelola stack Docker Compose kamu. Alur dari deploy container sampai bisa diakses publik jadi makin ringkas, tanpa harus loncat-loncat antar dashboard.


























