Tutorial

Caddy Reverse Proxy dengan Auto-HTTPS: Setup Lengkap 2026

Caddy Reverse Proxy dengan Auto-HTTPS: Setup Lengkap 2026

Jika Anda menjalankan aplikasi di Docker containers, Anda butuh reverse proxy di depannya. Caddy adalah pilihan terbaik untuk self-hosting karena auto-HTTPS dan konfigurasi yang minimal.

Setup Caddy reverse proxy dengan auto-HTTPS untuk self-hosting

Kenapa Caddy?

Perbandingan Caddy vs Nginx untuk reverse proxy:

  • Caddy — 3 baris konfigurasi, auto-HTTPS, zero maintenance
  • Nginx — 15+ baris konfigurasi, manual SSL setup, perlu Certbot + cron

Install Caddy

# Ubuntu/Debian
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy

Konfigurasi Dasar

Buat file /etc/caddy/Caddyfile:

# Reverse proxy untuk aplikasi di port 3000
example.com {
    reverse_proxy localhost:3000
}

# Multi-service setup
api.example.com {
    reverse_proxy localhost:8080
}

dashboard.example.com {
    reverse_proxy localhost:3001
}

Docker Compose + Caddy

Kombinasi paling powerful untuk self-hosting:

version: '3.8'

services:
  caddy:
    image: caddy:alpine
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile
      - caddy_data:/data
      - caddy_config:/config
    restart: unless-stopped

  app:
    image: myapp:latest
    expose:
      - "3000"
    restart: unless-stopped

volumes:
  caddy_data:
  caddy_config:

Wild Card SSL

Caddy mendukung wildcard SSL dengan DNS challenge:

*.example.com {
    tls {
        dns cloudflare {env.CF_API_TOKEN}
    }
    reverse_proxy localhost:3000
}

Troubleshooting

  • Sertifikat tidak muncul? — Pastikan port 80 dan 443 terbuka di firewall
  • 502 Bad Gateway? — Cek apakah backend service berjalan di port yang benar
  • Caddy restart sendiri? — Cek logs: journalctl -u caddy -f

Untuk perbandingan lengkap Caddy vs Nginx, baca Caddy vs Nginx di 2026. Untuk setup server dari awal, lihat panduan self-hosting lengkap.