Il pacchetto caddy presente nei repository Fedora non ha il plugin cloudflare compilato. Per poter usare l'integrazione con cloudflare e let's encrypt per il rinnovo automatico dei certificati SSL è necessario compilare caddy con il plugin. Per compilare caddy in modo semplice è possibile usare xcaddy
Installare i pacchetti necessari con i comandi
sudo dnf install golang go install github.com/caddyserver/xcaddy/cmd/xcaddy@latest
Per compilare ed installare caddy è possibile usare il seguente script.
Lo script installa l'eseguibile in /usr/local/bin/, il file di configurazione è /etc/caddy/Caddyfile
#!/bin/bash export PATH="$PATH:$(go env GOPATH)/bin" # Build caddy and copy the binary xcaddy build --with github.com/caddy-dns/cloudflare if [ $? -ne 0 ]; then echo "Failed to build caddy" exit 1 fi sudo cp caddy /usr/local/bin/caddy sudo chmod +x /usr/local/bin/caddy sudo useradd -r -d /var/lib/caddy -s /usr/sbin/nologin caddy sudo mkdir -p /etc/caddy sudo mkdir -p /var/lib/caddy sudo chown -R caddy:caddy /var/lib/caddy # Create the service definition sudo tee /etc/systemd/system/caddy.service > /dev/null <<EOF [Unit] Description=Caddy web server Documentation=https://caddyserver.com/docs/ After=network.target [Service] Type=notify User=caddy Group=caddy ExecStartPre=/usr/local/bin/caddy validate --config /etc/caddy/Caddyfile ExecStart=/usr/local/bin/caddy run --environ --config /etc/caddy/Caddyfile ExecReload=/usr/local/bin/caddy reload --config /etc/caddy/Caddyfile TimeoutStopSec=5s LimitNOFILE=1048576 PrivateTmp=true ProtectHome=true ProtectSystem=full AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE [Install] WantedBy=multi-user.target EOF if [ ! -e /etc/caddy/Caddyfile ]; then sudo touch /etc/caddy/Caddyfile sudo chown root:root /etc/caddy/Caddyfile sudo chmod 644 /etc/caddy/Caddyfile fi # Start the service sudo systemctl daemon-reload sudo systemctl enable --now caddy echo "The configuration file is /etc/caddy/Caddyfile"