Zum Inhalt

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.techadmin_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

  1. Neues Konto → E-Mail-Adresse eingeben (user@xynap.tech)
  2. Alles wird automatisch gefunden (CalDAV, CardDAV, IMAP/SMTP)
  3. Bei 2FA: App-Passwort erstellen und als Passwort verwenden

DAVx5 (Android)

  1. Login mit URL → https://platform.xynap.tech
  2. E-Mail + App-Passwort eingeben
  3. Kalender und Kontakte werden automatisch erkannt

Apple iOS/macOS

  1. Einstellungen → Accounts → CalDAV/CardDAV hinzufügen
  2. Server: platform.xynap.tech
  3. Benutzername: E-Mail-Adresse
  4. 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

  1. Einloggen auf https://platform.xynap.tech
  2. Sidebar: Dateien klicken
  3. 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

  1. Einloggen auf https://platform.xynap.tech
  2. Sidebar: Kalender klicken
  3. 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

  1. Einloggen auf https://platform.xynap.tech
  2. Sidebar: Kontakte klicken
  3. 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

  1. Einloggen auf https://platform.xynap.tech
  2. Sidebar: Webmail klicken
  3. Oder direkt: https://platform.xynap.tech/app/webmail
  4. 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

  1. Einloggen auf https://platform.xynap.tech
  2. Sidebar: Meine Dienste klicken
  3. Oder direkt: https://platform.xynap.tech/app/service-portal
  4. Setup-Wizard: https://platform.xynap.tech/app/service-portal/setup

Technische Details

  • Sync: ETag-basiert + sync-token (RFC 6578)
  • CTag: CalendarServer getctag für schnelle Änderungserkennung
  • Multi-Calendar/Multi-Addressbook: Jeder User kann mehrere Kalender/Adressbücher haben
  • Auto-Provisioning: Standard-Kalender und -Adressbuch werden automatisch erstellt