DAV-Server (CalDAV/CardDAV/WebDAV)¶
Übersicht¶
Der xynap DAV-Server implementiert die Standards CalDAV (RFC 4791), CardDAV (RFC 6352) und WebDAV (RFC 4918) für die Synchronisation von Kalendern, Kontakten und Dateien mit externen Clients.
Service Discovery¶
Clients finden den Server automatisch über:
| Methode | URL/Record | Ziel |
|---|---|---|
| DNS SRV | _caldavs._tcp.xynap.tech |
platform.xynap.tech:443 |
| DNS SRV | _carddavs._tcp.xynap.tech |
platform.xynap.tech:443 |
| DNS SRV | _imaps._tcp.xynap.tech |
mail.xynap.tech:993 |
| DNS SRV | _submission._tcp.xynap.tech |
mail.xynap.tech:587 |
| Well-Known | /.well-known/caldav |
→ /dav/calendars/ |
| Well-Known | /.well-known/carddav |
→ /dav/addressbooks/ |
| Autoconfig | autoconfig.xynap.tech |
Thunderbird Mail-Config |
URL-Schema¶
Principals:
/dav/principals/{user_slug}/ → PROPFIND: calendar-home-set, addressbook-home-set, files-home-set
CalDAV:
/dav/calendars/{user_slug}/ → Kalender-Liste
/dav/calendars/{user_slug}/{slug}/ → Kalender-Collection (PROPFIND, PROPPATCH, REPORT)
/dav/calendars/{user_slug}/{slug}/{uuid}.ics → Einzelnes Event (GET, PUT, DELETE)
CardDAV:
/dav/addressbooks/{user_slug}/ → Adressbuch-Liste
/dav/addressbooks/{user_slug}/{slug}/ → Adressbuch-Collection (PROPFIND, PROPPATCH, REPORT)
/dav/addressbooks/{user_slug}/{slug}/{uuid}.vcf → Einzelner Kontakt (GET, PUT, DELETE)
WebDAV:
/dav/files/{user_slug}/ → Datei-Home
/dav/files/{user_slug}/{pfad} → Dateien (GET, PUT, DELETE, MKCOL, MOVE, COPY)
User-Slug-Format: admin@xynap.tech → admin_at_xynap.tech
Authentifizierung¶
| Methode | Format | Hinweis |
|---|---|---|
| Bearer JWT | Authorization: Bearer <token> |
Standard-Login |
| App-Passwort | Authorization: Basic <base64> |
Format: xynap-xxxxx-xxxxx-xxxxx-xxxxx, umgeht 2FA |
| Basic Auth | Authorization: Basic <base64> |
Nur wenn kein 2FA aktiv |
PROPPATCH — Properties ändern¶
Kalender (CalDAV)¶
curl -X PROPPATCH https://platform.xynap.tech/dav/calendars/{user}/{slug}/ \
-H "Authorization: Basic <base64>" \
-H "Content-Type: application/xml" \
-d '<d:propertyupdate xmlns:d="DAV:" xmlns:ic="http://apple.com/ns/ical/" xmlns:cal="urn:ietf:params:xml:ns:caldav">
<d:set><d:prop>
<d:displayname>Neuer Name</d:displayname>
<ic:calendar-color>#ff0000</ic:calendar-color>
<cal:calendar-description>Beschreibung</cal:calendar-description>
</d:prop></d:set>
</d:propertyupdate>'
Unterstützte Properties:
| Property | Namespace | DB-Feld |
|---|---|---|
displayname |
DAV: |
Calendar.name |
calendar-color |
http://apple.com/ns/ical/ |
Calendar.color |
calendar-description |
urn:ietf:params:xml:ns:caldav |
Calendar.description |
Adressbuch (CardDAV)¶
curl -X PROPPATCH https://platform.xynap.tech/dav/addressbooks/{user}/{slug}/ \
-H "Authorization: Basic <base64>" \
-H "Content-Type: application/xml" \
-d '<d:propertyupdate xmlns:d="DAV:">
<d:set><d:prop>
<d:displayname>Neuer Name</d:displayname>
</d:prop></d:set>
</d:propertyupdate>'
Unterstützte Properties:
| Property | Namespace | DB-Feld |
|---|---|---|
displayname |
DAV: |
AddressBook.name |
addressbook-description |
urn:ietf:params:xml:ns:carddav |
AddressBook.description |
WebDAV Quota (RFC 4331)¶
PROPFIND auf das User-Root-Verzeichnis mit Depth: 0 liefert Quota-Informationen:
curl -X PROPFIND https://platform.xynap.tech/dav/files/{user}/ \
-H "Authorization: Basic <base64>" -H "Depth: 0" \
-d '<d:propfind xmlns:d="DAV:"><d:prop>
<d:quota-available-bytes/><d:quota-used-bytes/>
</d:prop></d:propfind>'
| Property | Beschreibung |
|---|---|
quota-available-bytes |
Freier Speicher in Bytes |
quota-used-bytes |
Belegter Speicher in Bytes |
Clients wie CyberDuck, Windows Explorer und Nautilus zeigen den Speicherplatz automatisch an.
Client-Einrichtung¶
Thunderbird¶
- Neues Konto → E-Mail-Adresse eingeben (
user@xynap.tech) - Alles wird automatisch gefunden (CalDAV, CardDAV, IMAP/SMTP)
- Bei 2FA: App-Passwort erstellen und als Passwort verwenden
DAVx5 (Android)¶
- Login mit URL →
https://platform.xynap.tech - E-Mail + App-Passwort eingeben
- Kalender und Kontakte werden automatisch erkannt
Apple iOS/macOS¶
- Einstellungen → Accounts → CalDAV/CardDAV hinzufügen
- Server:
platform.xynap.tech - Benutzername: E-Mail-Adresse
- Passwort: App-Passwort
Web File Manager¶
Der integrierte File Manager ist unter /app/files erreichbar und bietet:
| Feature | Beschreibung |
|---|---|
| Dateiliste | Sortierbar nach Name, Groesse, Datum — Ordner immer zuerst, Checkbox-Auswahl |
| Navigation | Breadcrumb-Pfadnavigation, Doppelklick zum Oeffnen |
| Upload | Drag & Drop oder Dateiauswahl, Fortschrittsanzeige |
| Vorschau | Bilder, PDF, Video, Audio, Text direkt im Browser |
| Row-Actions | Sichtbare Buttons pro Zeile: Vorschau, Download, Umbenennen, Verschieben, Freigeben, Loeschen |
| Kontextmenue | Rechtsklick: alle Actions + Kopieren |
| Verschieben/Kopieren | Ordner-Browser-Dialog zum Ziel auswaehlen |
| Freigeben | Freigabe-Link erstellen mit optionalem Passwort und Ablaufdatum |
| Umbenennen | Modal-Dialog (nicht mehr prompt) |
| Loeschen | Bestaetigung bei Einzel- und Mehrfach-Loeschen |
| Neuer Ordner | Dialog zum Erstellen neuer Verzeichnisse |
| Speicherplatz | Quota-Balken zeigt belegten/freien Speicher |
Zugriff¶
- Einloggen auf
https://platform.xynap.tech - Sidebar: Dateien klicken
- Oder direkt:
https://platform.xynap.tech/app/files
Web Kalender¶
Der integrierte Kalender ist unter /app/calendar erreichbar:
| Feature | Beschreibung |
|---|---|
| Ansichten | Monat, Woche, Tag — umschaltbar ueber Toolbar |
| Navigation | Heute-Button, Vor/Zurueck, Mini-Kalender in Sidebar |
| Termine | Klick auf Zeitslot → Neuer Termin, Event anklicken → bearbeiten/loeschen |
| Kalender | Mehrere Kalender mit Farben, Sichtbarkeits-Toggle, neuen Kalender erstellen |
| Einstellungen | Kalender umbenennen + Farbe aendern (PROPPATCH) |
| Sync | Bidirektional mit Thunderbird, DAVx5, Apple — Polling alle 60s |
| Protokoll | CalDAV (RFC 4791), iCalendar (RFC 5545) |
Zugriff¶
- Einloggen auf
https://platform.xynap.tech - Sidebar: Kalender klicken
- Oder direkt:
https://platform.xynap.tech/app/calendar
Kontakte (CardDAV-Sync)¶
Die Kontakte-Verwaltung unter /app/contacts ist um CardDAV-Sync erweitert:
| Feature | Beschreibung |
|---|---|
| Sync-Leiste | Zeigt aktives Adressbuch und Kontaktanzahl via CardDAV |
| Sync-Button | Kontakte mit CardDAV-Server synchronisieren |
| vCard Export | Alle Kontakte als .vcf-Datei herunterladen |
| Bidirektional | Aenderungen in Thunderbird/DAVx5/iOS werden synchronisiert |
| vCard 3.0 | Standard-Format (RFC 6350) fuer maximale Kompatibilitaet |
| Konflikterkennung | ETag-basiert (If-Match Header) |
Zugriff¶
- Einloggen auf
https://platform.xynap.tech - Sidebar: Kontakte klicken
- CardDAV-Sync-Leiste zeigt Verbindungsstatus
Webmail (Roundcube SSO)¶
Integriertes Webmail unter /app/webmail mit automatischem Login:
| Feature | Beschreibung |
|---|---|
| SSO | Automatischer Login ueber Platform-Authentifizierung (Dovecot Master-User) |
| Iframe | Roundcube laeuft im Iframe, kein separater Login noetig |
| IMAP/SMTP | Vollstaendiger E-Mail-Client (Lesen, Schreiben, Anhaenge, Ordner) |
| Skin | Elastic (responsive, mobil-optimiert) |
| Datenbank | MariaDB (shared mit Platform) |
| Sicherheit | CSP frame-ancestors, SameSite=None Cookies, kurzlebige SSO-Tokens (60s) |
SSO-Ablauf¶
1. User klickt "Webmail" in Sidebar
2. Frontend: GET /api/v1/mail/sso-token → kurzlebiger Token (60s TTL)
3. Iframe laedt: https://mail.xynap.tech/?_sso_token=xxx
4. Roundcube Plugin (xynap_sso) validiert Token gegen Platform-API
5. Dovecot Master-User authentifiziert → automatischer Login
Zugriff¶
- Einloggen auf
https://platform.xynap.tech - Sidebar: Webmail klicken
- Oder direkt:
https://platform.xynap.tech/app/webmail - Alternativ:
https://mail.xynap.tech(Roundcube direkt, manueller Login)
Service-Portal (M8)¶
Das Service-Portal (/app/service-portal) bietet eine zentrale Übersicht:
| Funktion | Beschreibung |
|---|---|
| Service-Kacheln | E-Mail, Kalender, Kontakte, Dateien — mit "Öffnen" und "Einrichten" Buttons |
| Speicherplatz | Quota-Balken mit Kategorien (Dokumente, Medien, Mail, Backups) |
| Geräte einrichten | Setup-Wizard für Thunderbird, iOS, macOS, DAVx5, Outlook, WebDAV |
| Server-Informationen | Alle URLs und Ports auf einen Blick |
3-Ebenen-Sichtbarkeit¶
- Portalbetreiber (Platform): Sieht zusätzlich Tenant-Übersicht + Docker-Monitoring-Link
- Reseller: Sieht eigene Dienste + Kunden-Verwaltung
- Kunde: Sieht nur eigene Dienste, Speicher, Einrichtung
Zugriff Service-Portal¶
- Einloggen auf
https://platform.xynap.tech - Sidebar: Meine Dienste klicken
- Oder direkt:
https://platform.xynap.tech/app/service-portal - Setup-Wizard:
https://platform.xynap.tech/app/service-portal/setup
Technische Details¶
- Sync: ETag-basiert +
sync-token(RFC 6578) - CTag: CalendarServer
getctagfür schnelle Änderungserkennung - Multi-Calendar/Multi-Addressbook: Jeder User kann mehrere Kalender/Adressbücher haben
- Auto-Provisioning: Standard-Kalender und -Adressbuch werden automatisch erstellt