alswl / excalidraw-collaboration

excalidraw with collaboration feature, self-hosting, and only one-click deploy
MIT License
360 stars 62 forks source link
collaboration diagramming excalidraw self-hosting

excalidraw-collaboration

Demo:

demo on Railway

One click to deploy your excalidraw with collaboration.

Deploy on Railway

Snapshot:

snapshot

Related docs:

Deploy (Basic)

Clone, and run:

git clone git@github.com:alswl/excalidraw-collaboration.git
cd excalidraw-collaboration/basic

docker-compose up # run the containers

open "http://localhost" # open browser, and you can using the collbration functions

Browse it:

About public network release:

if you want to release your own excalidraw in public network, you should modify the docker-compose.yaml file, Replace the VITE_APP_HTTP_STORAGE_BACKEND_URL and VITE_APP_WS_SERVER_URL with your own domain.

Advanced mode

advanced-nginx

Features:

traefik (not part of this repo)

A configurable docker-compose example for a traefik setup can be found here:

https://github.com/Someone0nEarth/excalidraw-self-hosted

Roadmap

Upgrade Guide

Q & A

How to deploy on the cloud(aws etc)

The docker-compose.yaml file is for local deploy, if you want to deploy on the cloud, you should prepare 2 Load Balancer(with HTTPS cert), one for websocket server, one for storage server.

The VITE_APP_HTTP_STORAGE_BACKEND_URL is for the Load Balancer URL(HTTPS) for storage, and the VITE_APP_WS_SERVER_URL is for the Load Balancer URL(HTTPS) for websocket.

Here is a conversation about how to deploy on the aws: https://github.com/alswl/excalidraw-collaboration/issues/22

generateKey problem

Error message:

TypeError: Cannot read properties of undefined (reading 'generateKey')

Why: The excalidraw is using crypto module of Javascript, the HTTPS is required.

How to solve: use HTTPS to access the page, or use http://localhost instead.

Contributors