Skip to content
Greffon
Tutorial

Self-Host Excalidraw with Greffon

A whiteboard for sketching diagrams, on a box you own. Excalidraw grafts onto a greffer in minutes. The one honest catch: by default, your drawings live in the browser, not on the server.

GLGreffon Labs5 min read
~/blog/self-host-excalidraw

Excalidraw is a virtual whiteboard for hand-drawn-style diagrams: boxes, arrows, flowcharts, the kind of quick sketch you would otherwise scribble on a meeting room wall. The public excalidraw.com is great, but if you would rather your diagrams never touch someone else's servers, self-hosting puts the app on a machine you own. Grafting it onto a greffer takes minutes, and there is one honest detail worth getting straight up front: where the drawings are actually stored.

Why own the whiteboard

The self-hosted Excalidraw image is the same editor as the hosted site, served from your own greffer instead of a public domain. For sketches that touch internal architecture, account names, or anything you would rather not paste into a third-party site, running your own copy means the app and its assets sit on hardware you control. It is a lightweight, browser-only app, so it asks very little of the greffer it runs on.

Graft it from the catalog

You do not hand-write a compose file or wire a reverse proxy. Pick Excalidraw from the catalog and graft it onto your greffer. Greffon issues the certificate and routes the app, so it comes up reachable over HTTPS from the first start. There is nothing to configure: no admin password, no database, no environment variables to set. It is one of the simplest greffons in the catalog.

Where your drawings live

This is the part that surprises people, and it is the most important thing to understand before you rely on a self-hosted Excalidraw. The self-hosted image is a static, browser-only app. There is no backend, no database, and no server-side storage. Your drawings live in your browser's local storage, on the device you drew them on.

The server does not hold your drawings
Because there is no server-side state, clearing your browser data, using a different device, or switching browsers means you will not see the same canvas. To move work between machines, use Excalidraw's built-in Save to file (it exports an .excalidraw file) and open it elsewhere. Treat those exported files as the thing you actually back up.

This also changes what backups mean for this greffon. There is no server-side volume to snapshot, so a backup tool on the greffer would have nothing of yours to capture. The data that matters is the .excalidraw files you export, which live on your own machine. Back those up the way you back up any other document. (For greffons that do keep server-side data, native backups are coming in M2; until then the usual answer is bring-your-own with restic or borgbackup. Excalidraw simply does not need it.)

Reach it from anywhere

On the same network as your greffer, the whiteboard works the moment it starts. To reach it from elsewhere, you have two honest options. Excalidraw is a plain HTTP app, so both apply cleanly.

The simplest is tunnel mode: a greffer connects outbound to the manager's tunnel and serves its apps without opening a single inbound port, which is the answer for a box behind NAT or CGNAT with no public IP. If you would rather expose the greffer directly, port forwarding plus dynamic DNS still works. Either way the whiteboard stays reachable over HTTPS.

No live collaboration in this image
The self-hosted image is the solo editor. Real-time collaboration on excalidraw.com runs through a separate collaboration server that this catalog greffon does not include. Self-hosted Excalidraw is for your own sketching, not a shared multiplayer canvas.

Resources and always-on

Excalidraw is about as light as a greffon gets: it is an nginx process serving static files, with all the actual work happening in your browser. It will run comfortably on a small greffer alongside other apps without noticeably moving the needle on memory or CPU.

Because there is no state on the server, restarts are cheap and you do not risk losing data when the greffer reboots (your drawings are in your browser regardless). That said, if you want the whiteboard reachable whenever you reach for it, run it on an always-on greffer rather than a laptop that sleeps. A small VPS, a mini-PC, or a free Oracle Cloud box is a fine home for it.

FAQ

Where are my drawings saved?
In your browser's local storage on the device you drew them on. The self-hosted image has no backend or database. To move work between devices, use Save to file to export an .excalidraw file and open it on the other machine.
Do I need to set up a database or admin password?
No. Excalidraw is a static, browser-only app. There is nothing to configure: no database, no admin account, no environment variables. Graft it and it comes up ready over HTTPS.
Can I collaborate in real time like on excalidraw.com?
Not with this image. Live collaboration relies on a separate collaboration server that the catalog greffon does not include. The self-hosted version is the solo editor.
What should I back up?
The .excalidraw files you export, which live on your own machine. There is no server-side state to snapshot, so back those files up the way you back up any other document.
GL
Greffon Labs
We build Greffon, the simplest way to turn any machine into a server you own.

Ready to turn on your greffer?

Install in minutes. Deploy each app in seconds. Your server, your apps.

Read the docs