Self-hosting Excalidraw the easy way

Self-hosting Excalidraw the easy way

Yulei Chen - Content-Engineerin bei sliplane.ioYulei Chen
4 min

Excalidraw 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.

SliplaneDeploy Excalidraw >
  1. Click the deploy button above
  2. Select a project
  3. Select a server. If you just signed up you get a 48-hour free trial server
  4. 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/excalidraw image from Docker Hub
  • Uses the rolling latest tag, 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 .excalidraw files 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:

ProvidervCPU CoresRAMDiskEstimated Monthly CostNotes
Sliplane22 GB40 GB€9charge per server
Render12 GB40 GB~$35–$45VM Small
Fly.io22 GB40 GB~$20–$25VM + volume
Railway22 GB40 GB~$15–$66Usage-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.

Self-host Excalidraw now - It's easy!

Sliplane gives you all the tools you need to run your own Excalidraw instance without server hassle.