Zum Inhalt

Caddy Webserver – Setup & Support 2026

Stand: 10.09.2026 (verifiziert)

Diese Seite dokumentiert den aktuell produktiven Webserver-Aufbau für epping-haus.de.

Überblick

Der Caddy-LXC dient als zentraler HTTPS-Endpunkt für Website, DokuWiki und Mailzugriffe. Diese Seite bündelt die wichtigsten Architektur- und Betriebsinformationen für Wartung, Validation und Fehleranalyse.

Verwandte Seiten

1. Architektur

Der öffentliche Webserver läuft als separater, unprivilegierter Debian-LXC auf Proxmox.

Internet
   |
   | HTTPS TCP/443
   v
OpenWrt / ImmortalWrt
192.168.178.10
   |
   | DNAT TCP/443
   v
Caddy LXC
192.168.178.150
CT 150
   |
   +-- Caddy
   +-- PHP 8.4-FPM
   +-- statische Website
   +-- DokuWiki

Die vorhandene Mailcow-Konfiguration bleibt getrennt:

WAN-Port Ziel Verwendung
TCP/25 192.168.178.146:25 Mailcow SMTP
TCP/80 192.168.178.146:80 bestehender Mailcow HTTP-Zugriff
TCP/443 192.168.178.150:443 Caddy HTTPS

2. LXC System

Parameter Wert
Proxmox CTID 150
Hostname caddy
Betriebssystem Debian GNU/Linux 13.6 amd64
LXC unprivileged
CPU 2 Cores
RAM 2048 MB
Swap 1024 MB
RootFS local-zfs, 8 GB
LAN-IP 192.168.178.150/24
Gateway 192.168.178.10
DNS 192.168.178.10
Bridge vmbr0

3. Benutzerverwaltung

Administrativer Standardnutzer:

berthold

Der Benutzer ist Mitglied der Gruppe:

sudo

Der direkte Root-Login wird vermieden.

4. Fernwartung

OpenSSH ist installiert und aktiviert:

systemctl enable --now ssh

SSH verwendet standardmäßig Port 22.

5. Caddy

Parameter Wert
Caddy-Version v2.11.4
Dienst caddy.service
Autostart aktiviert
Konfigurationsdatei /etc/caddy/Caddyfile

Caddy läuft als systemd-Service.

Status:

systemctl status caddy --no-pager
systemctl is-active caddy

6. Website

Die statische Website liegt unter:

/var/www/html/

Aktive Startseite:

/var/www/html/index.html

Rechte:

berthold:berthold
644

7. DNS

Die öffentliche Domain verwendet:

Hostname Typ Ziel
epping-haus.de A aktuelle öffentliche IPv4
www.epping-haus.de CNAME epping-haus.de.

Aktuell verifiziert:

epping-haus.de      -> 149.224.183.96
www.epping-haus.de  -> CNAME -> epping-haus.de

Die DynDNS-Aktualisierung erfolgt weiterhin über das vorhandene Netcup-DynDNS-Skript.

8. HTTPS / Let's Encrypt

Caddy verwaltet die TLS-Zertifikate automatisch.

Webzugriff:

https://epping-haus.de
https://www.epping-haus.de

Let's Encrypt wurde erfolgreich validiert.

9. Caddyfile in Verwendung

epping-haus.de, www.epping-haus.de {
    root * /var/www/html
    file_server
}

wiki.epping-haus.de {
    root * /var/www/dokuwiki
    php_fastcgi unix//run/php/php8.4-fpm.sock
    file_server

    # Interne DokuWiki-Verzeichnisse und Installer schützen
    @blocked {
        path /data/* /conf/* /bin/* /inc/* /vendor/* /install.php
    }
    error @blocked 403
}

mail.epping-haus.de, autoconfig.epping-haus.de, autodiscover.epping-haus.de {
    reverse_proxy 192.168.178.146:443 {
        header_up Host {host}

        transport http {
            tls
            tls_server_name mail.epping-haus.de
        }
    }
}

10. DokuWiki

DokuWiki läuft im selben LXC als PHP-Anwendung.

Parameter Wert
URL https://wiki.epping-haus.de
Installationspfad /var/www/dokuwiki
PHP 8.4
PHP-FPM /run/php/php8.4-fpm.sock

Die DokuWiki-Startseite antwortet intern mit:

HTTP/2 302
Location: /doku.php?id=start

Dies ist der normale DokuWiki-Startredirect.

Die Installationsdatei ist geschützt:

/install.php -> HTTP 403

11. Wartung

caddy validate --config /etc/caddy/Caddyfile
systemctl reload caddy
systemctl status caddy --no-pager
ss -lntp | grep ':443'
journalctl -u caddy -n 100 --no-pager
journalctl -u caddy -f

12. Proxmox-Host – Diagnose

pct status 150
pct exec 150 -- systemctl status caddy --no-pager
pct exec 150 -- caddy version
pct exec 150 -- caddy validate --config /etc/caddy/Caddyfile
pct exec 150 -- ss -lntp | grep ':443'

13. Sicherheitsregeln

  • Vor Änderungen Caddy-Konfiguration sichern.
  • Vor OpenWrt-Firewalländerungen immer Backup erstellen.
  • Das SMGW und die smgw_zone nicht verändern.
  • Mailcow TCP/25 und TCP/80 nicht ohne vorherige Prüfung verändern.
  • /data, /conf, /bin, /inc, /vendor und /install.php dürfen nicht öffentlich zugänglich sein.

14. Rollback

Backup vor der HTTPS-Aktivierung:

cp /etc/caddy/Caddyfile.before-https-20260904-123628 /etc/caddy/Caddyfile
caddy validate --config /etc/caddy/Caddyfile
systemctl reload caddy

Stand der Dokumentation: September 2026