PatWie / excalidraw-complete

Effortlessly self-host Excalidraw with a single Go binary. Supports multiple storage options and real-time collaboration.
16 stars 4 forks source link
canvas collaboration excalidraw whiteboard

Excalidraw Complete: A Self-Hosted Solution

Excalidraw Complete simplifies the deployment of Excalidraw, bringing an all-in-one solution to self-hosting this versatile virtual whiteboard. Designed for ease of setup and use, Excalidraw Complete integrates essential features into a single Go binary. This solution encompasses:

The project goal is to alleviate the setup complexities traditionally associated with self-hosting Excalidraw, especially in scenarios requiring data persistence and collaborative functionalities.

Installation

To get started, download the latest release binary:

# Visit https://github.com/PatWie/excalidraw-complete/releases/ for the download URL
wget <binary-download-url>
chmod +x excalidraw-complete
./excalidraw-complete

Once launched, Excalidraw Complete is accessible at localhost:3002, ready for drawing and collaboration.

Configuration

Excalidraw Complete adapts to your preferences with customizable storage solutions, adjustable via the STORAGE_TYPE environment variable:

These flexible configurations ensure Excalidraw Complete fits seamlessly into your existing setup, whether on-premise or in the cloud.

Building from Source

Interested in contributing or customizing? Build Excalidraw Complete from source with these steps:

# Clone and prepare the Excalidraw frontend
git clone https://github.com/PatWie/excalidraw-complete.git --recursive
cd excalidraw
# git checkout tags/v0.17.3
# Fix docker build
git remote add jcobol https://github.com/jcobol/excalidraw
git fetch jcobol
git checkout 7582_fix_docker_build
git apply ../frontend.patch
cd ../
docker build -t exalidraw-ui-build excalidraw -f ui-build.Dockerfile
docker run -v ${PWD}/:/pwd/ -it exalidraw-ui-build cp -r /frontend /pwd

Compile the Go application:

go build -o excalidraw-complete main.go

Start the server:

./excalidraw-complete

Excalidraw Complete is now running on your machine, ready to bring your collaborative whiteboard ideas to life.


Excalidraw is a fantastic tool, but self-hosting it can be tricky. I welcome your contributions to improve Excalidraw Complete — be it through adding new features, improving existing ones, or bug reports.