A self-hosted, Jira-style task tracker with a Kanban board — a pet project of mine, completely vibe coded for my own purposes. Use as you wish.
Node + Express + SQLite backend, React (Vite) frontend. Boards, epics, sprints,
priorities, MSCW, story points, screenshot attachments, multiple users, and a
Kanban + grouped-List view. There's also a component showcase at /ui.
Requires Node.js 18+.
Windows — double-click or run in a terminal:
dev.bat → dev mode, open http://localhost:5173
start.bat → production, open http://localhost:4000
Linux / macOS:
chmod +x start.sh dev.sh # first time only
./dev.sh # dev mode -> http://localhost:5173
./start.sh # production -> http://localhost:4000The scripts create .env, install dependencies, and build automatically. First
run: open .env and set JWT_SECRET to a long random string. Then open the
app and create an account.
Prefer doing it by hand? npm run setup, then npm run dev (dev) or
npm run build && npm start (production).
Off by default. To enable it:
-
In the Google Cloud Console → Credentials, create an OAuth 2.0 Client ID (type: Web application).
-
Add the redirect URI:
http://localhost:4000/api/auth/google/callback -
Put the values in
.env:GOOGLE_CLIENT_ID=your-id.apps.googleusercontent.com GOOGLE_CLIENT_SECRET=your-secret
-
Restart. A Continue with Google button shows up on the login page.
Run the production build (npm start) as a background service.
- Windows — Task Scheduler (trigger: At startup, action:
cmd /c "cd /d <path> && npm start"), or install it as a service with NSSM. - Linux — a
systemdunit runningnode server/index.js, thensudo systemctl enable --now customkanban.
Full step-by-step instructions (with copy-paste config for both), plus backups, reverse-proxy/HTTPS notes, and the full config reference, are in SETUP.md.
Everything lives in the git-ignored data/ folder — kanban.db and uploaded
attachments. Back up or migrate by copying that folder.
0 comments
log in to comment.