Nextcloud – CalDAV & CardDAV
Zurück zum Homeserver-Überblick. Teil von Digitale Souveränität.
Schlanke Nextcloud-Instanz, die ausschließlich als CalDAV/CardDAV-Server für Kontakte und Kalender dient. Kein File Sharing, kein Office, kein Talk. Hauptzweck: automatischer Geburtstagskalender, synchronisiert auf iOS und das Home Assistant iPad Dashboard.
Infrastruktur
- Hosting: Uberspace (Shared Hosting, kein eigener Server)
- Nextcloud-Version: 32.x
- PHP: 8.3
- Datenbank: MySQL
- Domain: Per Cloudflare-DNS (CNAME, Proxy-Modus)
- SSL: Cloudflare SSL-Modus Full (nicht Flexible, nicht Full Strict)
Warum Uberspace statt Pi?
Nextcloud braucht einen öffentlich erreichbaren Webserver für CalDAV-Sync auf iOS-Geräten (unterwegs, ohne VPN). Uberspace bietet das ohne eigene Infrastruktur. Der Pi ist für lokale Services besser geeignet.
Aktive Apps (nur das Nötigste)
- calendar – Kalender-UI und CalDAV-Backend
- contacts – Kontakte-UI und CardDAV-Backend
- dav – CalDAV/CardDAV Core
- bruteforcesettings – Login-Schutz
- password_policy – Passwort-Richtlinien
Alles andere (Dashboard, Files Sharing, Activity, Photos, Federation, etc.) ist bewusst deaktiviert.
Geburtstagskalender
Nextcloud generiert automatisch einen Kalender „Contact birthdays” aus allen Kontakten, die ein Geburtstagsdatum haben. Dieser Kalender wird per CalDAV synchronisiert auf:
- iOS-Geräte (iPhone, iPad) über die native CalDAV-Integration
- Home Assistant über die CalDAV-Integration in
configuration.yaml
Sync manuell anstoßen
cd /var/www/virtual/<user>/nextcloud
php occ dav:sync-birthday-calendariOS-Einrichtung
Auf dem iPhone/iPad:
- Einstellungen → Kalender → Accounts → Account hinzufügen → Andere
- CalDAV-Account hinzufügen – Server, Benutzername, Passwort eingeben
- Dasselbe für CardDAV-Account
- Standard-Account für neue Kontakte auf Nextcloud umstellen
Wartung
Update
cd /var/www/virtual/<user>/nextcloud
php updater/updater.phar -vv --no-backup --no-interaction
php occ upgrade
php occ app:update --allStatus prüfen
php occ status
php occ app:list --enabledCronjob
Alle 5 Minuten läuft cron.php für Hintergrundaufgaben. Modus: cron (nicht AJAX).
Troubleshooting
- Redirect-Loop nach Login: Cloudflare SSL-Modus auf „Full” prüfen
- „Access through untrusted domain”: Trusted Domains in der Nextcloud-Config prüfen
- Geburtstagskalender leer: Kontakte brauchen ein ausgefülltes Geburtstagsdatum,
dav:sync-birthday-calendarmanuell ausführen - Nextcloud langsam: APCu als Memcache konfiguriert? Cronjob aktiv?
- HA Calendar Entity fehlt: CalDAV-URL prüfen, HA nach Config-Änderung neu starten