selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

GitHub
excalidraw-self-hosted logo

Self-host excalidraw-self-hosted

Docker Compose stack for self-hosted Excalidraw

BetaOpen SourceMIT
Docker ComposeCompose file & guide
docker-compose up -d
Updatedlast year
Setup difficultyAdvanced
Stars
168
Ports
80 (Excalidraw frontend (app)), 8080 (Storage backend API), 8081 (Mongo Express admin interface)
Requires
MongoDB, Traefik

What is excalidraw-self-hosted?

excalidraw-self-hosted is a docker-compose configuration that packages everything needed to run Excalidraw collaboratively on your own infrastructure. It combines a modified Excalidraw frontend (alswl/excalidraw fork) with an HTTP storage backend (alswl/excalidraw-storage-backend), the official Excalidraw room server for real-time collaboration, MongoDB for persistence, and mongo-express for database administration. The stack is designed to run behind Traefik as a reverse proxy with automatic HTTPS. Users configure hostnames and credentials via an .env file, then deploy with docker-compose up. Current limitations include no support for exporting to Excalidraw+ workspaces and no self-hosted workspace solution.

Should you self-host excalidraw-self-hosted?

excalidraw-self-hosted scores 40/100 on selfhost.directory (how scoring works) and ranks #9 of 9 in Whiteboarding. It has 168 GitHub stars.

There was no stable release in the past 12 months, so check the repository's recent activity before you rely on it.

Setup is advanced: plan for several services and some ongoing maintenance. It is MIT-licensed.

Its closest alternative on selfhost.directory is excalidraw (91/100, 134 745 stars). It scores higher overall, so compare the two before you pick. See excalidraw-self-hosted vs excalidraw side by side.

Features

  • Database admin interface
  • Export to Excalidraw+No self-hosted workspace solution available
  • Real-Time Collaboration
  • Self-hosted storage
  • Tracking disabled

excalidraw-self-hosted README

How to install excalidraw-self-hosted

Install excalidraw-self-hosted with Docker Compose

Docker / Docker Compose, A traefik setup with a configured https entrypoint
Environment variables
APP_HOST, ROOM_HOST, STORAGE_BACKEND_HOST, TRAEFIK_LABEL_ID, TRAEFIK_NETWORK_NAME, TRAEFIK_ENTRYPOINT, DB_USER, DB_PASS, DB_VOLUME_PATH, MONGOEXPRESS_HOST, MONGOEXPRESS_USER, MONGOEXPRESS_PASS

Clone this repository: git clone git@github.com:Someone0nEarth/excalidraw-self-hosted.git

Create a copy of the env-example: cp .env-example .env and modifying the .env with your values.

Pull the images and start the containers: docker-compose up -d

Requires existing Traefik setup with HTTPS entrypoint

How to configure excalidraw-self-hosted

  • APP_HOSTHostname for the Excalidraw application

    Hostname for the Excalidraw application

  • DB_PASSMongoDB root password

    MongoDB root password

  • DB_USERMongoDB root username

    MongoDB root username

  • DB_VOLUME_PATHHost path for MongoDB data volume

    Host path for MongoDB data volume

  • MONGOEXPRESS_HOSTHostname for mongo-express admin interface

    Hostname for mongo-express admin interface

  • MONGOEXPRESS_PASSMongo Express basic auth password

    Mongo Express basic auth password

  • MONGOEXPRESS_USERMongo Express basic auth username

    Mongo Express basic auth username

  • ROOM_HOSTHostname for the collaboration room server

    Hostname for the collaboration room server

  • STORAGE_BACKEND_HOSTHostname for the storage backend API

    Hostname for the storage backend API

  • TRAEFIK_ENTRYPOINTTraefik HTTPS entrypoint name

    Traefik HTTPS entrypoint name

  • TRAEFIK_LABEL_IDLabel identifier for Traefik routing

    Label identifier for Traefik routing

  • TRAEFIK_NETWORK_NAMEDocker network name for Traefik

    Docker network name for Traefik

More in Whiteboarding

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…