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 8000 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 the API, web interface, and PostgreSQL database:
services:
postgres:
image: postgres:16-alpine
environment:
POSTGRES_DB: kaneo
POSTGRES_USER: kaneo_user
POSTGRES_PASSWORD: kaneo_password
volumes:
- postgres_data:/var/lib/postgresql/data
restart: unless-stopped
backend:
image: ghcr.io/usekaneo/api:latest
environment:
JWT_ACCESS: "your-secret-key-here"
DATABASE_URL: "postgresql://kaneo_user:kaneo_password@postgres:5432/kaneo"
ports:
- 1337:1337
depends_on:
- postgres
restart: unless-stopped
frontend:
image: ghcr.io/usekaneo/web:latest
environment:
KANEO_API_URL: "http://localhost:1337"
ports:
- 5173:5173
depends_on:
- backend
restart: unless-stopped
volumes:
postgres_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 |
DATABASE_URL |
PostgreSQL connection string | Required |
DISABLE_REGISTRATION |
Block new user signups | true |
Kaneo uses PostgreSQL for data storage. The Docker Compose setup above handles this automatically, but if you're running Kaneo outside of Docker, you'll need to:
- Install PostgreSQL (version 12 or higher)
- Create a database and user:
CREATE DATABASE kaneo; CREATE USER kaneo_user WITH PASSWORD 'your_password'; GRANT ALL PRIVILEGES ON DATABASE kaneo TO kaneo_user;
- Set the DATABASE_URL environment variable:
export DATABASE_URL="postgresql://kaneo_user:your_password@localhost:5432/kaneo"
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 PostgreSQL (using Docker)
docker run --name kaneo-postgres -e POSTGRES_DB=kaneo -e POSTGRES_USER=kaneo_user -e POSTGRES_PASSWORD=kaneo_password -p 5432:5432 -d postgres:16-alpine
# Set up environment variables
cd apps/api
echo "DATABASE_URL=postgresql://kaneo_user:kaneo_password@localhost:5432/kaneo" > .env
# Run database migrations
pnpm run db:migrate
# Start the 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.
If you're upgrading from a previous version that used SQLite, you'll need to migrate your data to PostgreSQL. We recommend:
- Export your data from the old SQLite database
- Set up PostgreSQL using the new Docker Compose configuration
- Import your data into the new PostgreSQL database
Contact us on Discord if you need help with the migration process.
- 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