- Diterbitkan
Setup Traefik di VPS sebagai Reverse Proxy + SSL
- Authors
- Nama
- Idhamsyah
- @Syahdham
3 min read
Traefik adalah reverse proxy modern dan load balancer yang sangat cocok digunakan bersama Docker. Dalam panduan ini, kamu akan belajar cara mengatur Traefik di VPS agar dapat berfungsi sebagai reverse proxy dan secara otomatis menyediakan SSL menggunakan Let's Encrypt.
๐ 1. Struktur Direktori
Langkah pertama adalah menyiapkan struktur direktori yang rapi untuk konfigurasi Traefik di dalam VPS. Buat folder dengan struktur sebagai berikut:
/var/www/traefik/โโโ traefik.ymlโโโ docker-compose.ymlโโโ acme.json
Folder ini akan menyimpan file konfigurasi utama (traefik.yml
), file Docker Compose, dan file penyimpanan sertifikat SSL (acme.json
).
๐ 2. Konfigurasi File
traefik.yml
a. File ini berisi konfigurasi inti Traefik, termasuk entry point, pengaturan dashboard, provider Docker, dan konfigurasi Let's Encrypt.
entryPoints:
web:
address: ':80'
websecure:
address: ':443'
api:
dashboard: true
providers:
docker:
exposedByDefault: false
certificatesResolvers:
myresolver:
acme:
email: your@email.com
storage: /acme.json
httpChallenge:
entryPoint: web
Pastikan kamu mengganti your@email.com
dengan alamat email yang valid agar dapat menerima notifikasi dari Let's Encrypt.
docker-compose.yml
b. Docker Compose akan digunakan untuk menjalankan Traefik sebagai container dan membuka port 80 serta 443 di VPS.
version: '3.8'
services:
traefik:
image: traefik:v2.10
container_name: traefik
restart: always
ports:
- '80:80'
- '443:443'
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./traefik.yml:/etc/traefik/traefik.yml
- ./acme.json:/acme.json
networks:
- proxy
labels:
- 'traefik.enable=true'
- 'traefik.http.routers.traefik.rule=Host(`traefik.yourdomain.com`)'
- 'traefik.http.routers.traefik.service=api@internal'
- 'traefik.http.routers.traefik.entrypoints=websecure'
- 'traefik.http.routers.traefik.tls.certresolver=myresolver'
networks:
proxy:
external: true
Gantilah traefik.yourdomain.com
dengan subdomain milikmu yang telah diarahkan ke IP VPS.
c. Atur File Sertifikat
Jalankan perintah berikut untuk membuat dan mengamankan file acme.json
yang digunakan untuk menyimpan sertifikat SSL:
touch /var/www/traefik/acme.json
chmod 600 /var/www/traefik/acme.json
๐ 3. Jalankan Traefik
Setelah semua file disiapkan, jalankan Traefik dengan perintah:
cd /var/www/traefik
docker network create proxy
docker compose up -d
Perintah ini akan menjalankan container Traefik dan membuat jaringan Docker bernama proxy
untuk digunakan bersama aplikasi lain.
๐ 4. Akses Dashboard Traefik
Buka browser dan kunjungi:
https://traefik.yourdomain.com
Jika halaman tidak langsung menampilkan dashboard Traefik, tunggu beberapa saat hingga SSL berhasil di-generate oleh Let's Encrypt. Kamu juga bisa mengecek prosesnya dengan:
docker logs traefik
๐งช 5. Menggunakan Traefik dengan Aplikasi Lain
Untuk menggunakan Traefik sebagai reverse proxy bagi aplikasi lain (misalnya aplikasi Next.js atau Laravel), pastikan aplikasi tersebut berada dalam network proxy
dan diberi label seperti ini:
labels:
- 'traefik.enable=true'
- 'traefik.http.routers.myapp.rule=Host(`app.yourdomain.com`)'
- 'traefik.http.routers.myapp.entrypoints=websecure'
- 'traefik.http.routers.myapp.tls.certresolver=myresolver'
Pastikan juga kamu menggunakan proxy
network yang sama seperti Traefik.
โ Penutup
Dengan setup ini, kamu sudah memiliki reverse proxy yang powerful dan otomatis menangani sertifikat SSL. Traefik sangat cocok untuk mengelola banyak aplikasi di satu VPS, apalagi jika semuanya berbasis Docker. Selanjutnya kamu bisa menambahkan lebih banyak layanan hanya dengan menambahkan file docker-compose.yml
baru dan label yang sesuai.
Selamat mencoba! ๐