A
DevOps

Caddy Web Server

Server platform extensible dengan HTTPS default (CertMagic), Caddyfile sederhana, JSON API, cocok reverse proxy modern.

#DevOps#Linux#Security#Cloud

Apa itu Caddy?

Caddy adalah extensible server platform yang memakai TLS secara default. Fokus: setiap situs HTTPS dengan konfigurasi seminimal mungkin.

Fitur unggulan

  • Konfigurasi mudah lewat Caddyfile
  • Konfigurasi kuat lewat JSON native
  • JSON API untuk config dinamis
  • HTTPS otomatis (Let’s Encrypt / ZeroSSL, renew, stapling)
  • Reverse proxy, static files, compression, HTTP/2–3 (tergantung build)
  • Plugin/extensible architecture

Quick start — reverse proxy

Caddyfile:

app.example.com {
    reverse_proxy 127.0.0.1:3000
}

api.example.com {
    reverse_proxy 127.0.0.1:8080
}

# Static site
www.example.com {
    root * /var/www/site
    file_server
    encode gzip
}
# Install sesuai distro / binary dari releases
caddy run --config /etc/caddy/Caddyfile
# atau
caddy start

Caddy otomatis meminta & me-renew sertifikat jika DNS domain mengarah ke server dan port 80/443 terbuka (atau via DNS challenge).

Caddy vs Nginx Proxy Manager

Kebutuhan Pilih
UI klik-klik, banyak user non-ops Nginx Proxy Manager
Config as code, GitOps, HTTPS default Caddy
Kontrol Nginx klasik + ekosistem luas Nginx / OpenResty
Homelab cepat NPM atau Caddy — keduanya valid

Contoh Docker

services:
  caddy:
    image: caddy:2
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
      - "443:443/udp"   # HTTP/3 opsional
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile:ro
      - caddy_data:/data
      - caddy_config:/config

volumes:
  caddy_data:
  caddy_config:

Keamanan & praktik baik

  • Minimal expose service; Caddy sebagai satu-satunya edge HTTP
  • Header keamanan (header directive) untuk HSTS, nosniff, dll.
  • Kombinasikan dengan CrowdSec (bouncer/firewall) untuk ban IP
  • Backup volume /data (sertifikat & state)
  • Jangan commit private key; andalkan ACME

Kapan Caddy unggul

  • Developer yang ingin “HTTPS tanpa drama”
  • Reverse proxy untuk API/static dengan config di Git
  • Proyek yang butuh API reconfig tanpa restart penuh

Tautan