Zum Hauptinhalt springen

draw.io

Bereitstellung und Konfiguration von draw.io als optionaler Docker-Compose-Dienst.

📋 Voraussetzungen​

Der gebündelte draw.io-Dienst wird über den Nginx-Reverse-Proxy verfügbar gemacht. Stattdessen kann ein externer draw.io-Server konfiguriert werden, der weder den lokalen Container noch dessen Nginx-Include benötigt.

⚡ Aktivierung​

Befolgen Sie diese Schritte, um draw.io lokal mit der Sync-in-Docker-Compose-Konfiguration auszuführen.

Nginx-Konfiguration​

Entkommentieren Sie in ./config/nginx/nginx.conf das draw.io-Include am Ende der Datei:

include drawio.conf;

Stellen Sie in ./config/nginx/docker-compose.nginx.yaml sicher, dass die draw.io-Konfiguration im Nginx-Container gemountet ist:

services:
nginx:
volumes:
- ./drawio.conf:/etc/nginx/drawio.conf

Der bereitgestellte drawio.conf macht den Dienst unter /drawio/ verfügbar und fügt den CORS-Header hinzu, der für den lokalen Sandbox-Iframe erforderlich ist. Behalten Sie diesen Header bei, wenn Sie die Proxy-Konfiguration anpassen.

Docker Compose-Konfiguration​

Entkommentieren Sie in docker-compose.yaml die erforderlichen Docker Compose-Dateien:

include:
- ./config/nginx/docker-compose.nginx.yaml
- ./config/drawio/docker-compose.drawio.yaml

Der draw.io-Container lauscht im Docker-Netzwerk auf Port 8080. Beim Zugriff über Nginx muss kein Host-Port veröffentlicht werden.

Sync-in-Konfiguration​

Aktivieren Sie in environment.yaml die draw.io-Integration:

server:
# Derzeit optional; in der nächsten Hauptversion erforderlich
publicUrl: 'https://sync-in.domain.com'
applications:
files:
editors:
drawio:
enabled: true
Info

Führen Sie docker compose up -d && docker compose restart nginx sync_in aus, um die Änderungen zu übernehmen.

🌐 Zugriff​

Mit dem lokalen Dienst lädt der Browser draw.io aus dem Pfad /drawio/ auf der öffentlichen Sync-in-URL. Setzen Sie server.publicUrl auf die genaue Adresse, die für den Zugriff auf Sync-in verwendet wird, einschließlich aller nicht standardmäßigen Ports. Wenn die Option weggelassen wird, verwendet Sync-in den von Nginx weitergeleiteten Anforderungsursprung als Kompatibilitäts-Fallback.

Um stattdessen eine vorhandene draw.io-Bereitstellung zu verwenden, binden Sie weder den lokalen draw.io-Compose-Dienst noch drawio.conf ein. Konfigurieren Sie die über den Browser zugängliche URL wie folgt:

applications:
files:
editors:
drawio:
enabled: true
externalServer: 'https://drawio.my-domain.com'

Verwenden Sie zur Isolierung einen dedizierten Ursprung für einen externen draw.io-Server, anstatt ihn vom Sync-in-Ursprung aus bereitzustellen. Sync-in fügt den konfigurierten Ursprung automatisch seiner Inhaltssicherheitsrichtlinie hinzu; es ist keine manuelle CSP-Anweisung erforderlich.

Unterstützte Formate​

  • Die Dateien .drawio und .dwb können direkt angezeigt und bearbeitet werden.
  • Die Dateien .vsdx und .gliffy können geöffnet werden, ohne die Quelldatei zu ändern. Beim Speichern von Änderungen fragt Sync-in nach einem Namen und erstellt eine neue .drawio-Datei im selben Verzeichnis.

Sync-in verwendet eine exklusive Dateisperre beim Bearbeiten nativer draw.io-Dateien.