Cara Install DockFlare di VPS: Otomatis Kelola Cloudflare Tunnel Lewat Label Docker

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.

Diagram arsitektur setelah install DockFlare: label Docker diproses lewat docker-socket-proxy, lalu disinkronkan ke Cloudflare Tunnel, DNS, dan Zero Trust Access
Alur kerja DockFlare dari label container sampai konfigurasi Cloudflare Tunnel jadi otomatis

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.sock di 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 dockflare buat 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.

Jundi Husni Mubaraq

Jundi Husni Mubaraq

Saya seorang software engineer yang sejak awal 2026 megang penuh (sendirian) tanggung jawab infrastruktur server di tempat saya kerja: deploy dan maintain server Linux Ubuntu on-premises, bangun keamanan berlapis pakai CrowdSec dan Cloudflare, kelola job scheduling dan monitoring pakai Cronicle, deploy aplikasi containerized pakai Docker, sampai ngurusin mail server korporat dari nol. Sebelumnya saya 3+ tahun jadi Software Engineer/Fullstack Developer di beberapa perusahaan, termasuk proyek skala internasional (EUDR compliance system buat Lindt & Sprungli) dan sistem rumah sakit (SIMRS, rekam medis elektronik, integrasi BPJS Kesehatan) di RS PKU Muhammadiyah Surakarta. jundi.hm ini tempat saya dokumentasiin apa yang beneran saya kerjain dan pelajarin di lapangan, bukan sekadar riset teori, S.Kom dari Universitas Duta Bangsa Surakarta jadi bekal awal, tapi yang nulis di sini adalah pengalaman langsung ngelola server production sehari-hari. Selengkapnya: https://iam.jundi.hm

Lihat Juga Nih

Selanjutnya Nih

Kasih Komentar

Email kamu gak bakal ditampilin ke publik. Kalau ada tanda ini artinya wajib diisi ya *

Rekomendasi.

Lagi Viral.