ExcaliDash

Create a self-hosted dashboard to organize your Excalidraw drawings. Enable real-time collaboration, multi-user authentication, and scoped sharing for your team.

ExcaliDash provides a self-hosted dashboard to organize and manage all your Excalidraw drawings. It transforms the simple whiteboarding tool into a powerful, collaborative environment that you control on your own infrastructure. This is ideal for teams and individuals who need persistent storage and better organization for their visual notes, diagrams, and sketches.

Key features include:

  • Real-time Collaboration: Work with multiple users on the same drawing simultaneously.
  • Persistent Storage: All your drawings are saved and stored on your server, so you never lose your work.
  • Multi-User Authentication: Supports local email/password logins and can integrate with OIDC providers like Authentik or Keycloak for secure access.
  • Scoped Sharing: Share drawings internally with other users or externally via secure links.
  • Powerful Organization: Search your drawings and use drag-and-drop to organize them into collections.
  • Easy Backups: Export and import your drawings using a non-proprietary .excalidraw format, ensuring you always own your data.

The entire system is designed to be deployed easily using Docker, giving you full control over your collaborative whiteboarding setup.

Directory Structure

excalidash
data
.env
docker-compose.yml

docker-compose.yml

services:
  excalidash:
    image: ghcr.io/zimengxiong/excalidash:latest
    container_name: excalidash
    restart: unless-stopped
    ports:
      - 3000:3000
    environment:
      - DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db:5432/${POSTGRES_DB}
      - NEXTAUTH_SECRET=${NEXTAUTH_SECRET}
      - NEXTAUTH_URL=http://localhost:3000
    depends_on:
      - db

  db:
    image: postgres:15-alpine
    container_name: excalidash-db
    restart: unless-stopped
    environment:
      - POSTGRES_USER=${POSTGRES_USER}
      - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
      - POSTGRES_DB=${POSTGRES_DB}
    volumes:
      - ./data/db:/var/lib/postgresql/data

.env

POSTGRES_USER=excalidash
POSTGRES_PASSWORD=your_secure_password
POSTGRES_DB=excalidash
NEXTAUTH_SECRET=generate_a_random_secret_string_here

Share:

Ad
Favicon

 

  
 

Similar to ExcaliDash

Favicon

 

  
  
Favicon

 

  
  
Favicon