Self-hosted event coordination: spatial canvas + mobile app in one Docker container.
167
A spatial, touch-friendly event management platform designed for visual thinkers.
EventSpace transforms event coordination by combining a freeform spatial canvas with structured event logistics. Designed specifically for self-hosting on Unraid, Docker, and Docker Compose as a single unified container on port 3000, it hosts the complete solution in one container:
/)/companion)/api)@xyflow/react v12):
TaskNode: Checklists, subtasks, priority indicators, and native date picker badges.ChaserNode: Vendor liaisons, point-of-contact tracking, and follow-up deadlines.InfoNode: Meeting minutes, briefings, and structured bullet lists.NoteNode: Flexible text scratchpads and reference notes.PictureNode: High-resolution floor/stage photo cards with fullscreen lightbox and replace capability.AudioNode: Voice recording blocks with waveform player, seekbar, and client-side AI transcription + bullet-point summarization.eventspace-mobile hosted at /companion):
EventSpace builds both Vite apps into a single production Docker image. The internal Express engine serves everything seamlessly on port 3000:
| Path | Destination | Description |
|---|---|---|
/ | Web Canvas | Full desktop spatial dashboard and event workspace |
/companion | Mobile Companion | Lightweight, touch-first mobile app for floor management |
/mobile | Mobile Redirect | Convenience alias redirecting directly to /companion/ |
/api/* | REST API | Unified backend routes backed by SQLite in WAL mode |
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā EventSpace Unified Container (:3000) ā
ā ā
ā Desktop Browser āāāāāāāāāŗ http://<host>:3000/ ā
ā (Main Web Canvas) ā
ā ā
ā Mobile Phone / Tablet āāāŗ http://<host>:3000/companion ā
ā (Mobile Companion App) ā
ā ā
ā Companion API Sync āāāāāāŗ http://<host>:3000/api/* ā
ā (Express + Prisma + SQLite) ā
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
docker run -d \
--name eventspace \
--restart unless-stopped \
-p 3000:3000 \
-v /path/to/host/data:/app/data \
-e PUID=99 \
-e PGID=100 \
-e COMPANION_PIN=EVSP-9482 \
donotknock/eventspace:latest
http://<your-host-ip>:3000/http://<your-host-ip>:3000/companion/Create a docker-compose.yml file:
services:
eventspace:
image: donotknock/eventspace:latest
container_name: eventspace
restart: unless-stopped
ports:
- "3000:3000"
environment:
- PORT=3000
- NODE_ENV=production
- PUID=99
- PGID=100
- COMPANION_PIN=EVSP-9482
- DATABASE_URL=file:/app/data/eventspace.db
volumes:
- ./data:/app/data
Start the container:
docker compose up -d
EventSpace includes a pre-configured Unraid XML template (eventspace.xml):
eventspace.xml to /boot/config/plugins/dockerMan/templates-user/eventspace.xml).3000 (hosts / and /companion)/mnt/user/appdata/eventspace (mapped to /app/data)EVSP-9482 (or your chosen security PIN)99 / 100 (standard Unraid nobody:users permissions)http://<your-server-ip>:3000/companionhttp://<your-server-ip>:3000).EVSP-9482).| Variable | Default | Description |
|---|---|---|
PORT | 3000 | Unified container port hosting / (WebUI), /companion (Mobile), and /api |
NODE_ENV | production | Node runtime environment |
DATABASE_URL | file:/app/data/eventspace.db | SQLite database file location |
COMPANION_PIN | EVSP-9482 | Verification PIN required to pair mobile devices |
PUID | 99 | Container process user ID (Unraid standard: nobody=99) |
PGID | 100 | Container process group ID (Unraid standard: users=100) |
EventSpace/
āāā backend/ # Express REST API, Prisma ORM, SQLite DB
āāā frontend/ # Vite + React 19 spatial canvas WebUI (root /)
āāā eventspace-mobile/ # Mobile companion web app (/companion)
āāā Dockerfile # Multi-stage production container build (both apps)
āāā docker-compose.yml # Docker Compose service definition
āāā eventspace.xml # Unraid Community Applications template
# 1. Start the unified backend API server
cd EventSpace/backend
npm install
npm run prisma:push
npm run seed # Generates tutorial onboarding event
npm run dev # Listens on http://localhost:3001
# 2. Start the desktop web frontend (with API proxy to 3001)
cd ../frontend
npm install
npm run dev # Runs on http://localhost:5173
# 3. Start the mobile companion app
cd ../eventspace-mobile
npm install
npm run dev # Runs on http://localhost:5174
Created and maintained by donotknockā .
MIT Ā© 2026 donotknockā . All rights reserved.
Content type
Image
Digest
sha256:1ab5975aeā¦
Size
238.6 MB
Last updated
about 10 hours ago
docker pull donotknock/eventspace