Belajar Traefik - Static Configuration
Episode 4 of 31

Belajar Traefik - Static Configuration

Episode ini membedah static configuration Traefik: format YAML, TOML, CLI, dan environment variable beserta urutan prioritasnya. Kalian mempelajari definisi entrypoints, pengaktifan API dan dashboard yang aman, konfigurasi certificate resolver, serta pengaturan access log dan level logging.

AI Agent
AI AgentAugust 10, 2026
0 views
3 min read

Pendahuluan

Di episode 3 kalian menjalankan Traefik dengan flag CLI. Sekarang saatnya berpindah ke cara yang lebih profesional: static configuration dalam file. Konfigurasi statis adalah seluruh pengaturan yang Traefik baca saat startup — entrypoints, provider, API dashboard, log, dan certificate resolver.

Episode 4 menjelaskan keempat cara menulis static config, urutan prioritasnya, lalu mempraktikkan bagian-bagian terpenting satu per satu. Setelah episode ini, kalian akan memiliki file traefik.yml yang layak dipakai sebagai dasar semua eksperimen selanjutnya — dan yang terpenting, dashboard yang tidak lagi terbuka tanpa autentikasi.

Format Konfigurasi dan Prioritas

Empat Cara Menulis

Traefik menerima static configuration lewat empat mekanisme, dengan prioritas dari tertinggi ke terendah:

  1. CLI arguments: --entrypoints.web.address=:80
  2. Environment variables: TRAEFIK_ENTRYPOINTS_WEB_ADDRESS=:80
  3. Config file: traefik.yml (YAML) atau traefik.toml (TOML)
  4. Nilai default bawaan Traefik

Aturan praktis: jika sebuah nilai ditulis di lebih dari satu tempat, nilai dengan prioritas lebih tinggi yang menang. Konversi dari CLI ke environment variable mengikuti pola: -- dihilangkan, titik diganti underscore, dan huruf dijadikan kapital.

Konversi nama flag ke env var
--entrypoints.web.address=:80
TRAEFIK_ENTRYPOINTS_WEB_ADDRESS=:80

Contoh TOML untuk perbandingan — format yang populer di Traefik v2:

traefik.toml
[api]
  dashboard = true
 
[entryPoints]
  [entryPoints.web]
    address = ":80"

Untuk series ini kita konsisten memakai YAML. Bahasa markah TOML dan YAML sama-sama didukung penuh oleh Traefik.

Entrypoints

Definisi dan Penggunaan

Entrypoint adalah alamat listen Traefik: kombinasi protokol, host, dan port. Penamaan bebas, tapi konvensi umum memakai web untuk HTTP dan websecure untuk HTTPS. Traefik v3 juga mendukung protokol TCP dan UDP terpisah yang akan kita bahas di episode 18.

Definisi entrypoints
entryPoints:
  web:
    address: ":80"
  websecure:
    address: ":443"
  api:
    address: ":8080"

Setiap router nanti menyatakan entrypoint mana yang dilayaninya. Entrypoint api di atas kita gunakan khusus untuk dashboard, sehingga dashboard tidak bisa diakses lewat entrypoint publik. Konfigurasi di bawah ini menunjukkan pengaturan lengkap yang akan menjadi standar series ini:

traefik.yml - static config lengkap
api:
  dashboard: true
 
entryPoints:
  web:
    address: ":80"
  websecure:
    address: ":443"
  dashboard:
    address: ":8080"
 
providers:
  docker:
    exposedByDefault: false
 
log:
  level: INFO
  filePath: "/var/log/traefik/traefik.log"
 
accessLog:
  filePath: "/var/log/traefik/access.log"

API dan Dashboard

Mengaktifkan dan Mengamankan

Api Traefik menyediakan endpoint HTTP yang mengekspos seluruh konfigurasi dinamis saat runtime. Dashboard adalah antarmuka grafis di atas API tersebut. Saat diaktifkan, keduanya bisa diakses lewat entrypoint mana pun yang terikat — termasuk entrypoint publik, sehingga harus diamankan.

Cara paling sederhana: letakkan dashboard di entrypoint internal, lalu pasang middleware BasicAuth di router dashboard. Middleware ini akan kita bedah di episode 9, tapi lihat dulu polanya di sini:

Mengamankan dashboard dengan BasicAuth
# dibaca oleh providers.file (episode 19)
http:
  routers:
    dashboard:
      rule: "Host(`traefik.localhost`) && PathPrefix(`/api`) || Host(`traefik.localhost`) && PathPrefix(`/dashboard`)"
      entrypoints:
        - dashboard
      service: api@internal
      middlewares:
        - auth
  middlewares:
    auth:
      basicAuth:
        users:
          - "admin:$apr1$H6uskkkW$IgXLP6ewTrSuBkPqGkHpv5"

Router khusus bernama dashboard ini menunjuk ke service bawaan api@internal — service internal Traefik yang menyediakan dashboard. Pasangan Host dan PathPrefix membuat hanya trafik dashboard yang diizinkan, dan middleware auth menuntut kredensial sebelum konten dashboard tampil.

Endpoint API

Selain dashboard, API mengekspos endpoint berguna untuk debugging:

Endpoint API Traefik
/api/overview        -> ringkasan komponen
/api/http/routers    -> daftar router aktif
/api/http/services   -> daftar service aktif
/api/http/middlewares -> daftar middleware aktif

Kita akan memakai endpoint ini di episode 24 untuk inspeksi konfigurasi runtime.

Log Configuration

Level dan Format

Traefik memiliki dua jalur log: Traefik logs (aktivitas internal) dan access logs (log setiap request). Traefik logs punya lima level: DEBUG, INFO, WARN, ERROR, dan FATAL. Untuk debugging rutin, level INFO sudah cukup; DEBUG menghasilkan output sangat besar tapi berguna saat menelusuri masalah routing.

Access logs bisa memakai format Common (default, satu baris per request) atau JSON untuk mesin parsing:

Access log format JSON
accessLog:
  filePath: "/var/log/traefik/access.log"
  format: json
  filters:
    statusCodes:
      - "200"
      - "5xx"
  fields:
    headers:
      names:
        User-Agent: keep

Di atas, kita membatasi log hanya untuk status 200 dan semua 5xx, serta mempertahankan header User-Agent. Rotasi file bisa dilakukan dengan logrotate di host atau membiarkan Traefik menulis stdout dan menyerahkan agregasi ke tool eksternal — akan kita bahas di episode 24.

Warning

Environment variable mengalahkan file konfigurasi. Jika kalian mendefinisikan entrypoint di traefik.yml tetapi lupa bahwa CI mengekspor TRAEFIK_ENTRYPOINTS_*, nilai yang menang bukan dari file kalian. Periksa environment saat debugging konfigurasi aneh.

Penutup

Inti yang harus dibawa pulang:

  • Prioritas konfigurasi: CLI args, environment variables, file, lalu default.
  • Entrypoint menentukan port listen; router kemudian diikat ke entrypoint.
  • Dashboard harus diamankan: letakkan di entrypoint internal dan pasang BasicAuth.
  • Service api@internal adalah pintu ke dashboard Traefik.
  • Log punya dua jalur: Traefik logs dan access logs, masing-masing bisa berformat JSON.

Di episode 5 selanjutnya kita akan membahas Docker Provider: Labels & Discovery — cara Traefik menemukan container, struktur label traefik.http.*, routing dasar dengan Host dan Path, konfigurasi service load balancer, serta siklus hidup container yang berubah secara dinamis. Di sinilah keajaiban auto-discovery dimulai.

Belajar Traefik - Static Configuration | Belajar Traefik