kanbn/kan(opens in a new tab)
Language: TypeScript
The open source Trello alternative.
- stars
- 5,853
- watchers
- 16
- forks
- 527
- open issues
- 132
- Last updated
- 10/30/2026
Language: TypeScript
The open source Trello alternative.
Roadmap · Website · Docs · Discord
See our roadmap for upcoming features.
The easiest way to deploy Kan is through Railway. We've partnered with Railway to maintain an official template that supports the development of the project.
Alternatively, you can self-host Kan with Docker Compose. This will set up everything for you including your postgres database and automatically run migrations.
Create a .env file with your environment variables (see Environment Variables section below)
Use the docker-compose.yml file provided in the repository, which sets up Postgres, runs migrations, and starts the web service
Start the containers in detached mode:
docker compose up -d
The application will be available at http://localhost:3000 (or the port specified in WEB_PORT).
Managing containers:
docker compose downdocker compose logs -fdocker compose restartdocker compose up -d --buildgit clone https://github.com/kanbn/kan.git
pnpm install
.env.example to .env and configure your environment variablespnpm db:migrate
pnpm dev
At minimum, you'll need:
| Variable | Description | Example |
|---|---|---|
POSTGRES_URL |
PostgreSQL connection URL | postgres://user:pass@localhost:5432/db |
NEXT_PUBLIC_BASE_URL |
Base URL of your installation | http://localhost:3000 |
BETTER_AUTH_SECRET |
Auth encryption secret | Random 32+ char string |
Optional integrations (email/SMTP, OAuth and OIDC login, S3-compatible file storage, Trello import, rate limiting, white labelling, and more) are configured through additional variables. See .env.example for the complete list.
Kan ships with a Model Context Protocol (MCP) server that lets any MCP-compatible AI client (Claude Desktop, Codex, Cursor, GitHub Copilot, and others) read and control your Kan instance using natural language.
Run it with npx, no clone or global install required:
npx -y @kan/mcp
Configure it with two environment variables: KAN_BASE_URL (your Kan instance) and KAN_API_TOKEN (from Settings → API Keys). Then point your client's MCP config at the npx -y @kan/mcp command.
See the MCP Server docs for per-client config (Claude Desktop, Codex, and others), example prompts, the full tool reference, and troubleshooting.
We welcome contributions! Please read our contribution guidelines before submitting a pull request.
Proudly sponsored by TestMu AI (formerly LambdaTest) - an AI-native testing cloud platform built for modern engineering teams. Covering everything from autonomous test creation and fast execution to testing AI agents like chatbots and voice assistants. If you're serious about testing, go check them out.
Kan is licensed under the AGPLv3 license.
For support or to get in touch, please email henry@kan.bn or join our Discord server.