A privacy-focused, local-only Kanban board. No account required โ your data stays in your browser.
- Works instantly in your browser
- Install as an app: click the install icon in your browser's address bar
- All data stays 100% local on your device
- Works offline after first visit
Run your own instance with data persisted to SQLite. Just provide a port and a folder for your data.
git clone https://github.com/floschu/board.git
cd board
docker compose up -d
open http://localhost:3000docker run -d -p 3000:3000 -v board-data:/app/data ghcr.io/floschu/board
open http://localhost:3000| Variable | Default | Description |
|---|---|---|
PORT |
3000 |
Port the server listens on inside the container |
DATA_DIR |
/app/data |
Directory where the SQLite database (board.db) is stored |
Mount a volume or bind a local folder to DATA_DIR so your data survives container restarts:
# Named volume (managed by Docker)
docker run -d -p 3000:3000 -v board-data:/app/data ghcr.io/floschu/board
# Local folder (e.g. for Unraid, Synology, or manual backups)
docker run -d -p 3000:3000 -v /path/to/your/folder:/app/data ghcr.io/floschu/boardRun your own synced instance on Cloudflare (data in Cloudflare D1, no server to run). The database is auto-provisioned and your data persists across updates.
Recommended: fork + connect (so updates are one click later):
- Fork this repo.
- Cloudflare โ Workers & Pages โ Create โ Workers โ Import a repository โ your fork. The build and D1 are configured automatically.
- Update anytime with GitHub's Sync fork button (or enable Actions on your fork for automatic daily updates).
Just want a quick look? One-click Deploy to Cloudflare (a standalone copy โ updates are manual):
The /api/data endpoint is unauthenticated, so if the deployment is public, put it behind an
access control such as Cloudflare Access.
Full guide (CLI, updates, privacy): CLOUDFLARE.md.
npm install
npm run dev
open http://localhost:5173