---
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
