Traefik vs Caddy vs Nginx Proxy Manager: Mana Cocok?
Bandingkan Traefik, Caddy, dan Nginx Proxy Manager untuk self-hosting: gaya konfigurasi, HTTPS otomatis, label Docker, GUI, dan kurva belajarnya.
Jawaban singkat
Nginx Proxy Manager paling mudah karena semuanya lewat GUI. Caddy paling ringkas ditulis dan HTTPS-nya otomatis tanpa pengaturan. Traefik paling cocok bila banyak container Docker datang dan pergi, karena rute dibaca langsung dari label container.
Daftar isi
Reverse proxy adalah satu titik masuk yang menerima semua trafik HTTP dan HTTPS ke server, lalu meneruskannya ke aplikasi yang tepat berdasarkan nama domain atau path. Di server self-hosting yang menjalankan beberapa aplikasi sekaligus, misalnya n8n, Nextcloud, dan WordPress, reverse proxy-lah yang membuat ketiganya bisa diakses lewat port 443 dengan sertifikat masing-masing.
Ketiga alat yang dibahas di sini sama-sama bisa melakukan itu. Yang berbeda adalah cara kamu memberi tahu mereka harus berbuat apa. Pilihan yang tidak cocok dengan cara kerjamu berujung pada konfigurasi yang sulit dirawat, sertifikat yang gagal diperbarui tanpa ketahuan, atau satu aplikasi baru yang butuh satu jam hanya untuk bisa diakses.
Tiga cara berbeda mengatur rute
Traefik: konfigurasi datang dari container
Traefik dirancang untuk lingkungan yang dinamis. Alih-alih menulis daftar domain di satu file, kamu menambahkan label pada container Docker, misalnya label traefik.http.routers.app.rule yang berisi aturan Host dengan nama domain aplikasinya. Traefik membaca label itu lewat socket Docker, lalu membuat rute secara otomatis saat container menyala dan menghapusnya saat container mati.
Sumber konfigurasi ini disebut provider. Selain Docker, Traefik bisa membaca dari file, Kubernetes, dan beberapa sistem lain. Sertifikat Let's Encrypt diatur lewat certificate resolver yang kamu definisikan sekali, lalu dipakai oleh setiap router. Ada dashboard bawaan untuk melihat rute, tetapi pengaturan tetap dilakukan lewat label atau file.
Kelebihannya terasa ketika kamu sering menambah atau mengganti aplikasi. Kekurangannya, istilah seperti router, service, middleware, dan entrypoint perlu dipahami dulu, dan label yang salah ketik bisa membuat rute diam-diam tidak muncul.
Caddy: file pendek, HTTPS bawaan
Caddy dikenal dengan Caddyfile yang ringkas. Untuk meneruskan satu domain ke aplikasi di port 3000, cukup dua baris: nama domain, lalu reverse_proxy localhost:3000. HTTPS aktif secara bawaan. Caddy mengurus permintaan dan perpanjangan sertifikat sendiri, serta mengalihkan HTTP ke HTTPS tanpa perlu diminta. Sertifikat yang diterbitkan otomatis seperti ini berjenis DV; bedanya dengan jenis lain ada di jenis sertifikat SSL.
Caddy juga punya API berbasis JSON untuk mengubah konfigurasi tanpa restart. Integrasi dengan label Docker tidak ada di Caddy inti, tetapi tersedia lewat plugin komunitas seperti caddy-docker-proxy. Bagi yang nyaman dengan file teks dan ingin hasil yang bisa dibaca sekilas, Caddy terasa paling sederhana.
Nginx Proxy Manager: Nginx dengan antarmuka web
Nginx Proxy Manager (NPM) adalah aplikasi web yang berjalan di atas Nginx. Kamu login ke dashboard, klik "Add Proxy Host", isi domain dan alamat tujuan, centang permintaan sertifikat SSL, lalu simpan. NPM yang menulis konfigurasi Nginx di belakang layar.
NPM juga menyediakan daftar akses (access list), pengalihan, dan host 404 lewat antarmuka yang sama. Untuk tim yang tidak ingin menyentuh file konfigurasi sama sekali, ini jalan tercepat. Batasnya, konfigurasi tersimpan di database NPM sehingga lebih sulit disimpan di Git atau ditinjau seperti kode. Untuk kebutuhan Nginx tingkat lanjut, kamu tetap harus menulis potongan konfigurasi manual di kolom "Advanced".
Perbandingan utama
| Aspek | Traefik | Caddy | Nginx Proxy Manager |
|---|---|---|---|
| Cara konfigurasi | Label Docker, file YAML/TOML, provider lain | Caddyfile atau JSON API | Antarmuka web |
| HTTPS otomatis | Ya, setelah certificate resolver diatur | Ya, aktif bawaan | Ya, dicentang per host |
| Baca label Docker | Bawaan | Lewat plugin komunitas | Tidak |
| GUI untuk mengatur | Tidak (dashboard hanya untuk melihat) | Tidak | Ya |
| Konfigurasi di Git | Mudah | Mudah | Sulit, tersimpan di database |
| Kurva belajar | Paling curam | Landai | Paling landai |
| Mesin di baliknya | Ditulis dengan Go | Ditulis dengan Go | Nginx |
Bagaimana soal performa?
Untuk kebanyakan server kecil dan menengah, ketiganya tidak akan menjadi hambatan. Aplikasi di belakang proxy, database, dan ukuran server hampir selalu lebih menentukan kecepatan daripada pilihan proxy. Hasil benchmark di internet bervariasi tergantung konfigurasi, jadi jangan memilih hanya dari angka orang lain.
Yang lebih layak diperhatikan adalah fitur yang kamu butuhkan: kompresi, cache, batas laju (rate limiting), header keamanan, dan autentikasi di depan aplikasi. Ketiganya mendukung hal-hal ini dengan cara berbeda. Traefik lewat middleware, Caddy lewat direktif dan modul, NPM lewat opsi GUI ditambah konfigurasi Nginx manual. Kalau kamu butuh perbandingan web server tradisional, bahasannya ada di Nginx vs Apache vs LiteSpeed.
Kapan memilih Traefik, Caddy, atau Nginx Proxy Manager?
Pilih Nginx Proxy Manager bila kamu baru memulai self-hosting, mengelola sedikit aplikasi yang jarang berubah, atau berbagi pengelolaan dengan orang yang tidak nyaman dengan terminal. Kamu bisa punya beberapa domain dengan HTTPS dalam hitungan menit, dan semua status terlihat di satu halaman.
Pilih Caddy bila kamu ingin konfigurasi yang pendek, bisa dibaca, dan disimpan di Git, tanpa repot mengurus sertifikat. Caddy juga cocok sebagai web server statis sekaligus proxy di satu server, dan sering menjadi pilihan di server yang tidak memakai Docker sama sekali.
Pilih Traefik bila servermu menjalankan banyak container yang sering ditambah, diganti, atau diskalakan, terutama dengan Docker Compose atau Swarm. Begitu pola labelnya dipahami, menambah aplikasi baru cukup dengan menambah beberapa baris di file Compose aplikasinya. Traefik juga menjadi proxy bawaan beberapa platform deploy self-hosted, seperti dibahas di Coolify vs Dokploy vs CapRover.
Satu catatan terakhir: reverse proxy mengurus routing dan HTTPS, bukan perlindungan aplikasi dari serangan. Untuk memfilter permintaan berbahaya, kamu butuh lapisan tambahan seperti yang dijelaskan di apa itu WAF.
Pertanyaan yang sering diajukan
Apakah Caddy bisa memakai sertifikat wildcard?
Bisa, tetapi sertifikat wildcard dari Let's Encrypt memerlukan validasi DNS. Di Caddy, itu berarti memakai build dengan modul penyedia DNS yang sesuai.
Bisakah Nginx Proxy Manager dipakai tanpa Docker?
NPM didistribusikan terutama sebagai image Docker, jadi cara paling umum memasangnya adalah lewat Docker atau Docker Compose.
Apakah Traefik bisa dipakai tanpa Docker?
Bisa. Traefik punya provider file yang membaca rute dari file YAML atau TOML, sehingga bisa meneruskan trafik ke aplikasi yang berjalan langsung di host atau di server lain.
Mana yang paling mudah dipindah ke server baru?
Caddy dan Traefik paling mudah karena konfigurasinya berupa file yang bisa disalin atau disimpan di Git. NPM perlu memindahkan database dan folder sertifikatnya juga.


