An open source project management platform focused on simplicity and efficiency.
Quick Start | Website | Demo | Discord
- 🚀 Simple & Fast: Minimalist interface with powerful features
- 🔒 Self-hosted: Full control over your data
- 🎨 Customizable: Make it yours with extensive customization options
- 🤝 Open Source: MIT licensed, free forever
- Create a
compose.yml
file with the following content:
services:
backend:
image: ghcr.io/usekaneo/api:latest
environment:
JWT_ACCESS: "change_me"
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:80
restart: unless-stopped
volumes:
sqlite_data:
-
Run
docker compose up -d
to start the services. -
Open http://localhost:5173 in your browser.
-
Create your first project and start managing your tasks!
Variable | Description |
---|---|
KANEO_API_URL |
The URL of the API |
JWT_ACCESS |
Secret key for generating JWT tokens |
DB_PATH |
The path to the database file |
Kaneo can also be deployed on Kubernetes using our Helm chart:
- Clone this repository:
git clone https://github.com/usekaneo/kaneo.git
cd kaneo
- Install the Helm chart:
helm install kaneo ./charts/kaneo --namespace kaneo --create-namespace
- Access Kaneo:
# Port forward to access both services
kubectl port-forward svc/kaneo-web 5173:80 -n kaneo &
kubectl port-forward svc/kaneo-api 1337:1337 -n kaneo &
# Access the application at http://localhost:5173
# The web frontend will communicate with the API at http://localhost:1337
For production environments, we recommend using Ingress to expose Kaneo:
# Basic installation with ingress
helm install kaneo ./charts/kaneo \
--namespace kaneo \
--create-namespace \
--set ingress.enabled=true \
--set ingress.className=nginx \
--set "ingress.hosts[0].host=kaneo.example.com"
For detailed production deployment examples, including:
- TLS configuration
- Cert-manager integration
- Path rewriting with regex capture groups
- Gateway API usage
- Resource configuration
Please refer to the Helm chart documentation.
For local deployments with Minikube:
- Start Minikube:
minikube start
- Install the Helm chart with Ingress enabled:
helm install kaneo ./charts/kaneo \
--namespace kaneo \
--create-namespace \
--set ingress.enabled=true \
--set ingress.className=nginx \
--set "ingress.hosts[0].host=kaneo.local"
- Enable the Ingress addon if not already enabled:
minikube addons enable ingress
- Access Kaneo based on your OS:
For macOS, you need to use minikube tunnel
to access the Ingress:
# Start minikube tunnel in a separate terminal
minikube tunnel
Update your /etc/hosts file:
# Add to /etc/hosts
127.0.0.1 kaneo.local
Access Kaneo at http://kaneo.local
Get the Minikube IP:
minikube ip
Update your hosts file with the Minikube IP:
# Add to /etc/hosts (Linux) or C:\Windows\System32\drivers\etc\hosts (Windows)
192.168.49.2 kaneo.local # Replace with the actual Minikube IP
Access Kaneo at http://kaneo.local
For detailed instructions and documentation, visit our Documentation.
We welcome contributions! Please see our Contributing Guide for details.
- Discord - Chat with the community
- GitHub Issues - Report bugs or suggest features
- Website - Official website
Thank you to all the contributors and sponsors who have helped make Kaneo better! 💖

This project is licensed under the MIT License.