Caddy

Caddy is a web server with automatic HTTPS.

Installation

sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
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 -y

Configure Caddyfile

sudo tee /etc/caddy/Caddyfile << 'EOF'
{
    email your@email.com
}
 
yourdomain.com {
    respond "OK"
}
 
auth.yourdomain.com {
    reverse_proxy localhost:50000
}
 
auth-admin.yourdomain.com {
    reverse_proxy localhost:50001
}
 
flipt.yourdomain.com {
    reverse_proxy localhost:50005
}
 
secrets.yourdomain.com {
    reverse_proxy localhost:50007
}
EOF
 
sudo caddy fmt --overwrite /etc/caddy/Caddyfile
sudo caddy validate --config /etc/caddy/Caddyfile
sudo systemctl reload caddy

Firewall

sudo ufw allow 80
sudo ufw allow 443
sudo ufw allow 22
sudo ufw enable

Useful Commands

sudo caddy validate --config /etc/caddy/Caddyfile
sudo caddy fmt --overwrite /etc/caddy/Caddyfile
sudo systemctl reload caddy
sudo journalctl -u caddy -f