Excalidraw auf dem Synology NAS installieren: kollaboratives Whiteboard
Excalidraw als quelloffenes Whiteboard auf dem Synology NAS installieren: ein Container im Container Manager, HTTPS über den DSM-Reverse-Proxy, Updates per Digest und die Grenzen bei Speicherung und Live-Kollaboration.
Geprüft am 30.09.2026 · für excalidraw 0.18.1
WerbelinksMit * markierte Links sind Werbelinks: Bei einem Kauf erhalten wir eine Provision, der Preis bleibt gleich. Als Amazon-Partner verdiene ich an qualifizierten Verkäufen. Mehr dazu

Excalidraw ist ein quelloffenes Whiteboard für Skizzen, Architekturentwürfe und Workshops. Es steht unter MIT-Lizenz und ist damit auch kommerziell nutzbar. Der Container liefert eine rein statische Web-App über nginx aus: kein Backend, keine Datenbank, keine Volumes. Diese Anleitung zeigt die Installation im Container Manager eines Synology NAS, HTTPS über den DSM-Reverse-Proxy und die Grenzen beim selbst gehosteten Betrieb.
Voraussetzungen
- Synology NAS mit Container Manager (x86_64 oder ARM64, z. B. DS224+, DS923+) und mindestens 2 GB RAM
- DSM 7.2 oder neuer mit installiertem und aktiviertem Container Manager (Paket-Zentrum)
- Internetzugang vom NAS für den Image-Download
- Freier Host-Port, hier 3000
- Optional für HTTPS: eigene Domain oder DynDNS-Eintrag plus Let's-Encrypt-Zertifikat in DSM
Schritt 1: Eckdaten und Compose-Datei verstehen
Das Image entsteht in zwei Stufen: Node.js baut die React-App, nginx:stable-alpine-slim liefert die statischen Dateien aus. Deshalb ist es klein und braucht im Betrieb unter 50 MB RAM.
| Parameter | Wert | Hinweis |
|---|---|---|
| Image | excalidraw/excalidraw:latest@sha256:… | Aktuell nur latest gepflegt; festgelegt per Digest |
| Container-Port | 80/tcp (nginx) | Intern immer 80; Host-Port frei wählbar |
| Host-Port (empfohlen) | 3000 | Beliebiger freier Port |
| Volumes | Keine | Rein statische App; kein Ordner unter /volume1/docker nötig |
| RAM-Bedarf | < 50 MB | Nginx liefert nur statische Dateien aus |
| Architektur | amd64, arm64, arm/v7 | Multi-Arch-Image auf Docker Hub |
| Lizenz | MIT | Kommerzieller Einsatz erlaubt |
Umgebungsvariablen braucht der Container nicht: NODE_ENV wird beim Build festgelegt, zur Laufzeit hat sie keine Wirkung. VITE_APP_WS_SERVER_URL betrifft nur einen eigenen Build mit lokalem Kollaborationsserver (siehe Häufige Fragen).
Diese compose.yaml verwenden Sie im nächsten Schritt:
services:
excalidraw:
image: excalidraw/excalidraw:latest@sha256:f7ee194addd607bf831d2af0f0a34463dd4225e426cf35199ef0b12a803398e9
container_name: excalidraw
restart: unless-stopped
ports:
- "3000:80"
healthcheck:
test: ["CMD", "wget", "-q", "-O", "/dev/null", "http://localhost"]
interval: 30s
timeout: 10s
retries: 3
Der Healthcheck nutzt wget wie der offizielle Dockerfile; das Basisimage enthält kein curl. Der Digest nach @ legt die Image-Version fest (Stand Mai 2026, Excalidraw 0.18.x). Den aktuellen Digest zeigt Docker Hub beim Tag latest.
Verifizieren: Im Container Manager unter „Container“ nutzt kein anderer Container Port 3000. Ist er belegt, ändern Sie den Host-Port, z. B. "3765:80".
Schritt 2: Compose-Projekt im Container Manager anlegen
Legen Sie in der File Station nur den Ordner /docker/excalidraw für die Compose-Datei an. Grundlagen zu Projekten im Container Manager erklärt Container Manager: Docker-Compose-Projekt anlegen, starten und aktualisieren.
- Öffnen Sie im DSM den Container Manager, klicken Sie links auf Projekt und dann auf Erstellen.
- Vergeben Sie den Projektnamen
excalidraw(Kleinbuchstaben). - Wählen Sie als Pfad
/volume1/docker/excalidraw. - Fügen Sie die
compose.yamlaus Schritt 1 ein. - Klicken Sie auf Weiter, prüfen Sie die Zusammenfassung und starten Sie das Projekt mit Fertig.
Der Container Manager lädt das Image und startet den Container.
Verifizieren: Unter „Projekt“ zeigt excalidraw nach spätestens einer Minute Wird ausgeführt, der Container wird als gesund angezeigt, und das Protokoll enthält die nginx-Startmeldung ohne Fehler.
Schritt 3: Erreichbarkeit im Browser prüfen
Rufen Sie auf einem Gerät im lokalen Netz auf:
http://<NAS-IP>:3000
Ersetzen Sie <NAS-IP> durch die IP-Adresse Ihres NAS (z. B. 192.168.1.50). Es erscheint eine leere Zeichenfläche mit Werkzeugleiste.
Testen Sie das Speichern:
- Zeichnen Sie ein Rechteck.
- Wählen Sie im Menü oben links Speichern unter und speichern Sie die
.excalidraw-Datei. - Laden Sie die Seite neu: Die Zeichnung bleibt im LocalStorage erhalten.
- Im privaten Modus ist die Zeichnung nicht vorhanden (anderer LocalStorage).
Verifizieren: Oberfläche lädt, Zeichnen und Export funktionieren. Bleibt die Seite leer, ist der Container noch nicht gestartet; laden Sie nach einigen Sekunden neu.
Schritt 4: DSM-Firewall für Port 3000 freigeben
Ist die DSM-Firewall aktiv, erlauben Sie Port 3000 TCP nur aus dem lokalen Netz. Leiten Sie Port 3000 nie im Router weiter; Zugriff von außen nur über den Reverse Proxy in Schritt 5. Das Vorgehen beschreibt DSM-Firewall: Ports für Docker-Container freigeben. Für Excalidraw konkret:
- Systemsteuerung → Sicherheit → Firewall → Regel hinzufügen
- Protokoll: TCP, Port: 3000, Quelle: Ihr lokales Netz (z. B.
192.168.1.0/24), Aktion: Erlauben
Verifizieren: Ein zweites Gerät im LAN (z. B. Smartphone im WLAN) erreicht http://NAS-IP:3000.
Schritt 5: HTTPS über den DSM-Reverse-Proxy einrichten (optional, aber empfohlen)
Ohne HTTPS fehlen Browser-Funktionen, die einen sicheren Kontext verlangen, etwa „Als PNG in die Zwischenablage kopieren“ und die Installation als PWA. Für den Zugriff von außen und den vollen Funktionsumfang richten Sie HTTPS ein.
Der DSM-eigene Reverse Proxy (Systemsteuerung → Anmeldeportal → Erweitert → Reverse Proxy) reicht dafür aus:
- Klicken Sie auf Erstellen und vergeben Sie den Namen
excalidraw. - Quellprotokoll: HTTPS, Quellhost: Ihre Domain (z. B.
draw.example.com), Quellport: 443. - Zielprotokoll: HTTP, Zielhost: localhost, Zielport: 3000.
- Speichern Sie und weisen Sie unter Systemsteuerung → Sicherheit → Zertifikat → Einstellungen dem Eintrag ein Let's-Encrypt-Zertifikat zu.
Hinweis: Für einen eigenen Kollaborationsserver (excalidraw-room, siehe Häufige Fragen) braucht dessen Reverse-Proxy-Eintrag im Reiter „Benutzerdefinierter Header“ die Vorlage WebSocket.
Verifizieren: https://draw.example.com lädt ohne Zertifikatswarnung, und „Als PNG in die Zwischenablage kopieren“ funktioniert.
Schritt 6: Container aktuell halten
Docker Hub pflegt nur das Tag latest; die Versionsbindung erfolgt deshalb über den Digest. Für ein Update, etwa alle vier bis acht Wochen:
- Kopieren Sie auf Docker Hub beim Tag
latestden aktuellen Digest (sha256:…). - Container Manager → Projekt
excalidraw→ Aktion → Stoppen, dann Bearbeiten und den Digest in derimage:-Zeile ersetzen. - Speichern und das Projekt neu erstellen lassen; der Container Manager lädt das neue Image.
Benachrichtigungen über neue Images beschreibt Docker-Container automatisch aktualisieren nach dem Watchtower-Aus: Diun, WUD und Renovate im Vergleich.
Verifizieren: Das Projekt zeigt „Wird ausgeführt“, http://NAS-IP:3000 lädt die App, und unter Container → excalidraw → Details steht der neue Digest.
Troubleshooting / Typische Fehler
- Container „unhealthy“, obwohl er läuft: Der Healthcheck nutzt
curl, das im Image fehlt. Aufwgetwie in Schritt 1 umstellen, Projekt neu erstellen. bind: address already in use: Port 3000 ist belegt. Host-Port ändern, z. B.3765:80.- Zeichnung nach Browser-Neustart weg: Erwartet im privaten Modus oder nach Löschen der Websitedaten. Regelmäßig als
.excalidraw-Datei exportieren; serverseitiges Speichern gibt es nicht. - Live-Kollaboration funktioniert nicht lokal: Das Standard-Image nutzt dafür den öffentlichen Server von excalidraw.com; ohne Internetzugang des Browsers scheitert die Sitzung. Lokal geht es nur mit eigenem Build und
excalidraw-room(siehe Häufige Fragen). - „In Zwischenablage kopieren“ fehlt oder scheitert: Aufruf über HTTP. HTTPS nach Schritt 5 einrichten.
- Eigene Kollaborationssitzung synchronisiert nicht: Der Reverse Proxy leitet keine WebSocket-Header weiter. Im Eintrag für
excalidraw-roomdie Header-Vorlage „WebSocket“ ergänzen. - Kein Container Manager im Paket-Zentrum: Das Modell unterstützt Container Manager nicht (viele Einstiegsmodelle mit ARM-CPU). Das Image selbst gibt es für amd64, arm64 und arm/v7.
Häufige Fragen
Werden meine Zeichnungen auf dem NAS gespeichert?
Nein. Der Container liefert nur die App aus und speichert keine Daten. Zeichnungen liegen im LocalStorage des Browsers; nach Löschen der Websitedaten, im privaten Modus oder auf einem anderen Gerät fehlen sie. Sichern Sie über Speichern unter als .excalidraw-Datei oder exportieren Sie als PNG/SVG, z. B. auf eine Freigabe des NAS.
Funktioniert die Live-Kollaboration (geteilter Link) selbstgehostet?
Nicht mit dem Standard-Image: Es enthält eine beim Build festgelegte Adresse des öffentlichen Kollaborationsservers von excalidraw.com. Für rein lokale Zusammenarbeit brauchen Sie einen zweiten Container excalidraw/excalidraw-room hinter dem Reverse Proxy und einen eigenen Build des Haupt-Images mit VITE_APP_WS_SERVER_URL auf dessen HTTPS-Adresse. Die Variable lässt sich zur Laufzeit nicht nachträglich setzen.
Was ist der Unterschied zu draw.io auf dem Synology NAS?
draw.io (Diagrams.net) ist auf strukturierte Diagramme spezialisiert: Netzwerkpläne, Flowcharts, UML, ER-Diagramme – mit umfangreichen Shape-Bibliotheken und festen Verbindungslinien. Excalidraw ist auf freie, handgezeichnete Skizzen und kollaborative Workshops ausgerichtet: schnelle Ideen, Architekturskizzen im Entwurfsstadium, Brainstorming-Sessions. Für Netzwerkpläne ist draw.io die bessere Wahl (siehe draw.io auf dem Synology NAS installieren: Diagramme und Netzwerkpläne erstellen).
Kann ich Excalidraw in Outline (Team-Wiki) einbetten?
Outline kann Excalidraw-Zeichnungen über Links einbetten. Ob Ihre Outline-Version dabei auf eine selbst gehostete Excalidraw-Instanz verweisen kann, prüfen Sie in der Outline-Dokumentation. Outline selbst beschreibt Outline auf dem Synology NAS installieren: modernes Team-Wiki als Notion-Alternative.
Wie viele Ressourcen verbraucht der Container?
Unter 50 MB RAM und kaum CPU, da nginx nur statische Dateien ausliefert. Auf einem NAS mit 2 GB RAM läuft er neben weiteren Containern.
Kann ich die App als PWA auf dem Smartphone installieren?
Ja, über HTTPS bietet der Browser die Installation als PWA an. Die App funktioniert dann auch offline; gespeichert wird weiterhin nur im LocalStorage.
Welcher Host-Port ist der richtige: 3000 oder 3765?
Jeder freie Port ist möglich. Diese Anleitung nutzt 3000 wie die docker-compose.yml im offiziellen Repository.
Fazit
Excalidraw läuft auf dem Synology NAS als ein Container ohne Datenbank und Volumes. Zwei Einschränkungen sollten Ihre Benutzer kennen: Zeichnungen liegen im Browser und gehen ohne Export verloren, und die Live-Kollaboration nutzt im Standard-Image den öffentlichen Server von excalidraw.com. Für gemeinsame Skizzen mit Datei-Austausch reicht die Grundinstallation.
Weiterführende Anleitungen und Quellen
- draw.io auf dem Synology NAS installieren: Diagramme und Netzwerkpläne erstellen – strukturierte Netzwerk- und Flussdiagramme als Ergänzung zu Excalidraw
- Outline auf dem Synology NAS installieren: modernes Team-Wiki als Notion-Alternative – Excalidraw lässt sich nativ in Outline-Seiten einbetten
- Container Manager: Docker-Compose-Projekt anlegen, starten und aktualisieren – Grundlage für alle Compose-Projekte auf dem Synology NAS
- Docker-Container automatisch aktualisieren nach dem Watchtower-Aus – Diun, WUD und Renovate für automatische Update-Benachrichtigungen
Offizielle Quellen: Excalidraw auf Docker Hub · Excalidraw GitHub-Repository


