{"id":11559,"date":"2024-09-15T00:01:00","date_gmt":"2024-09-14T22:01:00","guid":{"rendered":"https:\/\/u-labs.de\/portal\/?p=11559"},"modified":"2024-09-15T00:14:21","modified_gmt":"2024-09-14T22:14:21","slug":"virtuelles-whiteboard-mit-excalidraw","status":"publish","type":"post","link":"https:\/\/u-labs.de\/portal\/virtuelles-whiteboard-mit-excalidraw\/","title":{"rendered":"Virtuelles Whiteboard: Handgezeichnete Skizzen\/Diagramme mit Excalidraw"},"content":{"rendered":"<p>Ein Bild sagt mehr als tausend Worte &#8211; das gilt um so mehr bei IT und Technik, wo uns eine Zeichnung die Zusammenh\u00e4nge oft am besten aufzeigen kann. Excalidraw kann dabei helfen: Die kostenfreie &amp; quelloffene Software hat sich auf Diagramme spezialisiert, die wie Handgezeichnet aussehen. Aber eben, ohne Handgezeichnet zu sein, wodurch neue Herausforderungen entstehen w\u00fcrden.<\/p>\n<p>Dieser Beitrag stellt Excalidraw vor und zeigt, wie du damit (wahlweise handgezeichnete) Diagramme oder Skizzen erstellst. Auch der eigenst\u00e4ndige Betrieb auf Basis von Docker ist enthalten.<\/p>\n<h2 class=\"wp-block-heading\">Excalidraw sieht handgezeichnet aus, ohne von Hand zeichnen zu m\u00fcssen<\/h2>\n<p>Daf\u00fcr verwendet man vorgefertigte Objekte wie z.B. K\u00e4sten und Linien, die optisch wie handgezeichnet aussehen. So hat man dieses Aussehen, das ja durchaus seinen eigenen Stil und Charme hat &#8211; aber eben mit fertigen Elementen. Die wurden einmal angelegt und sehen garantiert vern\u00fcnftig aus, unabh\u00e4ngig von den Zeichenk\u00fcnsten des Nutzers. Selbst wenn diese vorhanden sind, erspart man sich teure\/inkompatible spezielle Hardware. Oder alternativ den Weg der Digitalisierung.<\/p>\n<h2 class=\"wp-block-heading\">Cloud ist m\u00f6glich, aber ohne Zwang<\/h2>\n<p>An sich ist das keine neue Idee, es gibt verschiedene Dienste, die so etwas anbieten. Entsprechend des Trends zu mehr Abh\u00e4ngigkeit und damit Umsatz sind es jedoch oft propriet\u00e4re Webanwendungen. Excalidraw versucht hier zumindest einen Mittelweg zu finden, in dem es eine Basisversion kostenfrei und als quelloffene Software jedem frei zur Verf\u00fcgung stellt. Man kann den Dienst also selbst betreiben und ist damit unabh\u00e4ngig von Clouddiensten. Wer das nicht m\u00f6chte, hat alternativ auch die M\u00f6glichkeit, den offiziell gehosteten Dienst zu verwenden.<sup data-fn=\"6eeafa58-ada2-43f1-823f-7d7cb5b9313c\" class=\"fn\"><a href=\"#6eeafa58-ada2-43f1-823f-7d7cb5b9313c\" id=\"6eeafa58-ada2-43f1-823f-7d7cb5b9313c-link\">1<\/a><\/sup> Damit ist man zwar vom Anbieter abh\u00e4ngig, kann jedoch eine Abogeb\u00fchr vermeiden. Kurzum l\u00e4sst man dem Nutzer die Wahl zwischen Cloud und selbst hosten.<\/p>\n<p>Ein Teil der Funktionen ist allerdings in der kostenfreien OS-Version nicht enthalten. Dies betrifft vor allem die Zusammenarbeit mit anderen, folgendes Bildschirmfoto zeigt einen Auszug.<sup data-fn=\"e2863d84-aa4e-4ab3-b2ef-fae118a05bf5\" class=\"fn\"><a href=\"#e2863d84-aa4e-4ab3-b2ef-fae118a05bf5\" id=\"e2863d84-aa4e-4ab3-b2ef-fae118a05bf5-link\">2<\/a><\/sup> Wer also beispielsweise mit Kollegen gemeinsam zeichnen m\u00f6chte oder Folien f\u00fcr eine Pr\u00e4sentation in der Schule\/Uni vorbereitet, muss mit Einschr\u00e4nkungen rechnen.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/11\/grafik-8.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"308\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/11\/grafik-8-1024x308.png\" alt=\"\" class=\"wp-image-11560\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/11\/grafik-8-1024x308.png 1024w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/11\/grafik-8-300x90.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/11\/grafik-8-768x231.png 768w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/11\/grafik-8-640x192.png 640w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/11\/grafik-8-566x170.png 566w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/11\/grafik-8.png 1221w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/div>\n<h2 class=\"wp-block-heading\">Was kann Excalidraw?<\/h2>\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/11\/excalidraw-demo-ulabs.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"499\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/11\/excalidraw-demo-ulabs-1024x499.png\" alt=\"\" class=\"wp-image-11562\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/11\/excalidraw-demo-ulabs-1024x499.png 1024w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/11\/excalidraw-demo-ulabs-300x146.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/11\/excalidraw-demo-ulabs-768x374.png 768w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/11\/excalidraw-demo-ulabs-1536x748.png 1536w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/11\/excalidraw-demo-ulabs-640x312.png 640w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/11\/excalidraw-demo-ulabs-349x170.png 349w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/11\/excalidraw-demo-ulabs.png 1907w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<p>Dennoch ist die kostenfreie Version durchaus n\u00fctzlich, um beispielsweise ansprechende Schaubilder zu erstellen. Die Leiste im oberen Bereich enth\u00e4lt die wichtigsten daf\u00fcr n\u00f6tigen Werkzeuge: Mit der Hand l\u00e4sst sich das Board verschieben. So m\u00fcsst ihr euch keine Gedanken darum machen, wo ihr platztechnisch als n\u00e4chstes weiter macht. Auch bei gr\u00f6\u00dferen Zeichnungen ist das hilfreich zur Navigation. Hier macht es ggf. zus\u00e4tzlich Sinn, links unten mit dem Zoom die Ansicht zu vergr\u00f6\u00dfern oder verkleinern.<\/p>\n<p>Der Zeiger erm\u00f6glicht die Auswahl &amp; Anpassung von Objekten, welche sich rechts daneben befinden: Rechtecke, Kreise und andere Formate stehen bereit. Sie lassen sich mit Pfeilen und Linien verbinden, auch Text kann eingef\u00fcgt werden. Wer mutig ist, kann \u00fcber den Stift frei Hand zeichnen. Hat man einen Fehler gemacht, hilft der Radiergummi &#8211; oder alternativ die <code class=\"\" data-line=\"\">[ENTF]<\/code> Taste, nachdem mit dem Auswahlwerkzeug das Objekt angeklickt wurde. Alle Werkzeuge lassen sich alternativ mit der Tastatur ansteuern, etwa die 1 f\u00fcr ein Rechteck. Meist stehen die Tasten rechts unten im Eck. Sie erscheinen (mit alternativen Belegungen) zudem, wenn man die Maus darauf bewegt.<\/p>\n<p>Ein Teil ist in das \u00dcberhangmen\u00fc (letzter Knopf mit drei geometrischen Figuren) gewandert: Das <em>Frame Tool<\/em> kann einen Kasten erzeugen, um Elemente sichtbar zu gruppieren. Ich habe ihn im Beispiel oben f\u00fcr die Box <em>Docker Container<\/em> eingesetzt. Das ist aber nicht nur ein optisches Element. Alle Elemente in einem solchen Rahmen lassen sich geb\u00fcndelt verschieben, ohne sie einzeln mit gedr\u00fcckter <code class=\"\" data-line=\"\">[STRG] <\/code>Taste anklicken zu m\u00fcssen.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/11\/grafik-11.png\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"162\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/11\/grafik-11.png\" alt=\"\" class=\"wp-image-11566\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/11\/grafik-11.png 600w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/11\/grafik-11-300x81.png 300w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/a><\/figure>\n<\/div>\n<p>F\u00fcr einige Werkzeuge (etwa die Formen) erscheint nach der Aktivierung links eine Box mit zus\u00e4tzlichen Einstellungen. So kann beispielsweise die Hintergrundfarbe und Art der F\u00fcllung bearbeitet werden oder die Ecken lassen sich scharfkantig statt abgerundet darstellen. Wem der h\u00e4ndische Zeichenstil zu spielerisch wirkt, der kann unter <em>Sloppiness<\/em> diesen in drei Stufen ver\u00e4ndern. Ganz links verschwindet er komplett.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/11\/grafik-9.png\"><img loading=\"lazy\" decoding=\"async\" width=\"876\" height=\"267\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/11\/grafik-9.png\" alt=\"\" class=\"wp-image-11564\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/11\/grafik-9.png 876w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/11\/grafik-9-300x91.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/11\/grafik-9-768x234.png 768w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/11\/grafik-9-640x195.png 640w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/11\/grafik-9-558x170.png 558w\" sizes=\"auto, (max-width: 876px) 100vw, 876px\" \/><\/a><\/figure>\n<\/div>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/11\/grafik-10.png\"><img loading=\"lazy\" decoding=\"async\" width=\"413\" height=\"271\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/11\/grafik-10.png\" alt=\"\" class=\"wp-image-11565\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/11\/grafik-10.png 413w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/11\/grafik-10-300x197.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/11\/grafik-10-259x170.png 259w\" sizes=\"auto, (max-width: 413px) 100vw, 413px\" \/><\/a><\/figure>\n<\/div>\n<p>M\u00f6chte man Elemente verbinden, muss man den Pfeil nur bis in die N\u00e4he des Objektes bewegen, bis ein schwacher Rahmen erscheint. Wird nun geklickt, verankert Excalidraw den Pfeil, sodass eine Verbindung entsteht. Die Software verschiebt sie dadurch automatisch, wenn man die Boxen bewegt.<\/p>\n<p>Praktisch: H\u00e4lt man die <code class=\"\" data-line=\"\">[Shift]<\/code> Taste gedr\u00fcckt, wird der Winkel nicht mehr 100% frei platziert, sondern in etwas gr\u00f6\u00dferen Schritten. Die standardm\u00e4\u00dfige freie Platzierung ist zwar flexibel, macht es aber schwieriger, mehrere Pfeile im gleichen horizontalen\/vertikalen Winkel zu zeichnen. Man muss genau hinschauen, ob man ein paar Pixel zu weit links\/rechts ist. Durch die <code class=\"\" data-line=\"\">[Shift]<\/code> Taste wird das erleichtert.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/11\/grafik-12.png\"><img loading=\"lazy\" decoding=\"async\" width=\"176\" height=\"230\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/11\/grafik-12.png\" alt=\"\" class=\"wp-image-11567\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/11\/grafik-12.png 176w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/11\/grafik-12-130x170.png 130w\" sizes=\"auto, (max-width: 176px) 100vw, 176px\" \/><\/a><\/figure>\n<\/div>\n<p>Grafiken sind ebenfalls kein Problem, verschiedene Formate inklusive SGV lassen sich per Drag &amp; Drop auf die Arbeitsfl\u00e4che ziehen. Vergr\u00f6\u00dfern und verkleinern geschieht automatisch proportional. F\u00fcr die meisten F\u00e4lle ist das sicher hilfreich. Falls im Einzelfall doch mal etwas unproportional angepasst werden sollte, habe ich daf\u00fcr allerdings keine M\u00f6glichkeit gefunden &#8211; auch <code class=\"\" data-line=\"\">[SHIFT]\/[STRG]<\/code> gedr\u00fcckt halten hilft nicht.<\/p>\n<h2 class=\"wp-block-heading\">Bibliotheken bringen mehr vorgefertigte Objekte<\/h2>\n<p>Mit diesen grundlegenden Werkzeugen kann man einfache Diagramme erstellen oder komplexere Dinge selbst zeichnen. Letzteres ist m\u00fchsam, praktischerweise gibt es Bibliotheken (<em>Libraries<\/em>): Jede Instanz hat seine eigene, standardm\u00e4\u00dfig ohne Inhalt. Jeder kann eigene Objekte erstellen, in einer Bibliothek b\u00fcndeln und unter libraries.excalidraw.com anderen kostenfrei zur Verf\u00fcgung stellen. Dort finden sich zahlreiche, meist handgezeichnete Grafiken von eigenen Symbolen \u00fcber bekannten Logos bis hin zu GPIO-Ports des Raspberry Pi oder einer Arduino Uno Platine. Manche enthalten nur eine Hand voll Elemente, andere bis zu 50 St\u00fcck.<\/p>\n<p>Der Vorteil gegen\u00fcber h\u00e4ndisch eingef\u00fcgten Grafiken: Die Meisten sind selbst gezeichnet und passen daher besser zum Stil von Excalidraw. Au\u00dferdem lassen sich viele bearbeiten. Selbst wenn manche nicht ganz f\u00fcr den eigenen Zweck passen, ist das ggf. einfacher, als komplett selbst zu zeichnen.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/11\/grafik-14.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"759\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/11\/grafik-14-1024x759.png\" alt=\"\" class=\"wp-image-11570\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/11\/grafik-14-1024x759.png 1024w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/11\/grafik-14-300x222.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/11\/grafik-14-768x569.png 768w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/11\/grafik-14-486x360.png 486w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/11\/grafik-14-229x170.png 229w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/11\/grafik-14.png 1247w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/div>\n<h2 class=\"wp-block-heading\">Speichern und Exportieren<\/h2>\n<p>Die \u00c4nderungen speichert Excalidraw im Browser ab. Man kann den Reiter einfach schlie\u00dfen und sp\u00e4ter wieder aufrufen, um mit dem Stand weiterzuarbeiten, an dem aufgeh\u00f6rt wurde. Zum Arbeiten mag das in Ordnung sein. Sp\u00e4testens, wenn man eine weitere Grafik erstellen m\u00f6chte, muss die vorherige zuvor gespeichert werden &#8211; ansonsten geht ihr Inhalt beim Anlegen einer neuen Leinwand verloren.<\/p>\n<p>Wer auf Nummer Sicher gehen oder das fertige Bild exportieren m\u00f6chte, kann dies oben links \u00fcber das Hamburger Men\u00fc tun. Beim Speichern l\u00e4sst sich eine .excalidraw Datei herunterladen. Dabei handelt es sich um ein JSON-Dokument, in dem alle Objekte mit ihrer Position und Gr\u00f6\u00dfe definiert sind. Bilder werden Base64 kodiert eingebettet. Sie kann mit <em>Open<\/em> geladen werden. Serverseitiges abspeichern ist nur im Cloud-Abo mit Excalidraw+ m\u00f6glich. Alternativ l\u00e4sst sich auch mit der kostenfreien, selbst gehosteten Version an dieser Stelle zumindest ein Link erstellen, mit dem andere das Board lesend einsehen k\u00f6nnen.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/11\/grafik-13.png\"><img loading=\"lazy\" decoding=\"async\" width=\"293\" height=\"260\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/11\/grafik-13.png\" alt=\"\" class=\"wp-image-11569\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/11\/grafik-13.png 293w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2023\/11\/grafik-13-192x170.png 192w\" sizes=\"auto, (max-width: 293px) 100vw, 293px\" \/><\/a><\/figure>\n<\/div>\n<p>Vor dem Export k\u00f6nnen noch ein paar Einstellungen zu den Farben und dem Hintergrund festlegen. Besonders praktisch: Die Grafik kann auf bis zu 300% skaliert werden. Das ist hilfreich f\u00fcr gr\u00f6\u00dfere Zeichnungen, welche man vielleicht in eine Pr\u00e4sentation einbauen und zur besseren Lesbarkeit vergr\u00f6\u00dfern m\u00f6chte. Daf\u00fcr sollten ggf. eingebaute Bilder passend gew\u00e4hlt werden, am besten Vektorgrafiken.<\/p>\n<p>Mit <em>Embed scene<\/em> werden die Rohdaten zur Bearbeitung (das JSON-Dokument beim Speichern) an die Grafik angeheftet. F\u00fcr Anzeigeprogramme sind sie unsichtbar. Zum einbetten auf Webseiten ist das wenig sinnvoll, weil so die Datei unn\u00f6tig aufgebl\u00e4ht wird. Ansonsten hat das den Vorteil, dass die Grafik sichtbar ist: Die .excalidraw Datei l\u00e4sst sich nur durch den Import betrachten. Durch das Einbetten hat man eine Datei, welche mit jedem Bildprogramm angeschaut werden kann und auch im Dateiexplorer eine Vorschau besitzt. Zeitgleich sind darin alle f\u00fcr Excalidraw notwendigen Informationen enthalten, um sie Bearbeiten zu k\u00f6nnen. Das ist eine Alternative zur Verwendung von zwei getrennten Dateien.<\/p>\n<h2 class=\"wp-block-heading\">Zusammenarbeit mit anderen<\/h2>\n<p>Mittlerweile wurde eine Funktion eingebaut, um in Echtzeit mit anderen an einer Zeichnung arbeiten zu k\u00f6nnen. Ihr findet die Funktion im Hamburger Men\u00fc links oben:<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/08\/2024-09-13_18-10.avif\"><img loading=\"lazy\" decoding=\"async\" width=\"403\" height=\"230\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/08\/2024-09-13_18-10.avif\" alt=\"\" class=\"wp-image-13996\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/08\/2024-09-13_18-10.avif 403w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/08\/2024-09-13_18-10-300x171.avif 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/08\/2024-09-13_18-10-298x170.avif 298w\" sizes=\"auto, (max-width: 403px) 100vw, 403px\" \/><\/a><\/figure>\n<\/div>\n<p>Leider ist sie derzeit lediglich in der Cloud-Version verf\u00fcgbar, die von Excalidraw betrieben wird. In der selbst betriebenen fehlen die Funktionalit\u00e4ten zum Teilen &amp; mit anderen arbeiten.<sup data-fn=\"3d63bf15-3fa1-4dda-a739-0afe79422b09\" class=\"fn\"><a href=\"#3d63bf15-3fa1-4dda-a739-0afe79422b09\" id=\"3d63bf15-3fa1-4dda-a739-0afe79422b09-link\">3<\/a><\/sup> Neben dem <\/p>\n<h3 class=\"wp-block-heading\">Wir probieren es trotzdem<\/h3>\n<p>Dabei wird Ende-zu-Ende-Verschl\u00fcsselung genutzt. In Testumgebungen, die nur HTTP verwenden, lauert dadurch allerdings ein Fallstrick: Statt die Sitzung zu starten, passiert beim Klick auf den Knopf nichts. In der Browser-Konsole taucht dabei eine Fehlermeldung auf:<\/p>\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Uncaught (in promise) TypeError: window.crypto.subtle is undefined<\/p>\n<\/blockquote>\n<p>Dies liegt nicht an einer fehlenden oder unvollst\u00e4ndigen Unterst\u00fctzung im Browser, sondern ist in der Spezifikation der WebCrypto-Schnittstelle<sup data-fn=\"7976d4bf-9899-495b-b767-cb8ab5b44403\" class=\"fn\"><a href=\"#7976d4bf-9899-495b-b767-cb8ab5b44403\" id=\"7976d4bf-9899-495b-b767-cb8ab5b44403-link\">4<\/a><\/sup> so vorgesehen, wenn sie in einem <em>unsicheren Kontext<\/em> genutzt wird:<\/p>\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Note: In the spec, crypto.subtle is supposed to be undefined in insecure contexts, whereas in Chrome it is defined however any operation on it fails with NotSupportedError.<\/p>\n<\/blockquote>\n<p>Dabei scheint localhost ausgenommen zu sein. Wer allerdings beispielsweise einen Testserver im lokalen Netz verwendet, kann keine Live-Sitzung starten. Hierf\u00fcr muss eine Umgebung mit HTTPS verwendet werden. Kostenfreie Zertifikate bietet die freie Zertifizierungsstelle Let&#8217;s Encrypt. Sie ist z.B. <a href=\"https:\/\/u-labs.de\/portal\/traefik-auf-server-raspberry-pi-installieren-und-einrichten-reverse-proxy-fuer-docker-mit-lets-encrypt-https-zertifikaten\/\" data-type=\"post\" data-id=\"8870\">im auf Docker optimierten Reverse Proxy Traefik integriert<\/a>.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/08\/2024-09-13_18-58.avif\"><img loading=\"lazy\" decoding=\"async\" width=\"500\" height=\"446\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/08\/2024-09-13_18-58.avif\" alt=\"\" class=\"wp-image-13997\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/08\/2024-09-13_18-58.avif 500w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/08\/2024-09-13_18-58-300x268.avif 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/08\/2024-09-13_18-58-404x360.avif 404w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/08\/2024-09-13_18-58-191x170.avif 191w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><\/figure>\n<\/div>\n<p>Nachdem dieses Problem gel\u00f6st ist, verbindet sich Excalidraw allerdings weiterhin zum Websocket-Server aus deren Cloud &#8211; oder besser gesagt versucht es. Aufgrund von Beschr\u00e4nkungen durch CORS kann es ohnehin nicht funktionieren. Derzeit fehlt noch die M\u00f6glichkeit, den Websocket-Server selbst zu betreiben und die Adresse f\u00fcr die Anwendung setzen zu k\u00f6nnen &#8211; schade. Allerdings betont das Team, man arbeite daran. Ein Zeithorizont ist derzeit nicht bekannt. <\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/08\/2024-09-13_19-06.avif\"><img loading=\"lazy\" decoding=\"async\" width=\"842\" height=\"74\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/08\/2024-09-13_19-06.avif\" alt=\"\" class=\"wp-image-13998\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/08\/2024-09-13_19-06.avif 842w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/08\/2024-09-13_19-06-300x26.avif 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/08\/2024-09-13_19-06-768x67.avif 768w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/08\/2024-09-13_19-06-640x56.avif 640w\" sizes=\"auto, (max-width: 842px) 100vw, 842px\" \/><\/a><\/figure>\n<\/div>\n<h2 class=\"wp-block-heading\">Installation<\/h2>\n<p>Auf X86-Systemen k\u00f6nnt ihr das offizielle Image verwenden.<sup data-fn=\"f7677a79-6a73-4d1b-b69c-eace40d199f9\" class=\"fn\"><a href=\"#f7677a79-6a73-4d1b-b69c-eace40d199f9\" id=\"f7677a79-6a73-4d1b-b69c-eace40d199f9-link\">5<\/a><\/sup> Dies besitzt allerdings keine Tags mit semantischer Versionierung, sodass <a href=\"https:\/\/u-labs.de\/portal\/docker-container-automatisch-mit-watchtower-aktualisieren-alles-was-du-zu-haendischen-manuellen-updates-von-docker-containern-images-wissen-solltest\/\" data-type=\"post\" data-id=\"8907\">automatische Aktualisierungen (z.B. per Watchtower)<\/a> nur \u00fcber den &#8222;latest&#8220; Tag m\u00f6glich sind. Dabei verliert ihr jedoch die Kontrolle.<\/p>\n<p>Die <code class=\"\" data-line=\"\">docker-compose.yml<\/code> f\u00e4llt sehr \u00fcberschaubar aus und ben\u00f6tigt nur wenige MB an Ressourcen, da die Dateiverarbeitung komplett im Browser erfolgt. Auf dem Server wird lediglich der schlanke Nginx Webserver gestartet.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/08\/2024-08-25_22-37.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"53\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/08\/2024-08-25_22-37-1024x53.png\" alt=\"\" class=\"wp-image-13680\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/08\/2024-08-25_22-37-1024x53.png 1024w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/08\/2024-08-25_22-37-300x16.png 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/08\/2024-08-25_22-37-768x40.png 768w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/08\/2024-08-25_22-37-640x33.png 640w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/08\/2024-08-25_22-37.png 1062w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n<\/div>\n<p>Folgendes Beispiel macht den Dienst auf Port 5000 erreichbar. Dieser kann frei angepasst werden. Zur produktiven Nutzung empfiehlt sich <a href=\"https:\/\/u-labs.de\/portal\/traefik-auf-server-raspberry-pi-installieren-und-einrichten-reverse-proxy-fuer-docker-mit-lets-encrypt-https-zertifikaten\/\" data-type=\"post\" data-id=\"8870\">ein Reverse Proxy wie Traefik<\/a>, der die Nutzung sprechender DNS-Namen wie z.B. Subdomains erm\u00f6glicht.<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-yaml\" data-line=\"\">services:\n  excalidraw:\n    image: excalidraw\/excalidraw:latest\n    ports:\n      - 5000:80\n    restart: always\n    mem_limit: 128MB<\/code><\/pre>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">docker compose up<\/code><\/pre>\n<p>Alternativ kann das Image selbst gebaut werden. Auf diesem Weg l\u00e4sst sich Excalidraw auch auf dem Raspberry Pi und anderen ARM-Systemen betreiben: Das Projekt setzt auf NodeJS und ist damit grunds\u00e4tzlich plattformunabh\u00e4ngig. Daher hat bereits jemand versucht, die Images \u00fcber einen Pull-Request auch f\u00fcr die ARM-Architektur zu erstellen.<sup data-fn=\"d13627e5-2951-4618-a9c0-7005a1df9b5f\" class=\"fn\"><a href=\"#d13627e5-2951-4618-a9c0-7005a1df9b5f\" id=\"d13627e5-2951-4618-a9c0-7005a1df9b5f-link\">6<\/a><\/sup> Dieser ist bisher offen, da es zu verschiedenen Problemen gekommen ist: So sind die Buildjobs recht langsam &amp; es fehlt an Docker-Erfahrung.<\/p>\n<pre class=\"wp-block-prismatic-blocks\"><code class=\"language-bash\" data-line=\"\">git clone https:\/\/github.com\/excalidraw\/excalidraw.git\ncd excalidraw\ndocker compose up<\/code><\/pre>\n<p>Erreichbar ist der Dienst anschlie\u00dfend \u00fcber http:\/\/serverIp:3000.<\/p>\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><a href=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/08\/Bildschirmfoto_2024-08-25_22-26-23.avif\"><img loading=\"lazy\" decoding=\"async\" width=\"991\" height=\"850\" src=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/08\/Bildschirmfoto_2024-08-25_22-26-23.avif\" alt=\"\" class=\"wp-image-13678\" srcset=\"https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/08\/Bildschirmfoto_2024-08-25_22-26-23.avif 991w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/08\/Bildschirmfoto_2024-08-25_22-26-23-300x257.avif 300w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/08\/Bildschirmfoto_2024-08-25_22-26-23-768x659.avif 768w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/08\/Bildschirmfoto_2024-08-25_22-26-23-420x360.avif 420w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/08\/Bildschirmfoto_2024-08-25_22-26-23-198x170.avif 198w, https:\/\/u-labs.de\/portal\/wp-content\/uploads\/2024\/08\/Bildschirmfoto_2024-08-25_22-26-23-210x180.avif 210w\" sizes=\"auto, (max-width: 991px) 100vw, 991px\" \/><\/a><\/figure>\n<\/div>\n<h2 class=\"wp-block-heading\">Fazit<\/h2>\n<p>In wenigen Minuten hat man mit Excalidraw ein ansprechendes Schaubild erstellt &#8211; das wahlweise mehr, weniger oder gar nicht nach handgezeichnet aussieht. Egal wof\u00fcr man sich entscheidet: Auch der schlechteste Zeichner kann etwas ansprechend aussehendes zusammen klicken. Auch Designentw\u00fcrfe sind m\u00f6glich, etwa eine erste Aufteilung von Benutzeroberfl\u00e4chen oder Webseiten. Schon in der kostenfreien Version l\u00e4sst sich einiges machen, die zudem selbst betrieben werden kann und quelloffen ist.<\/p>\n<p>Beim arbeiten habe ich wenig vermisst. Die M\u00f6glichkeit zur Zusammenarbeit k\u00f6nnte f\u00fcr einige sicher praktisch sein. Schade, dass dies derzeit lediglich in der Cloudversion verf\u00fcgbar ist. Es w\u00e4re schon, wenn dies zeitnah auch auf der selbst betriebenen verf\u00fcgbar ist. Zum selbst verwenden ist  Excalidraw bereits eine Empfehlung wert. Ich habe es bereits in vielen Beitr\u00e4gen genutzt: Etwa <a href=\"https:\/\/u-labs.de\/portal\/raspberry-pi-kaufberatung-das-solltest-du-vor-dem-kauf-wissen\/\">der Kaufberatung f\u00fcr Mini-PCs &amp; Raspberry Pis<\/a>, die <a href=\"https:\/\/u-labs.de\/portal\/youtube-will-werbeblocker-zerstoren-werbung-direkt-im-video\/\">Verdeutlichung von YouTubes neuer Anti-Werbeblocker Strategie f\u00fcr Sponsorblocks<\/a>, oder der <a href=\"https:\/\/u-labs.de\/portal\/sichere-sicherungen-mit-borg\/\">Sicherung mit Borg<\/a> sind nur einige Beispiele.<\/p>\n<h2 class=\"wp-block-heading\">Quellen<\/h2>\n<ol class=\"wp-block-footnotes\">\n<li id=\"6eeafa58-ada2-43f1-823f-7d7cb5b9313c\">https:\/\/excalidraw.com\/ <a href=\"#6eeafa58-ada2-43f1-823f-7d7cb5b9313c-link\" aria-label=\"Zur Fu\u00dfnotenreferenz 1 navigieren\">\u21a9\ufe0e<\/a><\/li>\n<li id=\"e2863d84-aa4e-4ab3-b2ef-fae118a05bf5\">https:\/\/plus.excalidraw.com\/excalidraw-plus-vs-excalidraw\/ <a href=\"#e2863d84-aa4e-4ab3-b2ef-fae118a05bf5-link\" aria-label=\"Zur Fu\u00dfnotenreferenz 2 navigieren\">\u21a9\ufe0e<\/a><\/li>\n<li id=\"3d63bf15-3fa1-4dda-a739-0afe79422b09\">https:\/\/docs.excalidraw.com\/docs\/introduction\/development <a href=\"#3d63bf15-3fa1-4dda-a739-0afe79422b09-link\" aria-label=\"Zur Fu\u00dfnotenreferenz 3 navigieren\">\u21a9\ufe0e<\/a><\/li>\n<li id=\"7976d4bf-9899-495b-b767-cb8ab5b44403\">https:\/\/www.chromium.org\/blink\/webcrypto\/ <a href=\"#7976d4bf-9899-495b-b767-cb8ab5b44403-link\" aria-label=\"Zur Fu\u00dfnotenreferenz 4 navigieren\">\u21a9\ufe0e<\/a><\/li>\n<li id=\"f7677a79-6a73-4d1b-b69c-eace40d199f9\">https:\/\/github.com\/excalidraw\/excalidraw <a href=\"#f7677a79-6a73-4d1b-b69c-eace40d199f9-link\" aria-label=\"Zur Fu\u00dfnotenreferenz 5 navigieren\">\u21a9\ufe0e<\/a><\/li>\n<li id=\"d13627e5-2951-4618-a9c0-7005a1df9b5f\">https:\/\/github.com\/excalidraw\/excalidraw\/pull\/3937 <a href=\"#d13627e5-2951-4618-a9c0-7005a1df9b5f-link\" aria-label=\"Zur Fu\u00dfnotenreferenz 6 navigieren\">\u21a9\ufe0e<\/a><\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Ein Bild sagt mehr als tausend Worte &#8211; das gilt um so mehr bei IT und Technik, wo uns eine Zeichnung die Zusammenh\u00e4nge oft am besten aufzeigen kann. Excalidraw kann dabei helfen: Die kostenfreie &amp; quelloffene Software hat sich auf Diagramme spezialisiert, die wie Handgezeichnet aussehen. Aber eben, ohne Handgezeichnet zu sein, wodurch neue Herausforderungen &#8230;<\/p>\n","protected":false},"author":5,"featured_media":14010,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"[{\"content\":\"https:\/\/excalidraw.com\/\",\"id\":\"6eeafa58-ada2-43f1-823f-7d7cb5b9313c\"},{\"content\":\"https:\/\/plus.excalidraw.com\/excalidraw-plus-vs-excalidraw\/\",\"id\":\"e2863d84-aa4e-4ab3-b2ef-fae118a05bf5\"},{\"content\":\"https:\/\/docs.excalidraw.com\/docs\/introduction\/development\",\"id\":\"3d63bf15-3fa1-4dda-a739-0afe79422b09\"},{\"content\":\"https:\/\/www.chromium.org\/blink\/webcrypto\/\",\"id\":\"7976d4bf-9899-495b-b767-cb8ab5b44403\"},{\"content\":\"https:\/\/github.com\/excalidraw\/excalidraw\",\"id\":\"f7677a79-6a73-4d1b-b69c-eace40d199f9\"},{\"content\":\"https:\/\/github.com\/excalidraw\/excalidraw\/pull\/3937\",\"id\":\"d13627e5-2951-4618-a9c0-7005a1df9b5f\"}]"},"categories":[78],"tags":[960,961],"class_list":["post-11559","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-software","tag-open-source-2","tag-quelloffene-software"],"_links":{"self":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts\/11559","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/comments?post=11559"}],"version-history":[{"count":17,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts\/11559\/revisions"}],"predecessor-version":[{"id":14015,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/posts\/11559\/revisions\/14015"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/media\/14010"}],"wp:attachment":[{"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/media?parent=11559"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/categories?post=11559"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/u-labs.de\/portal\/wp-json\/wp\/v2\/tags?post=11559"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}