Excalidraw
Virtual whiteboard for sketching hand-drawn diagrams.
Overview
Excalidraw is an open-source virtual whiteboard application that enables collaborative sketching of hand-drawn style diagrams directly in the browser. Originally created by Vjeux at Facebook, Excalidraw gained popularity for its unique ability to produce professional-looking diagrams with a natural, sketched aesthetic that feels more approachable than traditional rigid diagramming tools. The application supports real-time collaboration, making it ideal for remote teams conducting brainstorming sessions, system architecture discussions, or educational presentations.
This Docker deployment runs the self-hosted version of Excalidraw, giving you complete control over your whiteboard data and eliminating dependency on external services. The containerized setup ensures consistent performance across different environments while maintaining the full feature set of the web application, including collaborative editing, extensive shape libraries, and multiple export formats. Unlike the cloud version, this deployment keeps all diagrams and collaboration data within your infrastructure.
This configuration is perfect for organizations requiring data sovereignty, educational institutions needing reliable access without internet dependencies, and development teams wanting to integrate diagramming capabilities into their existing Docker infrastructure. The lightweight nature of Excalidraw makes it suitable for everything from personal home labs to enterprise deployments supporting hundreds of concurrent users.
Key Features
- Hand-drawn aesthetic rendering engine that converts precise inputs into natural-looking sketched diagrams
- Real-time collaborative editing with live cursor tracking and conflict resolution
- Extensive built-in shape library including flowchart elements, arrows, geometric shapes, and freehand drawing tools
- Multi-format export capabilities supporting PNG, SVG, and JSON with customizable resolution and transparency options
- Infinite canvas with smooth pan and zoom functionality for large-scale diagram creation
- Local file system integration for saving and loading diagram files without cloud dependencies
- Keyboard shortcut support for rapid diagram creation and element manipulation
- Layer management system with grouping, locking, and ordering controls for complex diagrams
Common Use Cases
- 1Software architecture brainstorming sessions where teams need to quickly sketch system designs and data flows
- 2Educational institutions conducting remote learning sessions with interactive whiteboard functionality
- 3Product management teams creating user journey maps and feature wireframes during sprint planning
- 4Engineering teams documenting network topologies and infrastructure designs with a more approachable visual style
- 5Design thinking workshops where participants need to collaborate on process flows and concept mapping
- 6Technical presentations where hand-drawn aesthetics make complex concepts more digestible to non-technical audiences
- 7Home lab documentation where enthusiasts want to map their server configurations and network setups
Prerequisites
- Docker Engine 20.10 or higher with Docker Compose v2 support
- Minimum 512MB RAM allocation for the container, 1GB recommended for multiple concurrent users
- Port 3000 available on the host system for web interface access
- Modern web browser with HTML5 Canvas and WebRTC support for full collaborative features
- Basic understanding of web application deployment and reverse proxy configuration if using custom domains
- Network connectivity between client browsers for real-time collaboration features to function properly
For development & testing. Review security settings, change default credentials, and test thoroughly before production use. See Terms
docker-compose.yml
docker-compose.yml
1services: 2 excalidraw: 3 image: excalidraw/excalidraw:latest4 container_name: excalidraw5 restart: unless-stopped6 ports: 7 - "3000:80".env Template
.env
1# No configuration neededUsage Notes
- 1Access at http://localhost:3000
- 2Hand-drawn style diagrams
- 3Export to PNG/SVG
Quick Start
terminal
1# 1. Create the compose file2cat > docker-compose.yml << 'EOF'3services:4 excalidraw:5 image: excalidraw/excalidraw:latest6 container_name: excalidraw7 restart: unless-stopped8 ports:9 - "3000:80"10EOF1112# 2. Create the .env file13cat > .env << 'EOF'14# No configuration needed15EOF1617# 3. Start the services18docker compose up -d1920# 4. View logs21docker compose logs -fOne-Liner
Run this command to download and set up the recipe in one step:
terminal
1curl -fsSL https://docker.recipes/api/recipes/excalidraw/run | bashTroubleshooting
- Canvas not rendering or appearing blank: Clear browser cache and ensure hardware acceleration is enabled in browser settings
- Collaboration features not working between users: Verify WebRTC is not blocked by corporate firewalls and browsers have camera/microphone permissions
- Export functions failing or producing corrupted files: Increase container memory allocation and check browser popup blockers
- Slow performance with large diagrams: Reduce canvas zoom level and break complex diagrams into smaller components
- Unable to save diagrams locally: Check browser download permissions and ensure sufficient local storage quota
- Container fails to start on port 3000: Verify no other services are using the port and check Docker daemon logs for binding conflicts
Community Notes
Loading...
Loading notes...
Download Recipe Kit
Get all files in a ready-to-deploy package
Includes docker-compose.yml, .env template, README, and license
Ad Space
Shortcuts: C CopyF FavoriteD Download