Traefik adalah reverse proxy yang paling bagus dan sederhana yang pernah saya gunakan, dibandingkan dengan Caddy, NGINX, dan lainnya. Selain itu Traefik sudah dilengkapi dengan otomatis SSL seperti Caddy namun lebih jauh lagi sudah terintegrasi dengan Docker dan Kubernetes.
Pertama, yang harus dilakukan adalah membuat network khusus, contoh nya saya membuat network sendiri dengan nama pratama-network
yang kalian bisa buat dengan perintah dibawah ini.
docker network create pratama-network
Setelah itu kalian bisa membuat directory dengan nama traefik
di server kalian, lalu buat file compose.yaml
dengan content code dibawah ini.
Setelah ini, kalian masih harus membuat beberapa file yaitu
- traefik.toml -> Konfigurasi utama Traefik
- dynamic-conf.toml -> Konfigurasi routing HTTP, TCP dan UDP
- acme.json -> Konten SSL yang digenerate oleh Traefik
Disini saya menggunakan format TOML untuk konfigurasi Traefik, umum nya orang-orang menggunakan format YAML namun saya sendiri lebih suka format TOML. Kalian bisa menggunakan format YAML secara langsung jika lebih suka format tersebut, namun pada tutorial ini kita akan menggunakan format TOML saja.
Mari kita buat file nya terlebih dahulu, dimana traefik.toml dan dynamic-conf.toml akan di simpan pada directory conf sedangkan acme.json akan di simpan pada level yang sama dengan compose.yml
Berikut adalah perintah secara ringkas:
mkdir conf
touch conf/traefik.toml
touch conf/dynamic-conf.toml
touch acme.json
chmod 600 acme.json
Secara urutan, akan saya beri gambaran sebagai berikut.
-- | /home/<user>/docker/traefik
| -- compose.yml
| -- acme.json
| -- conf
| -- traefik.toml
| -- dynamic-conf.toml
Berdasarkan struktur diatas, saya menambahkan directory docker agar terlihat lebih rapih, namun kalian bebas menentukan dimana letak directory traefik dan sebenarnya tidak harus traefik, ini hanya untuk keperluan tutorial, sekarang lanjut mengisi konten traefik.toml, yang kurang lebih seperti dibawah ini
Lalu kita isi konten file dynamic-conf.toml seperti dibawah ini, yang nantinya kedua file diatas akan di jelaskan secara rinci
Sudah selesai proses code nya, dan kalian perlu mengganti bagian traefik.supanadit.com menjadi domain kalian, lalu setelah itu langsung menjalankan nya dengan perintah dibawah ini.
docker compose up -d
Secara singkat Traefik yang di deploy di server kalian sudah bisa diakses, contoh nya dengan konfigurasi diatas, adalah potongan kecil dari bagian server saya ini, dan pada kasus ini ada pada link berikut.
Eits…. namun, kalian tidak akan bisa mengakses nya, karena saya tutup menggunakan Authelia sebagai Middleware, agar tidak semua orang tahu daftar aplikasi pada dashboard.
😁Penasaran kan bagaimana saya bisa menggunakan Authelia dan di integrasikan dengan Traefik ? Saya akan menulis lebih banyak artikel tentang Traefik di lain waktu, dan akan saya buat halaman khusus tentang Traefik.
FAQ
Bagaimana aplikasi docker lainnya bisa di akses ?
Untuk ini ada dua cara, yaitu:
- Menggunakan label
- Menulis konfigurasi routing pada dynamic-conf.toml
Namun secara rinci nya akan dijelaskan pada artikel yang berbeda. Dan akan saya bagikan link nya di sini.
Bagaimana dengan acme.json ?
Ini bisa dibiarkan saja, karena Traefik akan secara otomatis mengisi file tersebut, dengan syarat berikut:
- Website kalian di konfigurasi dengan lets encrypt yang di ada pada bagian traefik.toml
- Lalu di bagian dynamic-conf.toml kalian aktifkan property yang saya beri informasi Uncomment this for production use. Lalu comment bagian yang saya tandai dengan kata Comment this for production use. Kecuali service, bagian itu jangan di comment entah production atau bukan.
Bagaimana dengan testing di local menggunakan Docker Engine / Desktop seperti pada Windows / Mac / Linux
Kalian bisa lakukan step by step diatas tanpa mengubah apapun, artinya websecure tidak di aktifkan, dan bagian traefik.toml comment saja baris dibawah ini.
[certificatesResolvers.lets-encrypt.acme]
email = "xxx@xxx.com"
storage = "acme.json"
[certificatesResolvers.lets-encrypt.acme.tlsChallenge]
Setelah itu kalian bisa konfigurasi /etc/host pada linux / mac dan C:\Windows\System32\drivers\etc\hosts pada windows dengan konfigurasi dibawah ini.
127.0.0.1 traefik.supanadit.com
Domain nya bebas, asalkan sama dengan yang ada di traefik.toml
Jika ada pertanyaan atau penjelasan yang membingungkan bisa tulis di kolom komentar dibawah ini dan akan saya update pada artikel ini.