Quick Start | Website | Demo | Discord
A modern, self-hosted project management platform that gets out of your way.
We built Kaneo because existing project management tools either feel bloated with features you'll never use, or they're too simple to handle real work. Kaneo finds the sweet spot—powerful enough for complex projects, simple enough that you'll actually want to use it.
What makes it different:
- Clean interface that focuses on your work, not the tool
- Self-hosted so your data stays yours
- Actually fast because we care about performance
- Open source and free forever
The fastest way to try Kaneo is with Docker Compose. This sets up both the API and web interface:
services:
backend:
image: ghcr.io/usekaneo/api:latest
environment:
JWT_ACCESS: "your-secret-key-here"
DB_PATH: "/app/apps/api/data/kaneo.db"
ports:
- 1337:1337
restart: unless-stopped
volumes:
- sqlite_data:/app/apps/api/data
frontend:
image: ghcr.io/usekaneo/web:latest
environment:
KANEO_API_URL: "http://localhost:1337"
ports:
- 5173:5173
restart: unless-stopped
volumes:
sqlite_data:
Save this as compose.yml
, run docker compose up -d
, and open http://localhost:5173.
Quick tip: Change
JWT_ACCESS
to something secure in production. This is used to sign authentication tokens.
Variable | What it does | Default |
---|---|---|
KANEO_API_URL |
Where the web app finds the API | Required |
JWT_ACCESS |
Secret key for user authentication | Required |
DB_PATH |
SQLite database location | /app/apps/api/data/kaneo.db |
DISABLE_REGISTRATION |
Block new user signups | true |
If you're running Kubernetes, we have a Helm chart that handles the complexity:
# Clone the repo
git clone https://github.com/usekaneo/kaneo.git
cd kaneo
# Install with Helm
helm install kaneo ./charts/kaneo --namespace kaneo --create-namespace
# Access locally
kubectl port-forward svc/kaneo-web 5173:5173 -n kaneo
Open http://localhost:5173 and you're good to go.
For real deployments, you'll want proper ingress:
helm install kaneo ./charts/kaneo \
--namespace kaneo \
--create-namespace \
--set ingress.enabled=true \
--set ingress.className=nginx \
--set "ingress.hosts[0].host=pm.yourcompany.com"
Check the Helm chart docs for TLS setup, cert-manager integration, and other production considerations.
Want to hack on Kaneo? Here's how to get a development environment running:
# Clone and install dependencies
git clone https://github.com/usekaneo/kaneo.git
cd kaneo
pnpm install
# Start the API
cd apps/api
pnpm run dev
# In another terminal, start the web app
cd apps/web
pnpm run dev
The API runs on port 1337, web app on 5173. Both will reload when you make changes.
- Discord - Chat with users and contributors
- GitHub Issues - Bug reports and feature requests
- Documentation - Detailed guides and API docs
We're always looking for help, whether that's:
- Reporting bugs or suggesting features
- Improving documentation
- Contributing code
- Helping other users on Discord
Check out CONTRIBUTING.md for the details on how to get involved.
MIT License - see LICENSE for details.
Built with ❤️ by the Kaneo team and contributors