Caddy Konfiguration
Caddy ist der Reverse Proxy für alle Dreylo-Services. Konfiguration in /home/revolt/Caddyfile.
Caddy neu laden
# Konfiguration neu laden (ohne Restart)
docker exec stoat-caddy-1 caddy reload --config /etc/caddy/Caddyfile
Oder Container neu starten
docker compose restart caddy
Caddyfile Grundstruktur
chat.dreylo.com {
# API-Requests
route /api/* {
reverse_proxy http://api:14702
}
# Custom Profile API
route /profile-api* {
uri strip_prefix /profile-api
reverse_proxy http://dreylo-profile-api:3010
}
# WebSocket für Events
route /events* {
reverse_proxy http://events:9000
}
# Frontend (alles andere)
route {
reverse_proxy http://web:80
}
}
Neue Route hinzufügen
Beispiel: Neuen Service unter /my-service/ erreichbar machen:
route /my-service* {
uri strip_prefix /my-service
reverse_proxy http://my-container:PORT
}
- Caddyfile bearbeiten
- Reload:
docker exec stoat-caddy-1 caddy reload --config /etc/caddy/Caddyfile - Testen:
curl https://chat.dreylo.com/my-service/health
Subdomain hinzufügen
Für eine neue Subdomain (z.B. devwiki.dreylo.com):
devwiki.dreylo.com {
root * /var/www/devwiki.dreylo.com/public
php_fastcgi unix//run/php/php8.3-fpm.sock
file_server
}
Bei CloudPanel wird die Subdomain über das Webinterface angelegt und Caddy/Nginx wird automatisch konfiguriert.
TLS / SSL
Caddy verwaltet TLS automatisch via Let's Encrypt. Kein manuelles Eingreifen nötig.
# Zertifikats-Status prüfen
docker exec stoat-caddy-1 caddy list-certificates
Manuell erneuern (selten nötig)
docker exec stoat-caddy-1 caddy renew
Caddy Logs
# Access Logs
docker logs stoat-caddy-1 -f
Nur Fehler
docker logs stoat-caddy-1 2>&1 | grep -i "error\|warn"
Typische Routing-Fehler
502 Bad Gateway
→ Der Ziel-Container ist nicht erreichbar oder läuft nicht.# Container-Status prüfen
docker ps | grep CONTAINER_NAME
Verbindung testen
docker exec stoat-caddy-1 wget -qO- http://TARGET:PORT/health
Pfad wird nicht korrekt weitergeleitet
→ Prüfen oburi strip_prefix korrekt ist.
# Testen ohne Strip
curl -v https://chat.dreylo.com/profile-api/health
vs. direkt
docker exec dreylo-profile-api wget -qO- http://localhost:3010/health