I D H A M .
Diterbitkan

Setup Traefik di VPS sebagai Reverse Proxy + SSL

Authors

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

a. traefik.yml

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.


b. docker-compose.yml

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! ๐Ÿš€