Files
2026-06-09 18:40:21 +02:00

145 lines
5.1 KiB
Markdown

---
title: Kaneo
created: 2026-06-07
updated: 2026-06-07
type: app
tags: [catalogue, kanban, typescript, react, nestjs, postgresql, moderne, agpl, trello-alternative]
confidence: high
contested: false
sources: [https://selfh.st/apps/?tag=Kanban, https://github.com/usekaneo/kaneo, https://kaneo.app/]
---
# ⚡ Kaneo
> **Le Kanban moderne en TypeScript full-stack** — NestJS/React, PostgreSQL, interface épurée, rapide et conçu pour les équipes qui veulent du Trello-like sans la dette technique.
## 📋 Informations Générales
| Champ | Valeur |
| :--- | :--- |
| **Site web** | [kaneo.app](https://kaneo.app/) |
| **GitHub** | [usekaneo/kaneo](https://github.com/usekaneo/kaneo) |
| **Licence** | AGPL-3.0 |
| **Langage** | TypeScript (NestJS + React) |
| **Étoiles GitHub** | 334 ⭐ |
| **Dernière MAJ** | 2026-05-25 |
| **Catégorie** | [[cat-kanban\|Kanban]] |
## 📝 Description
**Kaneo** est un Kanban moderne 100 % **TypeScript** : backend **NestJS** (le framework Node.js/Express d'Angular) et frontend **React** (avec Vite, Tailwind, shadcn/ui). Le projet vise une expérience **proche de Trello/Linear** avec une stack technique **moderne, typée et testée**. La base de données est **PostgreSQL** et l'API est documentée OpenAPI/Swagger.
Fonctionnalités : **tableaux, colonnes, cartes, membres, étiquettes, checklists, dates d'échéance, commentaires, activités récentes, recherche globale, mode sombre/clair**, et **API REST complète**. Kaneo met l'accent sur la **performance** (frontend réactif avec optimistic updates) et l'**ergonomie** (drag-and-drop natif HTML5, raccourcis clavier).
Comparé à [[app-planka]] (qui utilise aussi React mais avec Redux et SQLite/Postgres), Kaneo pousse plus loin la **typage strict TypeScript** et la **séparation backend/frontend monorepo** (`apps/web`, `apps/server`). Pour des développeurs qui veulent pouvoir **étendre ou auditer** le code, c'est un bon choix. Voir aussi [[app-kanba]] (React plus simple) et [[app-ticky]] (TypeScript minimal).
## 🚀 Installation
### Option recommandée : Docker Compose
```yaml
services:
kaneo-app:
image: ghcr.io/usekaneo/kaneo-app:latest
container_name: kaneo-app
restart: unless-stopped
ports:
- "5173:5173"
environment:
VITE_API_URL: "http://kaneo-api:1337"
depends_on:
- kaneo-api
kaneo-api:
image: ghcr.io/usekaneo/kaneo-api:latest
container_name: kaneo-api
restart: unless-stopped
ports:
- "1337:1337"
environment:
DATABASE_URL: "postgresql://kaneo:***@db/kaneo"
JWT_SECRET: "changez-cle-jwt-32-chars-minimum"
PORT: "1337"
NODE_ENV: "production"
depends_on:
- db
db:
image: postgres:16-alpine
container_name: kaneo-db
restart: unless-stopped
environment:
POSTGRES_USER: kaneo
POSTGRES_PASSWORD: kaneo
POSTGRES_DB: kaneo
volumes:
- kaneo-pg:/var/lib/postgresql/data
volumes:
kaneo-pg:
```
### Installation manuelle (monorepo)
```bash
git clone https://github.com/usekaneo/kaneo.git
cd kaneo
pnpm install
pnpm --filter @kaneo/api dev
pnpm --filter @kaneo/web dev
```
## ⚙️ Configuration Initiale
1. Démarrer la stack, ouvrir `http://localhost:5173`.
2. Créer le compte administrateur (premier compte = admin).
3. Configurer le **reverse-proxy HTTPS** (Caddy, Traefik) en pointant vers `:5173`.
4. Définir un `JWT_SECRET` robuste (32+ caractères).
5. Activer le **SMTP** (variables d'environnement `SMTP_*`) pour notifications.
6. Configurer l'**API publique** (`PORT: 1337`) derrière le reverse-proxy si besoin d'intégrations.
7. Sauvegardes : dump PostgreSQL + volume.
## 🔄 Alternatives
### Open Source
- [[app-planka]] — Kanban React/Redux mature
- [[app-wekan]] — Kanban Node.js complet
- [[app-kanboard]] — Kanban PHP léger
- [[app-vikunja]] — Tasks multi-vues
- [[app-kanba]] — Kanban React plus simple
- [[app-ticky]] — Kanban TypeScript minimal
- **Linear (version self)** — pas vraiment dispo, mais l'ergonomie est visée
### Propriétaires
- **Trello** (Atlassian)
- **Linear** (propriétaire, ultra-rapide)
- **Notion Kanban**
- **Asana**
- **ClickUp**
- **Monday.com**
## 🔐 Sécurité
- ✅ Authentification JWT avec `JWT_SECRET` configurable
- ✅ API NestJS suit les bonnes pratiques OWASP (rate-limit, helmet, validation)
- ⚠️ 2FA et OAuth2 : vérifier la roadmap (peut être encore en dev)
- ✅ Exiger HTTPS via reverse-proxy
- ✅ Bcrypt pour les mots de passe (natif NestJS)
- ✅ Maintenir les images Docker à jour (projet actif)
- ✅ Isolation réseau du conteneur API
## 📚 Ressources
- [Site officiel Kaneo](https://kaneo.app/)
- [Documentation Kaneo](https://kaneo.app/docs)
- [GitHub usekaneo/kaneo](https://github.com/usekaneo/kaneo)
- [Démo live](https://demo.kaneo.app/)
- [Roadmap publique](https://github.com/usekaneo/kaneo/projects)
## Pages Liées
- [[cat-kanban]] — Catégorie Kanban
- [[recettes-docker-compose]] — Templates Docker Compose
- [[app-planka]] — Alternative React/PostgreSQL mature
- [[app-kanba]] — Alternative React plus simple
- [[app-ticky]] — Alternative TypeScript minimal