Zum Hauptinhalt springen

Serverkonfiguration

Alle Sync-in-Serverkonfigurationsoptionen sind in der Datei environment.yaml definiert.

Ein vollständiges Beispiel ist auf GitHub verfügbar: environment.dist.yaml.

Mit dieser Datei können Sie das Verhalten Ihrer Sync-in-Instanz anpassen: Netzwerk, Authentifizierung, Datenbank, Cache, E-Mail usw.


Environment.yaml​

server​

  • host: IP-Adresse, auf der der Server lauscht.
    • Standard: 0.0.0.0
    • Typ: string (IP)
  • port: Port, der für die Webschnittstelle verwendet wird.
    • Standard: 8080
    • Typ: number
  • publicUrl: Kanonische öffentliche URL, die zum Generieren von Benachrichtigungslinks und Editor-URLs verwendet wird.
    • Standard: nicht definiert
    • Typ: string
    • Erforderlich: nein (erforderlich in der nächsten Hauptversion)
    • Beispiel: https://sync-in.domain.com
    • Hinweis: Der Wert muss mit der den Benutzern angezeigten URL übereinstimmen, einschließlich des Schemas und aller nicht standardmäßigen Ports. Er muss über die Browser der Benutzer erreichbar sein und für Office-Editoren, die mit Sync-in kommunizieren, über ihre Dienste oder Container.
    • Hinweis: Wenn die Option fehlt, werden Benachrichtigungs-E-Mails ohne Aktionslinks gesendet und Editoren verwenden den Ursprung der Anfrage als Kompatibilitätsfallback.
    • Hinweis: Aus Sicherheitsgründen wird diese Option in der nächsten Hauptversion erforderlich sein, damit Editor-Endpunkte aus einem vertrauenswürdigen Ursprung erstellt werden und nicht aus Anfrage-Headern abgeleitet werden.
  • workers: Anzahl der Prozesse.
    • Standard: 1
    • Typ: number | auto | 0
    • Hinweis: auto oder 0, um alle CPU-Kerne zu verwenden
  • trustProxy: Proxy-Verarbeitung aktivieren.
    • Standard: true
    • Typ: boolean | string (numerische Werte werden vorübergehend unterstützt, sind jedoch veraltet)
    • Hinweis: Seit Version 2.6.0 werden numerische Werte >= 1 zu true; Werte < 1 werden zu false. Verwenden Sie nach Möglichkeit eine vertrauenswürdige Proxy-IP-Adresse bzw. einen CIDR-Bereich.
    • Hinweis: Verfügbare Optionen anzeigen
  • restartOnFailure: Worker nach einem Fehler automatisch neu starten.
    • Standard: true
    • Typ: boolean

logger​

  • level: Protokollierungsstufe des Servers.
    • Standard: info
    • Typ: trace | debug | info | warn | error | fatal
  • stdout: Protokolle in der Konsole ausgeben (true) oder in eine Datei schreiben (false).
    • Standard: true
    • Typ: boolean
  • colorize: Farbige Protokollausgabe aktivieren.
    • Standard: true
    • Typ: boolean
  • jsonOutput: JSON-Ausgabe aktivieren.
    • Standard: false
    • Typ: boolean
    • Hinweis: Bei aktivierter Option wird colorize ignoriert.
  • filePath: Pfad der Protokolldatei, wenn stdout auf false gesetzt ist.
    • Standard: logs/server.log
    • Typ: string

mysql​

  • url: MySQL-Verbindungs-URL.
    • Standard: nicht definiert
    • Typ: string
    • Erforderlich: Ja
    • Beispiel: mysql://user:password@localhost:3306/database
  • logQueries: Alle an die Datenbank gesendeten SQL-Abfragen protokollieren.
    • Standard: false
    • Typ: boolean

cache​

  • adapter: Cache-System.
    • Standard: mysql
    • Typ: mysql | redis
  • ttl: Lebensdauer der Cache-Daten in Sekunden.
    • Standard: 60
    • Typ: number
  • redis: Redis-Verbindungs-URL (wenn adapter: redis verwendet wird).
    • Standard: redis://127.0.0.1:6379
    • Typ: string
    • Erforderlich: Ja (wenn adapter auf redis gesetzt ist)

websocket​

  • adapter: Legt fest, wie WebSocket-Verbindungen verwaltet werden.
    • Standard: cluster
    • Typ: cluster | redis
  • redis: Redis-Verbindungs-URL (wenn adapter: redis verwendet wird).
    • Standard: redis://127.0.0.1:6379
    • Typ: string
    • Erforderlich: Ja (wenn adapter auf redis gesetzt ist)

mail​

Der Abschnitt mail ist optional. Wenn er fehlt, sind E-Mail-Benachrichtigungen und E-Mail-basierte Funktionen deaktiviert.

  • host: Hostname des SMTP-Servers.
    • Standard: nicht definiert
    • Typ: string
    • Erforderlich: Ja (wenn der Abschnitt mail definiert ist)
  • port: SMTP-Port (z. B. 587).
    • Standard: 25
    • Typ: number
  • sender: Absenderadresse.
    • Standard: Sync-in<notification@sync-in.com>
    • Typ: string
  • auth:
    • user: SMTP-Benutzername.
      • Standard: nicht definiert
      • Typ: string
    • pass: SMTP-Passwort.
      • Standard: nicht definiert
      • Typ: string
  • secure: SSL-Verbindung verwenden.
    • Standard: false
    • Typ: boolean
  • ignoreTLS: STARTTLS deaktivieren, auch wenn der Server es anbietet.
    • Standard: false
    • Typ: boolean
  • rejectUnauthorized: Die Verbindung ablehnen, wenn das TLS-Zertifikat des Servers ungültig ist.
    • Standard: true
    • Typ: boolean
    • Nur für einen vertrauenswürdigen SMTP-Server mit selbst signiertem Zertifikat auf false setzen. Dadurch wird die Zertifikatsprüfung deaktiviert, was für Produktionsumgebungen nicht empfohlen wird.
  • logger: Interne SMTP-Protokolle von Nodemailer aktivieren. Ihre Ausführlichkeit richtet sich nach dem allgemeinen logger.level. Wenn logger.level auf debug oder trace gesetzt wird, wird auch detaillierter SMTP-Datenverkehr protokolliert.
    • Standard: false
    • Typ: boolean

auth​

  • provider: Authentifizierungsmethode.
    • Standard: mysql
    • Typ: mysql | ldap | oidc
  • cookieSameSite: SameSite-Richtlinie für Cookies.
    • Standard: strict
    • Typ: lax | strict
  • encryptionKey: Verschlüsselungsschlüssel für Benutzergeheimnisse in der Datenbank, derzeit optional. Er wird in einer zukünftigen Hauptversion erforderlich sein.
    • Standard: nicht definiert
    • Typ: string
    • Hinweis: ⚠️ Sobald MFA aktiviert ist, macht jede Änderung oder Löschung des Verschlüsselungsschlüssels die Geheimnisse ungültig und verhindert jede spätere Authentifizierung.
  • mfa:
    • totp:
      • enabled: TOTP-Authentifizierung für alle Benutzer aktivieren.
        • Standard: true
        • Typ: boolean
      • issuer: Name, der in der Authentifizierungs-App angezeigt wird.
        • Standard: Sync-in
        • Typ: string
  • token:
    • access:
      • secret: JWT-Geheimnis für Zugriffstoken.
        • Standard: nicht definiert
        • Typ: string
        • Erforderlich: Ja
        • Hinweis: Verwenden Sie einen langen, zufällig generierten Wert. Er muss sich vom Geheimnis des Aktualisierungstokens unterscheiden.
      • expiration: Gültigkeitsdauer des Zugriffstokens.
        • Standard: 15m
        • Typ: string
    • refresh:
      • secret: JWT-Geheimnis für Aktualisierungstoken.
        • Standard: nicht definiert
        • Typ: string
        • Erforderlich: Ja
        • Hinweis: Verwenden Sie einen langen, zufällig generierten Wert. Er muss sich vom Geheimnis des Zugriffstokens unterscheiden.
      • expiration: Gültigkeitsdauer des Aktualisierungstokens.
        • Standard: 4h
        • Typ: string
  • ldap (wenn provider: ldap):​

    • Hinweis: Siehe die entsprechende Dokumentation
    • servers: Liste der LDAP-Server.
      • Standard: []
      • Typ: string[]
      • Erforderlich: Ja
      • Beispiel: [ldap://localhost:389]
    • tlsOptions: Node.js TLS-Optionen, die für die sichere LDAP-Verbindung verwendet werden.
      • rejectUnauthorized: Lehnt die Verbindung ab, wenn das TLS-Zertifikat des Servers ungültig ist.
        • Standard: true
        • Typ: boolean
        • Erforderlich: nein
      • ca: Liste gültiger Pfade zu Zertifikaten.
        • Standard: []
        • Typ: string[]
        • Erforderlich: nein
        • Beispiel: [/app/certs/ca.pem]
      • *: Weitere Optionen sind in der Node.js-Dokumentation verfügbar.
    • baseDN: Basis-DN.
      • Standard: nicht definiert
      • Typ: string
      • Erforderlich: Ja
      • Beispiel: ou=people,dc=example,dc=com
    • filter: Optionaler LDAP-Filter zur Suche hinzugefügt.
      • Standard: nicht definiert
      • Typ: string
      • Beispiel: (acl=admin)
    • upnSuffix: AD-Domänensuffix, das mit userPrincipalName verwendet wird.
      • Standard: nicht definiert
      • Typ: string
      • Beispiel: user@sync-in.com
    • netbiosName: NetBIOS-Domänenname, der mit sAMAccountName verwendet wird.
      • Standard: nicht definiert
      • Typ: string
      • Beispiel: SYNC_IN\user
    • serviceBindDN: DN eines Dienstkontos zum Durchführen von LDAP-Suchen.
      • Standard: nicht definiert
      • Typ: string
    • serviceBindPassword: Passwort des Dienstkontos.
      • Standard: nicht definiert
      • Typ: string
    • attributes:
      • login: LDAP-Attribut, das zur Benutzeridentifizierung verwendet wird.
        • Standard: uid
        • Typ: uid | cn | mail | sAMAccountName | userPrincipalName
      • email: LDAP-Attribut, das die E-Mail-Adresse enthält (z. B. mail, email).
        • Standard: mail
        • Typ: string
      • storageQuota: LDAP-Attribut, das das Speicherkontingent des Benutzers in Bytes enthält.
        • Standard: storageQuota
        • Typ: string
        • Hinweis: Ein fehlendes Attribut lässt das lokale Kontingent unverändert. Wenn das Attribut mit null oder 0 vorhanden ist, wird das Kontingent auf unbegrenzt gesetzt.
    • options:
      • autoCreateUser: Erstellt bei der ersten LDAP-Anmeldung einen lokalen Benutzer.
        • Standard: true
        • Typ: boolean
      • autoCreatePermissions: Automatisch erstellten Benutzern zugewiesene Berechtigungen.
      • adminGroup: LDAP-Gruppe, die Administratorrechte gewährt (einfacher CN oder vollständiger DN).
        • Standard: nicht definiert
        • Typ: string
      • enablePasswordAuthFallback: Lokale Passwortauthentifizierung für Standardbenutzer zulassen, wenn LDAP nicht verfügbar ist.
        • Standard: false
        • Typ: boolean
        • Hinweis: Für Administratorkonten sollte ein lokales Sync-in-Passwort konfiguriert und für den Notfallzugriff verfügbar gehalten werden.
  • oidc (wenn provider: oidc):​

    • Hinweis: Siehe die entsprechende Dokumentation
    • issuerUrl: Discovery-URL des OpenID-Connect-Anbieters.
      • Standard: nicht definiert
      • Typ: string
      • Erforderlich: Ja
    • clientId: OAuth 2.0-Client-ID.
      • Standard: nicht definiert
      • Typ: string
      • Erforderlich: Ja
    • clientSecret: OAuth 2.0-Client-Geheimnis.
      • Standard: nicht definiert
      • Typ: string
      • Erforderlich: Ja
    • redirectUri: Beim Anbieter registrierte Weiterleitungs-URL.
      • Standard: nicht definiert
      • Typ: string
      • Erforderlich: Ja
      • Hinweis: ⚠️ Die URL muss mit /api/auth/oidc/callback enden.
    • options:
      • autoCreateUser: Erstellt bei der ersten OIDC-Anmeldung einen lokalen Benutzer.
        • Standard: true
        • Typ: boolean
      • autoCreatePermissions: Automatisch erstellten Benutzern zugewiesene Berechtigungen.
      • adminRoleOrGroup: Rolle oder Gruppe, die Administratorrechte gewährt.
        • Standard: nicht definiert
        • Typ: string
      • storageQuotaClaim: OIDC-Claim, der das Speicherkontingent des Benutzers in Bytes enthält.
        • Standard: storageQuota
        • Typ: string
        • Hinweis: Ein fehlender Claim lässt das lokale Kontingent unverändert. Wenn der Claim mit null oder 0 vorhanden ist, wird das Kontingent auf unbegrenzt gesetzt.
      • enablePasswordAuth: Lokale Passwortauthentifizierung für vorhandene Standardbenutzer zulassen.
        • Standard: false
        • Typ: boolean
        • Hinweis: Für diesen lokalen Anmeldevorgang müssen Standardbenutzer ihr lokales Sync-in-Passwort kennen.
        • Hinweis: Von OIDC erstellte Benutzer können ein bekanntes lokales Passwort aus ihrem Profil festlegen, während sie über OIDC authentifiziert werden.
        • Hinweis: Dieses lokale Passwort ist auch erforderlich, um Sync-in 2FA über eine OIDC-Browsersitzung zu aktivieren, zurückzusetzen oder zu deaktivieren.
        • Hinweis: Für Administratorkonten sollte ein lokales Sync-in-Passwort konfiguriert und für den Notfallzugriff verfügbar gehalten werden.
      • autoSyncAvatar: Lädt den Benutzeravatar automatisch aus dem OIDC-Claim picture herunter und synchronisiert ihn.
        • Standard: false
        • Typ: boolean
      • autoRedirect: Automatische Umleitung zum IdP.
        • Standard: false
        • Typ: boolean
      • buttonText: Beschriftung der OIDC-Anmeldeschaltfläche.
        • Standard: Continue with OpenID Connect
        • Typ: string
    • security:
      • scope: Angeforderte OAuth-2.0-Scopes.
        • Standard: openid email profile
        • Typ: string
      • supportPKCE: Aktiviert PKCE-Unterstützung im Autorisierungsfluss.
        • Standard: true
        • Typ: boolean
      • allowInsecureRequests: OIDC-Erkennung und Token-Anfragen über unsicheres HTTP zulassen.
        • Standard: false
        • Typ: boolean
        • Hinweis: Nur für lokale Entwicklung oder vertrauenswürdige Legacy-Anbieter aktivieren.
      • tokenEndpointAuthMethod: Authentifizierungsmethode am Token-Endpunkt.
        • Standard: client_secret_basic
        • Typ: client_secret_basic | client_secret_post
        • Hinweis: clientSecret ist in der Sync-in-Konfiguration erforderlich.
      • tokenSigningAlg: Signierungsalgorithmus für ID-Tokens.
        • Standard: RS256
        • Typ: string
      • userInfoSigningAlg: Algorithmus für eine signierte UserInfo-Antwort.
        • Standard: nicht definiert
        • Typ: string
      • skipSubjectCheck: Deaktiviert die Prüfung des Claims sub.
        • Standard: false
        • Typ: boolean
      • requireVerifiedEmail: Verlangt vor der Kontoverknüpfung oder Profilsynchronisierung einen verifizierten E-Mail-Claim vom OIDC-Anbieter.
        • Standard: true
        • Typ: boolean
      • allowPrivateIpAvatarDownload: OIDC-Avatar-Downloads aus privaten oder internen IP-Bereichen zulassen.
        • Standard: false
        • Typ: boolean

applications​

  • users:
    • showUngroupedUsers: Macht Benutzer ohne Gruppe global für Standardbenutzer und Administratoren sichtbar.
      • Standard: true
      • Typ: boolean
      • Hinweis: Gastkonten sind von dieser globalen Sichtbarkeit ausgeschlossen, sowohl als aufgelistete Konten als auch als Anforderer.
  • files:
    • dataPath: Speicherort für Anwendungsdateien, einschließlich persönlicher Bereiche, kollaborativer Bereiche und temporärer Dateien.
      • Standard: nicht definiert
      • Typ: string
      • Erforderlich: Ja
      • Docker: wird vom Docker-Einstiegspunkt automatisch fest auf /app/data gesetzt; lassen Sie diese Einstellung aus der Docker-Datei environment.yaml weg.
    • maxUploadSize: Maximale Größe für Dateien, die über HTTP-Uploads, WebDAV, Synchronisierung, Remote-Downloads oder Editor-Callbacks empfangen werden.
      • Standard: 5368709120 (5 GB)
      • Typ: number
      • Hinweis: Wert ausgedrückt in Bytes.
    • contentIndexing:
      • enabled: Indizierung von Dateiinhalten für die Suche aktivieren (durch Deaktivieren dieser Option wird die Volltextsuche deaktiviert).
        • Standard: true
        • Typ: boolean
      • ocr:
        • Hinweis: Siehe spezielle Dokumentation
        • enabled: OCR für PDF-Bilder aktivieren
          • Standard: true
          • Typ: boolean
        • languages: Verwendete OCR-Sprachen.
          • Standard: [eng]
          • Typ: string[]
          • Beispiel: [eng,fra]
          • Hinweis: Unterstützt ISO 639-2/T-Drei-Buchstaben-Codes: eng, spa, fra, deu usw.
        • offline: Verhindert das Herunterladen von OCR-Sprachen und verwendet ausschließlich lokale Sprachdateien.
          • Standard: false
          • Typ: boolean
        • languagesPath: Pfad zu lokalen OCR-Sprachdateien
          • Standard: integriertes OCR-Verzeichnis
          • Typ: string
          • Hinweis: Wird verwendet, wenn der Offline-Modus aktiviert ist oder um den Standardspeicherort zu überschreiben
    • trashRetention:
      • users: Automatische Bereinigungsverzögerung für den Papierkorb im persönlichen Bereich in Tagen.
        • Standard: false
        • Typ: number | false
        • Hinweis: false oder 0 deaktiviert die Bereinigung.
      • spaces: Automatische Bereinigungsfrist für den Papierkorb in kollaborativen Bereichen in Tagen.
        • Standard: false
        • Typ: number | false
        • Hinweis: false oder 0 deaktiviert die Bereinigung.
    • sampleDocuments: Dokumentgruppen werden im Dialog „Neues Dokument“ angezeigt.
      • Standard: [opendocument, microsoft, drawio]
      • Typ: string[]
      • Werte: opendocument | microsoft | drawio
      • Hinweis: Verwenden Sie [], um nur Text, Markdown und Andere anzuzeigen.
    • editors: Kollaborative Editor-Integrationen.
      • Hinweis: Bei der Definition muss jeder externalServer-Wert eine gültige absolute HTTP- oder HTTPS-URL sein.
      • Hinweis: Die alten Pfade applications.files.onlyoffice und applications.files.collabora werden aus Kompatibilitätsgründen weiterhin unterstützt, sind jedoch veraltet und werden in einer zukünftigen Version entfernt. Verschieben Sie diese Einstellungen nach applications.files.editors.
      • onlyoffice:
        • enabled: OnlyOffice-Integration aktivieren.
          • Standard: false
          • Typ: boolean
        • secret: Gemeinsames JWT-Geheimnis mit OnlyOffice.
          • Standard: nicht definiert
          • Typ: string
          • Erforderlich: Ja (falls für OnlyOffice aktiviert)
        • externalServer: URL Ihres OnlyOffice-Servers.
          • Standard: nicht definiert
          • Typ: string
          • Beispiel: https://onlyoffice.my-domain.com
          • Hinweis: Optional, wenn Sie Sync-in Docker Compose verwenden.
        • verifySSL: Überprüft das SSL-Zertifikat.
          • Standard: false
          • Typ: boolean
      • eurooffice:
        • enabled: Euro-Office-Integration aktivieren.
          • Standard: false
          • Typ: boolean
        • secret: Mit Euro-Office geteiltes JWT-Geheimnis.
          • Standard: nicht definiert
          • Typ: string
          • Erforderlich: Ja (falls für Euro-Office aktiviert)
        • externalServer: URL Ihres Euro-Office-Servers.
          • Standard: nicht definiert
          • Typ: string
          • Beispiel: https://eurooffice.my-domain.com
        • verifySSL: Überprüft das SSL-Zertifikat.
          • Standard: false
          • Typ: boolean
      • collabora:
        • enabled: Collabora Online-Integration aktivieren.
          • Standard: false
          • Typ: boolean
        • externalServer: URL Ihres Collabora Online-Servers.
          • Standard: nicht definiert
          • Typ: string
          • Beispiel: https://collabora.my-domain.com
          • Hinweis: Optional, wenn Sie Sync-in Docker Compose verwenden.
      • drawio:
        • enabled: draw.io-Integration aktivieren.
          • Standard: false
          • Typ: boolean
        • externalServer: URL Ihres externen draw.io-Servers.
          • Standard: nicht definiert
          • Typ: string
          • Beispiel: https://drawio.my-domain.com
          • Hinweis: Optional, wenn Sie Sync-in Docker Compose verwenden. Verwenden Sie einen dedizierten Ursprung für einen externen Server.
  • appStore:
    • repository: Repository-Auswahl für App-Client-Releases.
      • Standard: public
      • Typ: public | local
      • Hinweis: Dieser Abschnitt ist direkt unter applications definiert, nicht unter applications.files.

Umgebungsvariablen​

Skalare Konfigurationsparameter des Sync-in-Servers können über Umgebungsvariablen mit dem Präfix SYNCIN_ festgelegt werden. Wenn eine Variable vom Typ SYNCIN_* definiert wird, hat ihr Wert Vorrang vor dem entsprechenden Wert in der Datei environment.yaml und ersetzt ihn.

Beispielsweise die folgende Konfiguration:

server:
# Derzeit optional; in der nächsten Hauptversion erforderlich
publicUrl: 'https://sync-in.domain.com'
mysql:
url: 'mysql://root:MySQLRootPassword@mariadb:3306/sync_in'
auth:
encryptionKey: 'REPLACE_WITH_LONG_RANDOM_ENCRYPTION_KEY'
token:
access:
secret: 'REPLACE_WITH_LONG_RANDOM_ACCESS_SECRET'
refresh:
secret: 'REPLACE_WITH_LONG_RANDOM_REFRESH_SECRET'
applications:
files:
dataPath: '/home/sync-in-data'

Kann mit den folgenden Umgebungsvariablen reproduziert werden:

SYNCIN_AUTH_ENCRYPTIONKEY='REPLACE_WITH_LONG_RANDOM_ENCRYPTION_KEY'
SYNCIN_AUTH_TOKEN_ACCESS_SECRET='REPLACE_WITH_LONG_RANDOM_ACCESS_SECRET'
SYNCIN_AUTH_TOKEN_REFRESH_SECRET='REPLACE_WITH_LONG_RANDOM_REFRESH_SECRET'
SYNCIN_MYSQL_URL='mysql://root:MySQLRootPassword@mariadb:3306/sync_in'
# Derzeit optional; in der nächsten Hauptversion erforderlich
SYNCIN_SERVER_PUBLICURL='https://sync-in.domain.com'
SYNCIN_APPLICATIONS_FILES_DATAPATH='/home/sync-in-data'
Hinweis

Diese Umgebungsvariablen bieten eine empfohlene Mindestkonfiguration zum Starten von Sync-in ohne eine environment.yaml-Datei.

Info
  • Für boolesche Werte verwenden Sie true oder false.
  • Numerische Werte werden automatisch verarbeitet.
  • Um Werte zu konfigurieren, die als Arrays erwartet werden, verwenden Sie eine durch Kommas getrennte Liste, sofern die Option dies unterstützt. Zum Beispiel: SYNCIN_APPLICATIONS_FILES_SAMPLEDOCUMENTS=opendocument,microsoft,drawio konfiguriert applications.files.sampleDocuments.

⚠️ Wenn ein SYNCIN_*-Wert in ein Paar einfacher oder doppelter Anführungszeichen eingeschlossen ist, entfernt Sync-in diese äußeren Anführungszeichen. Verschachtelte oder nicht übereinstimmende Anführungszeichen bleiben unverändert.


Minimale Konfiguration​

server:
# Derzeit optional; in der nächsten Hauptversion erforderlich
publicUrl: 'https://sync-in.domain.com'
mysql:
url: 'mysql://root:MySQLRootPassword@mariadb:3306/sync_in'
auth:
encryptionKey: 'REPLACE_WITH_LONG_RANDOM_ENCRYPTION_KEY'
token:
access:
secret: 'REPLACE_WITH_LONG_RANDOM_ACCESS_SECRET'
refresh:
secret: 'REPLACE_WITH_LONG_RANDOM_REFRESH_SECRET'
applications:
files:
dataPath: '/home/sync-in-data'

Vollständige Konfiguration​

server:
# Standardhost: `0.0.0.0`
host: 0.0.0.0
# Standardport: `8080`
port: 8080
# publicUrl: Kanonische öffentliche URL zum Erstellen von Benachrichtigungslinks und Editor-URLs.
# Wenn sie nicht festgelegt ist, werden Benachrichtigungs-E-Mails ohne Aktionslinks gesendet und Editoren verwenden
# den Ursprung der Anfrage als Kompatibilitäts-Fallback. Aus Sicherheitsgründen wird die Option in der nächsten
# Hauptversion erforderlich, damit Editor-Endpunkte einen vertrauenswürdigen, vom Administrator kontrollierten Ursprung
# anstelle von Anfrage-Headern verwenden.
# z. B.: https://sync-in.domain.com
# optional
publicUrl:
# workers: `auto` oder `0` (alle CPUs verwenden) | Anzahl der zu verwendenden CPUs
# Standard: 1
workers: 1
# Proxy-Vertrauen: `true` (allen Proxys vertrauen) | `false` | `127.0.0.1,192.168.1.1/24`
# Seit Version 2.6.0 sind veraltete numerische Werte >= 1 als veraltet markiert und werden wie `true` behandelt
# Standard: true
trustProxy: true
# restartOnFailure: Worker automatisch neu starten, wenn sie beendet werden oder ausfallen
# Standard: `true`
restartOnFailure: true
mysql:
# erforderlich
url: 'mysql://root:MySQLPassword@localhost:3306/database'
# Standard: `false`
logQueries: false
logger:
# Stufe: `trace` | `debug` | `info` | `warn` | `error` | `fatal`
# Standard: `info`
level: info
# stdout: Bei false werden Protokolle in das Laufzeitverzeichnis geschrieben
# Standard: `true`
stdout: true
# Ausgabe farbig darstellen.
# Standard: `true`
colorize: true
# JSON-Ausgabe. Wenn aktiviert, wird `colorize` ignoriert.
# Standard: `false`
jsonOutput: false
# Pfad zur Protokolldatei, die verwendet wird, wenn stdout auf false gesetzt ist
filePath:
cache:
# Adapter: `mysql` | `redis`
# Standard: `mysql`
adapter: mysql
# TTL in Sekunden
# Standard: `60`
ttl: 60
# URL des Redis-Adapters
# Standard: `redis://127.0.0.1:6379`
redis: 'redis://127.0.0.1:6379'
websocket:
# Adapter: `cluster` (Node.js-Worker: Standard) | `redis`
# Standard: `cluster`
adapter: cluster
# URL des Redis-Adapters
# Standard: `redis://127.0.0.1:6379`
redis: 'redis://127.0.0.1:6379'
mail:
host: 'smtp.server.com'
# Standard: `25`
port: 25
# Standard: `Sync-in<notification@sync-in.com>`
sender: 'Sync-in<notification@sync-in.com>'
# optional
auth:
user: 'user'
pass: 'password'
# Legt fest, ob die Verbindung SSL verwenden soll (bei true) oder nicht (bei false)
# Hinweis: `secure: false` bedeutet nicht zwangsläufig, dass Nachrichten im Klartext gesendet werden
# Wenn der Server STARTTLS unterstützt, wird die Verbindung normalerweise automatisch auf TLS umgestellt
# Standard: `false`
secure: false
# ignoreTLS: Deaktiviert bei true die Verwendung von STARTTLS, selbst wenn der Server es ankündigt
# Standard: false
ignoreTLS: false
# rejectUnauthorized: Verbindung ablehnen, wenn das TLS-Zertifikat des Servers ungültig ist
# Standard: true
rejectUnauthorized: true
# Interne SMTP-Protokolle von Nodemailer aktivieren
# logger.level auf debug oder trace setzen, um detaillierten SMTP-Datenverkehr einzubeziehen
# Standard: `false`
logger: false
auth:
# Anbieter: `mysql` | `ldap` | `oidc`
# Standard: `mysql`
provider: mysql
# Schlüssel zum Verschlüsseln geheimer Benutzerschlüssel in der Datenbank
# Derzeit optional; in einer zukünftigen Hauptversion erforderlich
# Warnung: Den Verschlüsselungsschlüssel nach der MFA-Aktivierung nicht ändern oder entfernen, da die Codes sonst ungültig werden
encryptionKey:
# sameSite-Einstellung des Cookies: `lax` | `strict`
# Standard: `strict`
cookieSameSite: strict
token:
access:
# Für Token- und Cookie-Signaturen verwendet
# erforderlich
secret:
# Token-Ablaufzeit = maxAge des Cookies
# Standard: `15m`
expiration: 15m
refresh:
# Für Token- und Cookie-Signaturen verwendet
# erforderlich
secret:
# Token-Ablaufzeit = maxAge des Cookies
# Standard: `4h`
expiration: 4h
# Multi-Faktor-Authentifizierung
mfa:
# TOTP-Konfiguration
totp:
# TOTP-Authentifizierung aktivieren
# Standard: true
enabled: true
# In der Authentifizierungs-App angezeigter Name (FreeOTP, Proton Authenticator, Aegis Authenticator usw.)
# Standard: Sync-in
issuer: Sync-in
# LDAP-Authentifizierung
ldap:
# z. B.: [ldap://localhost:389, ldaps://localhost:636] (Array erforderlich)
# Mehrere Server werden der Reihe nach ausprobiert, bis eine Bindung oder Suche erfolgreich ist.
# erforderlich
servers: []
# tlsOptions: Node.js-TLS-Optionen für die sichere LDAP-Verbindung.
# Unterstützt Standard-TLS-Optionen wie `ca`, `rejectUnauthorized` usw.
# Siehe: https://nodejs.org/api/tls.html
# https://nodejs.org/api/tls.html#tlscreatesecurecontextoptions
# Beispiel:
# tlsOptions:
# rejectUnauthorized: true
# ca: [/app/certs/ca.pem]
# optional
tlsOptions:
# baseDN: Distinguished Name (z. B.: ou=people,dc=ldap,dc=sync-in,dc=com)
# Wird als Suchbasis für Benutzer und, wenn adminGroup ein CN ist, für Gruppen verwendet.
# erforderlich
baseDN: 'ou=people,dc=ldap,dc=sync-in,dc=com'
# Filter, z. B.: (acl=admin)
# Wird unverändert an den LDAP-Suchfilter angehängt (vertrauenswürdige Konfiguration).
# optional
filter:
# upnSuffix: AD-Domänensuffix, das mit `userPrincipalName` zum Erstellen von Anmeldenamen im UPN-Format verwendet wird (z. B.: user@`sync-in.com`)
# Wird nur verwendet, wenn login auf userPrincipalName gesetzt ist.
# optional
upnSuffix:
# netbiosName: NetBIOS-Domänenname, der mit `sAMAccountName` zum Erstellen veralteter Anmeldenamen verwendet wird (z. B.: `SYNC_IN`\user)
# Wird nur verwendet, wenn login auf sAMAccountName gesetzt ist.
# optional
netbiosName:
# serviceBindDN: Distinguished Name eines Dienstkontos für die Suche nach Benutzern und Gruppen.
# Wenn festgelegt, werden Suchen mit diesem Konto ausgeführt; die Benutzerbindung dient nur zur Passwortvalidierung.
# z. B.: cn=syncin,ou=services,dc=ldap,dc=sync-in,dc=com
# optional
serviceBindDN:
# serviceBindPassword: Passwort des Dienstkontos für die Suche nach Benutzern und Gruppen.
# optional
serviceBindPassword:
attributes:
# LDAP-Attribut, das dem in der Datenbank gespeicherten Anmeldenamen entspricht.
# Bei einer Dienstbindung wird damit der Benutzer gesucht und anschließend mit dem gefundenen DN gebunden.
# Ohne Dienstbindung wird damit der DN des Benutzers für die Bindung erstellt (außer bei AD: UPN/DOMAIN\\user).
# Wenn Sie mail auswählen, sollten die lokalen Anmeldenamen den E-Mail-Adressen der Benutzer entsprechen.
# z. B.: uid | cn | mail | sAMAccountName | userPrincipalName
# Standard: uid
login: uid
# Attribut zum Abrufen der E-Mail-Adresse des Benutzers
# E-Mail: `mail` oder `email`
# Standard: `mail`
email: mail
# Attribut zum Abrufen des Speicherkontingents des Benutzers in Byte.
# Wenn das Attribut fehlt, wird storageQuota des lokalen Kontos nicht aktualisiert.
# Wenn das Attribut null oder 0 ist, wird storageQuota des lokalen Kontos auf null (unbegrenzt) gesetzt.
# Standard: `storageQuota`
storageQuota: storageQuota
options:
# autoCreateUser: Bei der ersten erfolgreichen LDAP-Authentifizierung automatisch einen lokalen Benutzer erstellen.
# Das lokale Konto wird aus LDAP-Attributen erstellt:
# - login: aus dem konfigurierten LDAP-Anmeldeattribut (z. B.: uid, cn, sAMAccountName, userPrincipalName)
# - email: aus dem konfigurierten E-Mail-Attribut (erforderlich)
# - firstName / lastName: aus givenName+sn, displayName oder cn (Fallback)
# Wenn deaktiviert, können sich nur vorhandene Benutzer über LDAP authentifizieren.
# Standard: true
autoCreateUser: true
# autoCreatePermissions: Berechtigungen für automatisch über LDAP erstellte Benutzer.
# Wird nur bei der Benutzererstellung angewendet, wenn autoCreateUser aktiviert ist.
# Hat keine Auswirkung auf vorhandene Benutzer.
# Eine vollständige Liste der Berechtigungen finden Sie in der Dokumentation: https://sync-in.com/docs/admin-guide/permissions
# z. B.: [personal_space, spaces_access] (Array erforderlich)
# Standard: []
autoCreatePermissions: []
# adminGroup: LDAP-Gruppe, die Sync-in-Administratorrechte gewährt.
# Akzeptiert entweder einen einfachen CN (z. B.: "Admins") oder einen vollständigen DN (z. B.: "CN=Admins,OU=Groups,DC=ldap,DC=sync-in,DC=com").
# Wenn festgelegt, erhalten Benutzer die Administratorrolle, deren LDAP-Attribut `memberOf` diesen CN enthält oder deren Gruppen-DN übereinstimmt.
# Wenn `memberOf` fehlt, kann Sync-in die Mitgliedschaft auch durch eine Suche nach `groupOfNames`-Gruppen prüfen.
# Wenn Benutzer `groupOfNames` nicht lesen können, verwenden Sie für diese Suche ein Dienstbindungskonto.
# Wenn nicht festgelegt, behalten vorhandene Administratoren ihre Rolle und können nicht über LDAP herabgestuft werden.
# optional
adminGroup:
# enablePasswordAuthFallback: Lokale Passwortauthentifizierung für Standardbenutzer zulassen, wenn der LDAP-Dienst nicht verfügbar ist.
# Wenn aktiviert, können sich Standardbenutzer bei Nichtverfügbarkeit des LDAP-Dienstes mit ihrem lokalen Passwort authentifizieren.
# Für Administratoren immer zulässig (Notfallzugriff).
# Für Administratorkonten sollte ein lokales Sync-in-Passwort konfiguriert und für den Notfallzugriff verfügbar gehalten werden.
# Standard: false
enablePasswordAuthFallback: false
oidc:
# issuerUrl: URL des Discovery-Endpunkts des OIDC-Anbieters
# z. B.:
# - Keycloak: https://auth.example.com/realms/my-realm
# - Authentik: https://auth.example.com/application/o/my-app/
# - Google: https://accounts.google.com
# - Microsoft: https://login.microsoftonline.com/<tenant-id>/v2.0
# Der Server erkennt die Autorisierungs-, Token- und UserInfo-Endpunkte automatisch.
# erforderlich
issuerUrl:
# clientId: Vom OIDC-Anbieter erhaltene OAuth-2.0-Client-ID
# erforderlich
clientId:
# clientSecret: Vom OIDC-Anbieter erhaltenes OAuth-2.0-Client-Geheimnis
# erforderlich
clientSecret: 'changeOIDCClientSecret'
# redirectUri: Callback-URL, zu der Benutzer nach der Authentifizierung weitergeleitet werden
# Diese URL muss beim OIDC-Anbieter als zulässige Umleitungs-URI registriert sein
# z. B. (API-Callback): https://sync-in.domain.com/api/auth/oidc/callback
#
# Für die Authentifizierung über die Desktop-Anwendung müssen beim OIDC-Anbieter auch die folgenden Umleitungs-URLs registriert sein:
# - http://127.0.0.1:49152/oidc/callback
# - http://127.0.0.1:49153/oidc/callback
# - http://127.0.0.1:49154/oidc/callback
#
# Wenn der OIDC-Anbieter Platzhalter oder reguläre Ausdrücke unterstützt, können Sie stattdessen einen einzelnen Eintrag registrieren, zum Beispiel:
# - http://127.0.0.1/*
#
# erforderlich
redirectUri: 'https://sync-in.domain.com/api/auth/oidc/callback'
options:
# autoCreateUser: Bei der ersten erfolgreichen OIDC-Anmeldung automatisch ein lokales Benutzerkonto erstellen.
# Wenn aktiviert, wird der `login` aus OIDC-Claims abgeleitet: zuerst preferred_username, dann der lokale Teil der E-Mail-Adresse und als letzter Fallback `sub`.
# Wenn deaktiviert, können sich nur vorhandene Benutzer über OIDC authentifizieren.
# Standard: true
autoCreateUser: true
# autoCreatePermissions: Berechtigungen für automatisch über OIDC erstellte Benutzer.
# Wird nur bei der Benutzererstellung angewendet, wenn autoCreateUser aktiviert ist.
# Diese Option hat keine Auswirkung auf vorhandene Benutzer.
# Eine vollständige Liste der Berechtigungen finden Sie in der Dokumentation: https://sync-in.com/docs/admin-guide/permissions
# z. B.: [personal_space, spaces_access] (Array erforderlich)
# Standard: []
autoCreatePermissions: []
# storageQuotaClaim: OIDC-Claim zum Abrufen des Speicherkontingents des Benutzers in Byte.
# Wenn der Claim fehlt, wird storageQuota des lokalen Kontos nicht aktualisiert.
# Wenn der Claim null oder 0 ist, wird storageQuota des lokalen Kontos auf null (unbegrenzt) gesetzt.
# Standard: `storageQuota`
storageQuotaClaim: storageQuota
# adminRoleOrGroup: Name der Rolle oder Gruppe, die Sync-in-Administratorzugriff gewährt
# Benutzer mit diesem Wert erhalten Administratorrechte.
# Der Wert wird mit den vom IdP bereitgestellten Claims `roles` oder `groups` abgeglichen.
# Hinweis: Je nach Anbieter (z. B. Keycloak) werden Rollen oder Gruppen möglicherweise nur in Token bereitgestellt
# und benötigen passende IdP-Mapper, damit sie im ID-Token oder in der UserInfo-Antwort enthalten sind.
# optional
adminRoleOrGroup:
# enablePasswordAuth: Lokale Passwortauthentifizierung bei Verwendung von OIDC zulassen.
# Wenn aktiviert, können sich Benutzer anstelle von OIDC mit ihrem Sync-in-Passwort authentifizieren.
# Die Sync-in-MFA gilt für diesen lokalen Passwortablauf.
# Bei OIDC-Anmeldungen setzt der Identitätsanbieter die MFA-/SSO-Richtlinien durch.
# Die lokale Passwortauthentifizierung ist immer zulässig für:
# - Gäste
# - Administratoren (Notfallzugriff)
# - Anwendungskennwörter
# Für diesen lokalen Anmeldeablauf sind Standardbenutzer nur zugelassen, wenn diese Option aktiviert ist und sie ihr lokales Sync-in-Passwort kennen.
# Über OIDC erstellte Benutzer können in ihrem Profil ein bekanntes lokales Passwort festlegen, während sie über OIDC authentifiziert sind.
# Dieses lokale Passwort ist auch erforderlich, um Sync-in 2FA in einer OIDC-Browsersitzung zu aktivieren, zurückzusetzen oder zu deaktivieren.
# Für Administratorkonten sollte ein lokales Sync-in-Passwort konfiguriert und für den Notfallzugriff verfügbar gehalten werden.
# Standard: false
enablePasswordAuth: false
# autoSyncAvatar: Benutzeravatar automatisch aus dem OIDC-Claim `picture` herunterladen und synchronisieren.
# Standard: false
autoSyncAvatar: false
# autoRedirect: Benutzer automatisch zum OIDC-Anmeldeablauf weiterleiten.
# Wenn aktiviert, wird die Anmeldeseite übersprungen und Benutzer werden direkt zum OIDC-Anbieter weitergeleitet.
# Standard: false
autoRedirect: false
# buttonText: Auf der OIDC-Anmeldeschaltfläche angezeigter Text.
# Standard: Continue with OpenID Connect
buttonText: 'Continue with OpenID Connect'
security:
# scope: Anzufordernde OAuth-2.0-Scopes (durch Leerzeichen getrennte Zeichenfolge)
# Gängige Scopes: openid (erforderlich), email, profile, groups, roles
# Standard: `openid email profile`
scope: 'openid email profile'
# supportPKCE: PKCE (Proof Key for Code Exchange) im Autorisierungscode-Ablauf aktivieren.
# Bei true wird PKCE verwendet, sofern der OIDC-Anbieter es unterstützt.
# Standard: true
supportPKCE: true
# allowInsecureRequests: OIDC-Discovery- und Token-Anfragen über unsicheres HTTP zulassen.
# Nur für die lokale Entwicklung oder vertrauenswürdige Legacy-Anbieter auf true setzen.
# Standard: false
allowInsecureRequests: false
# Am Token-Endpunkt verwendete OAuth-2.0-/OIDC-Clientauthentifizierungsmethode.
# Mögliche Werte:
# - client_secret_basic (STANDARD): HTTP-Basisauthentifizierung mit client_id und client_secret.
# Empfohlen für vertrauliche Backend-Clients.
# - client_secret_post: client_id und client_secret werden im Anfragekörper gesendet.
# Standard: `client_secret_basic`
tokenEndpointAuthMethod: client_secret_basic
# tokenSigningAlg: Algorithmus zur Prüfung der Signatur der vom OpenID-Connect-Anbieter zurückgegebenen ID-Token (JWT).
# Gängige Werte: RS256, RS384, RS512, ES256, ES384, ES512
# Standard: `RS256`
tokenSigningAlg: RS256
# userInfoSigningAlg: Algorithmus zum Anfordern einer signierten UserInfo-Antwort vom OpenID-Connect-Anbieter.
# Wenn nicht festgelegt, gibt der UserInfo-Endpunkt eine nicht signierte Standard-JSON-Antwort zurück. Dies ist die gängigste und empfohlene Konfiguration.
# Gängige Werte: (leer), RS256, RS384, RS512, ES256, ES384, ES512
# Standard: leer
userInfoSigningAlg:
# skipSubjectCheck: Prüfung deaktivieren, ob der vom UserInfo-Endpunkt zurückgegebene Claim `sub`
# mit dem Claim `sub` des ID-Token übereinstimmt.
# Nur für nicht konforme oder veraltete OIDC-Anbieter auf true setzen.
# Standard: false
skipSubjectCheck: false
# requireVerifiedEmail: Vom OIDC-Anbieter verlangen, Profil-E-Mail-Adressen vor der Kontoverknüpfung oder Profilsynchronisierung als verifiziert zu kennzeichnen.
# Empfohlen, wenn der Anbieter einen zuverlässigen Claim `email_verified` bereitstellt.
# Einige Anbieter lassen diesen Claim aus, sofern keine bestimmten Scopes oder Mapper konfiguriert sind.
# Standard: true
requireVerifiedEmail: true
# allowPrivateIpAvatarDownload: OIDC-Avatar-Downloads aus privaten oder internen IP-Bereichen zulassen.
# Nur auf true setzen, wenn der OIDC-Anbieter vertrauenswürdige interne Avatar-URLs zurückgibt.
# Standard: false
allowPrivateIpAvatarDownload: false
applications:
users:
# showUngroupedUsers: Benutzer ohne Gruppe global für Standardbenutzer und Administratoren sichtbar machen.
# Gastkonten sind von dieser globalen Sichtbarkeit ausgeschlossen, sowohl als aufgelistete Konten als auch als Anfragende.
# Standard: `true`
showUngroupedUsers: true
files:
# erforderlich
dataPath: '/home/sync-in-data'
# maxUploadSize: Maximale Größe einer durch Uploads, WebDAV, Synchronisierung, Remote-Downloads oder Editor-Callbacks empfangenen Datei in Byte.
# Standard: 5368709120 (5 GB)
maxUploadSize: 5368709120
contentIndexing:
# Indizierung von Dateiinhalten für die Suche aktivieren (eine Deaktivierung schaltet die Volltextsuche aus)
# Standard: true
enabled: true
ocr:
# OCR für PDF-Dateien aktivieren
# Standard: true
enabled: true
# Von tesseract.js verwendete OCR-Sprachen
# Unterstützt dreibuchstabige ISO-639-2/T-Codes: 'eng', 'spa', 'fra', 'deu' usw.
# Beispiele: `[eng,fra]`, `[fra]`
# Standard: [eng]
languages: [eng]
# Offline-Modus: Keine OCR-Sprachen herunterladen, sondern nur lokale Sprachdateien aus dem integrierten OCR-Ordner verwenden
# Zum Herunterladen von Sprachen dieses Schema verwenden: https://cdn.jsdelivr.net/npm/@tesseract.js-data/<lang>@1.0.0/4.0.0_best_int/<lang>.traineddata.gz
# Standard: false
offline: false
# Pfad zu lokalen OCR-Sprachdateien
# Wird verwendet, wenn der Offline-Modus aktiviert ist oder um den Standardspeicherort zu überschreiben
# Standard: integriertes OCR-Verzeichnis
languagesPath:
# Aufbewahrungsdauer des Papierkorbs in Tagen. Legen Sie jeden Wert auf eine Anzahl von Tagen fest, um die automatische Papierkorbbereinigung zu aktivieren.
# Auf `false` oder `0` setzen, um die Bereinigung für den jeweiligen Speichertyp zu deaktivieren.
# Standard: users/spaces false
trashRetention:
users: false
spaces: false
# Optionale Dokumentgruppen, die im Dialog "Neues Dokument" angezeigt werden.
# Optionen: `microsoft` | `opendocument` | `drawio`
# [] verwenden, um nur Text, Markdown und Andere anzuzeigen
# Standard: [opendocument, microsoft, drawio]
sampleDocuments: [opendocument, microsoft, drawio]
editors:
onlyoffice:
# OnlyOffice-Integration aktivieren
# Standard: false
enabled: false
# Für JWT-Token verwendetes Geheimnis. Es muss mit dem auf dem OnlyOffice-Server konfigurierten Geheimnis übereinstimmen.
# erforderlich
secret:
# Wenn kein externer Server konfiguriert ist, wird der lokale Nginx-Dienst der Docker-Compose-Konfiguration verwendet.
# Wenn ein externer Server konfiguriert ist, wird stattdessen dieser verwendet.
# Hinweis: Stellen Sie bei Verwendung eines externen Servers (z. B.: https://onlyoffice.domain.com) sicher, dass er vom Client oder Browser erreichbar ist.
# Standard: null
externalServer:
# Bei Verwendung von HTTPS auf `true` setzen.
# Standard: false
verifySSL: false
eurooffice:
# Euro-Office-Integration aktivieren
# Standard: false
enabled: false
# Für JWT-Token verwendetes Geheimnis. Es muss mit dem auf dem Euro-Office-Server konfigurierten Geheimnis übereinstimmen.
# erforderlich
secret:
# Wenn ein externer Server konfiguriert ist, wird dieser verwendet.
# Hinweis: Stellen Sie sicher, dass er vom Client oder Browser erreichbar ist.
# Standard: null
externalServer:
# Bei Verwendung von HTTPS auf `true` setzen.
# Standard: false
verifySSL: false
collabora:
# Collabora-Online-Integration aktivieren
# Standard: false
enabled: false
# Wenn kein externer Server konfiguriert ist, wird der lokale Nginx-Dienst der Docker-Compose-Konfiguration verwendet.
# Wenn ein externer Server konfiguriert ist, wird stattdessen dieser verwendet.
# Hinweis: Stellen Sie bei Verwendung eines externen Servers (z. B.: https://collabora.domain.com) sicher, dass er vom Client oder Browser erreichbar ist.
# Standard: null
externalServer:
drawio:
# draw.io-Integration aktivieren
# Standard: false
enabled: false
# Wenn nicht festgelegt, wird der lokale Docker-Compose-Dienst über Nginx verwendet.
# Wenn festgelegt, wird stattdessen diese externe URL verwendet; sie muss vom Client oder Browser erreichbar sein.
# Für einen externen draw.io-Server einen eigenen Ursprung verwenden.
# Beispiel: https://drawio.domain.com
# Standard: null
externalServer:
# Konfiguration des Client-Anwendungs-Repositorys (Anwendungsebene, nicht applications.files)
appStore:
# Repository: `public` | `local`
# Standard: `public`
repository: public