
Self-hosting Excalidraw the easy way
Yulei ChenExcalidraw is the go-to open-source virtual whiteboard for sketching hand-drawn style diagrams, flowcharts, and wireframes. The hosted version at excalidraw.com is free and great, but if you want full control over your boards, a custom domain, or a private instance for your team, self-hosting is the way.
Sliplane is a managed container platform that makes self-hosting painless. With one-click deployment, you can get Excalidraw up and running in minutes, no server setup, no reverse proxy config, no infrastructure to maintain.
Prerequisites
Before deploying, ensure you have a Sliplane account (free trial available).
Quick start
Sliplane provides one-click deployment with presets.
- Click the deploy button above
- Select a project
- Select a server. If you just signed up you get a 48-hour free trial server
- Click Deploy!
About the preset
The one-click deploy above uses Sliplane's Excalidraw preset. The preset is built for a clean, stable default setup:
- Official
excalidraw/excalidrawimage from Docker Hub - Uses the rolling
latesttag, since the upstream image doesn't publish versioned tags (see the Update section below) - Serves the static web app on port 80 inside the container
- Sliplane handles HTTPS, the domain, and health checks automatically
Excalidraw is a client-side app: boards live in your browser's local storage by default, so there is no database or persistent volume to worry about.
Next steps
Once Excalidraw is running on Sliplane, open the domain Sliplane provided (e.g. excalidraw-xxxx.sliplane.app). You should land directly on an empty canvas, ready to draw.
Saving your work
By default, Excalidraw auto-saves every drawing to your browser's local storage, so your canvas will still be there when you reopen the tab. For permanent storage you can:
- Export scenes to
.excalidrawfiles via File > Save to... - Export as PNG or SVG via File > Export image...
- Save to a cloud-synced folder using your browser's download settings
Collaboration
Real-time multiplayer collaboration (the "Live collaboration" button) requires a separate excalidraw-room WebSocket backend. The default excalidraw/excalidraw image does not ship with it. If you want collaboration, you can deploy excalidraw-room as a second Sliplane service and wire it up via the VITE_APP_WS_SERVER_URL build arg (requires a custom image build).
Custom domain
Want your boards on draw.mycompany.com? In the Sliplane dashboard, go to your service's Domains tab and add a custom domain. Sliplane will handle the TLS certificate automatically.
Logging
The Excalidraw container logs nginx access lines to STDOUT, which you can view directly in the Sliplane log viewer. For a deeper dive on working with container logs, check out our post on how to use Docker logs.
Updating
Excalidraw's Docker image doesn't use versioned tags, just a rolling latest. To pull the newest build, open your service and hit Redeploy. Because there's no pinned version, we strongly recommend testing updates on a second, throwaway service first so an upstream change doesn't catch you off guard. You can also browse the available image digests on Docker Hub.
Cost comparison
Of course you can also self-host Excalidraw with other cloud providers. Here is a pricing comparison for the most common ones:
| Provider | vCPU Cores | RAM | Disk | Estimated Monthly Cost | Notes |
|---|---|---|---|---|---|
| Sliplane | 2 | 2 GB | 40 GB | €9 | charge per server |
| Render | 1 | 2 GB | 40 GB | ~$35–$45 | VM Small |
| Fly.io | 2 | 2 GB | 40 GB | ~$20–$25 | VM + volume |
| Railway | 2 | 2 GB | 40 GB | ~$15–$66 | Usage-based |
FAQ
Where are my Excalidraw drawings stored?
In your browser's local storage, tied to the domain you're using. Clearing site data wipes them, so export any board you want to keep to a .excalidraw file via File > Save to....
Can I use my self-hosted Excalidraw offline?
Yes. Once you've loaded the app on your domain, it works fully offline for sketching. You only need network access to load the page the first time and when pulling updates.
How do I update Excalidraw?
The image publishes only a rolling latest tag. In your service settings hit Redeploy to pull the newest build. We recommend testing updates on a staging service first, since there's no semver to check against, just the latest nightly-ish build.
Can I enable live collaboration?
Not with the default image alone. Collaboration requires running the separate excalidraw-room WebSocket server and rebuilding the frontend with VITE_APP_WS_SERVER_URL pointing at it. It's doable on Sliplane by adding a second service, but it's a custom setup rather than a one-click deploy.
Does Excalidraw need a database?
No. The frontend image is a static web app, so there is nothing to back up on the server side. If you want shared, persistent boards, look at Excalidraw+ or solutions like Excalidraw Complete that add a real backend.