alswl / excalidraw-collaboration

excalidraw with collaboration feature, self-hosting, and only one-click deploy

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

excalidraw-collaboration

Demo:

demo on Railway

One click to deploy your excalidraw with collaboration.

Deploy on Railway

Snapshot:

snapshot

Related docs:

Deploy

Clone, and run:

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

docker-compose up # run the containers

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

Browse it:

  • open http://127.0.0.1/ ,and you will see the excalidraw page
  • Click the Live Collaboration button, and you will see the collaboration page
  • Now you can share the collaboration page with your friends, and you can draw together.

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.

Roadmap

  • self-host
  • collaboration feature works
  • docker-compose support
  • no pre-build image, dynamic env
  • upload Docker Hub image
  • S3 storage support
  • SSO support
  • HTTPS Demo and
  • HTTPS docs
  • Helm support
  • online demo
  • one click to deploy Railway

Upgrade Guide

  • v0.15.0 -> v0.16.1
    • replace REACT_APP_ env with VITE_APP_

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: #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.

About

excalidraw with collaboration feature, self-hosting, and only one-click deploy

License:MIT License