Railway

Deploy Excalidraw

Persistent collaborative whiteboard with a hand-drawn visual style.

Deploy Excalidraw

/app/data

Deploy and Host Excalidraw on Railway

Deploy on Railway

Published on the Railway marketplace: https://railway.com/deploy/excalidraw-1

Excalidraw is an open-source virtual whiteboard for sketching diagrams, workflows, and ideas with a hand-drawn visual style. This deployment uses Excalidraw Persist to add server-side SQLite storage, multiple boards, images, libraries, archive handling, and shareable edit or read-only board links.

About Hosting Excalidraw

This Railway deployment runs one pinned Excalidraw Persist container. Nginx serves the browser interface on port 80 and proxies /api to the bundled Node.js server on port 4000. A Railway volume mounted at /app/data retains the SQLite database across restarts and redeployments. No external database, collaboration server, or environment-variable input is required. Version 0.18.0-persist.7 supports shareable edit and read-only board links, but upstream does not provide a separate real-time collaboration service in this image. The application also has no built-in authentication or rate limiting, so exposing it publicly allows anonymous access to its board-management and write APIs.

Common Use Cases

  • Sketching architecture, workflows, wireframes, and meeting notes on persistent boards
  • Sharing a board through an edit or read-only link
  • Hosting a lightweight multi-board visual workspace without an external database

Dependencies for Excalidraw Hosting

  • A persistent Railway volume mounted at /app/data for the SQLite database
  • No external database or additional Railway service

Deployment Dependencies

Implementation Details

  • Image: ghcr.io/ozencb/excalidraw-persist:0.18.0-persist.7@sha256:8c86a50d299cdcd27e178e80e7567479bf9b6c5eb62d08abbbfcd5ddba60bc26
  • Public port: 80
  • Health check: /api/health
  • Persistent storage: /app/data (/app/data/database.sqlite inside the container)
  • Variables: none; the image sets PORT=4000, NODE_ENV=production, and DB_PATH=/app/data/database.sqlite
  • Sharing: unguessable share IDs can grant edit or read-only board access; this is not evidence of a dedicated real-time synchronization service

Anonymous-write and acceptable-use warning: The pinned image has no supported authentication variables, access-control middleware, or rate limiter. Its owner-facing board list, create, update, delete, file, library, and share-link endpoints are anonymous, and CORS is unrestricted. A public deployment can be modified, erased, or abused by anyone who reaches its domain, potentially consuming storage or compute. Do not store private or sensitive data, monitor usage, and operate the deployment in accordance with the Railway Acceptable Use Policy. Put an authenticated access proxy in front of the service before relying on access restrictions. This published one-service template intentionally does not claim to provide that protection.

This is a community deployment template and is not affiliated with or endorsed by Excalidraw or the Excalidraw Persist maintainer.

Why Deploy Excalidraw on Railway?

Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.

By deploying Excalidraw on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.


Template Content

More templates in this category

View Template
Rocky Linux
[Jul'26] Hosted Rocky Linux 9 workspace with SSH and persistent storage. 🚀

codestorm
31
View Template
Foundry Virtual Tabletop
A Self-Hosted & Modern Roleplaying Platform

Lucas
71
View Template
Letta Code Remote
Run a Letta Code agent 24/7. No inbound ports, just deploy.

Letta
51