Skip to content

About

Create and organize your Excalidraw boards on your own hardware.

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

ExcaliHome Logo

ExcaliHome

Self-hosted Excalidraw board manager

Create and organize your Excalidraw boards on your own hardware.


Tech stack

Layer Technology
Backend Node.js + Express.js
Frontend React + Vite + Excalidraw
UI Tailwind CSS
Database SQLite via Drizzle ORM
Container Docker (single container)

Running with Docker

docker run -d \
  -p 3000:3000 \
  -v ./data:/app/data \
  ghcr.io/lukanrocks/excalihome:latest

Or with Docker Compose:

docker compose up -d

The app starts on http://localhost:3000. On first run, the database schema is initialized automatically. All data is persisted in the mounted /app/data volume.

Local development

# Install all dependencies
pnpm install

# Start backend and web in watch mode
pnpm dev

The API server runs on port 3001 and the Vite dev server on port 5173 by default.

Database migrations

The schema lives in apps/backend/src/db/schema.ts. After changing it, generate a migration with:

pnpm db:generate

Pending migrations are applied automatically when the server starts.

License

ExcaliHome is released under the MIT License.


⭐ If you find ExcaliHome useful, please consider giving it a star!

Stars

Made with 💛 for the homelabbing community

About

Create and organize your Excalidraw boards on your own hardware.

Resources

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages