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

5.1 KiB


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
GitHub usekaneo/kaneo
Licence AGPL-3.0
Langage TypeScript (NestJS + React)
Étoiles GitHub 334
Dernière MAJ 2026-05-25
Catégorie cat-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

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)

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

Pages Liées