Self-hosted Trello-style Kanban — Bun + Elysia + React, GitHub/ATProto auth
4.2K
A self-hosted, Trello-style Kanban app. One Bun process serves the Elysia API and the React SPA. Sign in with GitHub or ATProto (Bluesky); boards, columns, drag & drop cards, tags, notes, dependencies, and a per-user Pomodoro timer.
gouz/kanbamlatest — the most recent release.X.Y.Z (e.g. 0.22.0) — a specific version.# /app/data holds BOTH the config (.env) and the SQLite database → mount a host folder.
mkdir -p data
cat > data/.env <<'EOF'
GITHUB_OAUTH_CLIENT_ID=your_client_id
GITHUB_OAUTH_CLIENT_SECRET=your_client_secret
APP_URL=http://localhost:3000
EOF
docker run --rm -p 3000:3000 -v "$(pwd)/data:/app/data" gouz/kanbam:latest
# open http://localhost:3000
On start the container sources data/.env and runs the schema sync (prisma db push), so both
config and database live in the mounted volume.
services:
app:
image: gouz/kanbam:latest
ports:
- "3000:3000"
volumes:
- ./data:/app/data # .env (GITHUB_OAUTH_*, APP_URL) + the SQLite DB
restart: unless-stopped
Provide these via data/.env (as above) or -e / compose environment:.
| Variable | Required | Default | Purpose |
|---|---|---|---|
GITHUB_OAUTH_CLIENT_ID | yes | — | GitHub OAuth app client id |
GITHUB_OAUTH_CLIENT_SECRET | yes | — | GitHub OAuth app client secret |
APP_URL | recommended | http://localhost:3000 | Public base URL — set to your real HTTPS domain in production |
DATABASE_URL | no | SQLite in /app/data | Set to a postgresql://… URL to use Postgres instead |
PORT | no | 3000 | Listen port |
3000 (API + SPA)./app/data — back it with a named volume or bind mount; it holds all state.GitHub sign-in needs an OAuth app:
APP_URL; Authorization callback URL = APP_URL + /login/github/callback
(e.g. http://localhost:3000/login/github/callback, or your HTTPS domain in production).data/.env.Full guide: https://github.com/gouz/kanbam/blob/main/docs/how-to/configure-github-oauth.md
ATProto (Bluesky) sign-in needs no secrets — just set
APP_URLto your HTTPS domain in production. See https://github.com/gouz/kanbam/blob/main/docs/how-to/sign-in-with-atproto.md
secure in prod; ATProto requires HTTPS).DATABASE_URL to a Postgres connection string — see
https://github.com/gouz/kanbam/blob/main/docs/how-to/switch-to-postgres.mdContent type
Image
Digest
sha256:eba7ba5f6…
Size
44.1 MB
Last updated
11 days ago
docker pull gouz/kanbam