A self-hosted Kanban board application for personal/team use. Forked from kanbn/kan.
This is a modified version. Per the AGPLv3 license, this fork mochimwaji/kan removes cloud-specific features (Lingui i18n, S3 storage, marketing pages, billing, analytics) for streamlined self-hosting.
- ποΈ Board Visibility: Control who can view and edit your boards
- π€ Workspace Members: Invite members and collaborate with your team
- π¨ Customizable Lists: Color code your lists for better organization
- π¨ Theme Presets: Choose from 7 beautiful color themes (Ocean Blue, Forest Green, etc.)
- π Calendar View: View cards by due date with drag-and-drop rescheduling
- π Labels & Filters: Organize and find cards quickly
- π¬ Comments: Discuss and collaborate with your team
- π Activity Log: Track all card changes with detailed history
- π Local File Storage: Avatars and attachments stored locally (no S3 required)
- β¨ Enhanced Animations: Smooth transitions for page navigation and sidebar toggles
- π§ Email Notifications: Configurable digest and change notifications via SMTP
- π± Mobile & PWA: Installable as PWA with touch-optimized calendar and offline support
# docker-compose.yml
services:
web:
image: ghcr.io/mochimwaji/kan:latest
container_name: kan-web
ports:
- "3000:3000"
environment:
NEXT_PUBLIC_BASE_URL: http://localhost:3000
BETTER_AUTH_SECRET: your_auth_secret_here
POSTGRES_URL: postgresql://kan:your_password@postgres:5432/kan_db
NEXT_PUBLIC_ALLOW_CREDENTIALS: true
volumes:
- kan_data:/app/data
depends_on:
- postgres
restart: unless-stopped
postgres:
image: postgres:15
container_name: kan-db
environment:
POSTGRES_DB: kan_db
POSTGRES_USER: kan
POSTGRES_PASSWORD: your_password
volumes:
- kan_postgres_data:/var/lib/postgresql/data
restart: unless-stopped
volumes:
kan_data:
kan_postgres_data:docker compose up -dAccess at http://localhost:3000
git clone https://github.com/mochimwaji/kan.git
cd kan
pnpm install
cp .env.example .env # Configure your environment
pnpm db:migrate
pnpm dev| Variable | Description | Required |
|---|---|---|
POSTGRES_URL |
PostgreSQL connection string | Yes |
BETTER_AUTH_SECRET |
Auth encryption secret (32+ chars) | Yes |
NEXT_PUBLIC_BASE_URL |
Public URL of your installation | Yes |
NEXT_PUBLIC_ALLOW_CREDENTIALS |
Enable email/password login | No |
NEXT_PUBLIC_DISABLE_EMAIL |
Disable email features | No |
SMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASSWORD |
Email configuration | For email |
GOOGLE_CLIENT_ID, GOOGLE_CLIENT_SECRET |
Google OAuth | For Google login |
GITHUB_CLIENT_ID, GITHUB_CLIENT_SECRET |
GitHub OAuth | For GitHub login |
DISCORD_CLIENT_ID, DISCORD_CLIENT_SECRET |
Discord OAuth | For Discord login |
OIDC_CLIENT_ID, OIDC_CLIENT_SECRET, OIDC_DISCOVERY_URL |
Generic OIDC | For OIDC login |
EMAIL_APP_NAME |
Custom branding for email header | No |
See .env.example for the complete list.
- Next.js - React framework
- tRPC - Type-safe API
- Drizzle ORM - Database ORM
- Better Auth - Authentication
- Tailwind CSS - Styling
- β Calendar View - Month view with drag-and-drop rescheduling
- β Local File Storage - No S3 required, files stored locally
- β Collapsible Lists - Collapse/expand lists with persistent state
- β Due Date Urgency Colors - Red/orange/yellow based on deadline
- β Theme Presets - 7 predefined color themes
- β Board Transitions - Smooth animations between boards
- β Multi-Card Drag - Bulk update cards in calendar view
- β Mobile Calendar - Touch-optimized vertical day-row layout
- β PWA Support - Installable app with offline page and service worker
- β Lingui i18n (English only)
- β S3 storage (local filesystem)
- β Marketing pages (home, pricing, testimonials)
- β Legal pages (privacy, terms)
- β Analytics (PostHog, Umami)
- β Novu Notifications (replaced with custom SMTP-based system)
- β Billing (Stripe)
- β Trello import
AGPLv3 - Original work by kanbn
Per the license, this modified version mochimwaji/kan provides source code access and carries prominent notices of modifications. See CHANGELOG.md for details.