4.7 KiB
title: Kan created: 2026-06-07 updated: 2026-06-07 type: app tags: [catalogue, kanban, golang, minimal, sqlite, agpl, trello-alternative, leger] confidence: high contested: false sources: [https://selfh.st/apps/?tag=Kanban, https://github.com/kanbn/kan, https://docs.kanbn.org/]
🪶 Kan
Le Kanban Go ultra-léger — binaire unique, SQLite par défaut, interface soignée, conçu pour le self-hosting minimaliste en homelab.
📋 Informations Générales
| Champ | Valeur |
|---|---|
| Site web | kanbn.org |
| GitHub | kanbn/kan |
| Licence | AGPL-3.0 |
| Langage | Go, TypeScript (frontend) |
| Étoiles GitHub | 375 ⭐ |
| Dernière MAJ | 2026-05-22 |
| Catégorie | cat-kanban |
📝 Description
Kan (par kanbn/kan sur GitHub) est un Kanban moderne écrit en Go (backend) et Svelte/TypeScript (frontend), pensé pour le self-hosting minimaliste : un seul binaire Go, SQLite par défaut (PostgreSQL en option), une image Docker légère (~30 Mo), et une empreinte mémoire d'environ 40-60 Mo en idle. Idéal pour un Raspberry Pi ou un petit VPS.
L'interface reproduit le classique Kanban : tableaux, colonnes, cartes, étiquettes, dates d'échéance, assignations, commentaires, pièces jointes. Le projet se distingue par sa simplicité de configuration (une seule variable d'environnement KAN_LISTEN_ADDR) et par la possibilité de fonctionner en single-user sans authentification, pratique pour un usage strictement personnel.
Pour des usages plus avancés (multi-utilisateurs, API publique, plugins), Kan reste plus limité que app-planka ou app-wekan : c'est un projet jeune mais très prometteur, parfait pour qui veut du Go rapide et propre sans la complexité d'un framework web lourd. À surveiller : une roadmap active qui annonce un module Gantt et des webhooks.
🚀 Installation
Option recommandée : Docker Compose
services:
kan:
image: ghcr.io/kanbn/kan:latest
container_name: kan
restart: unless-stopped
ports:
- "9000:9000"
environment:
KAN_LISTEN_ADDR: ":9000"
KAN_BASE_URL: "https://kanban.example.com"
KAN_DB_TYPE: "sqlite"
KAN_DB_PATH: "/data/kan.db"
KAN_SINGLE_USER: "true" # Mettre false pour multi-users
KAN_JWT_SECRET: "changez-cle-jwt-32-chars-minimum"
volumes:
- kan-data:/data
volumes:
kan-data:
Binaire unique (Raspberry Pi, NAS Synology/QNAP)
# Build ou téléchargement depuis les releases
wget https://github.com/kanbn/kan/releases/download/v0.6.0/kan_0.6.0_linux_arm64.tar.gz
tar xzf kan_*_linux_arm64.tar.gz
./kan --listen-addr :9000
⚙️ Configuration Initiale
- Démarrer le conteneur, ouvrir
http://localhost:9000. - Mode single-user : aucun login, accès direct (idéal pour usage perso local).
- Mode multi-user : définir
KAN_SINGLE_USER=false, créer le premier compte via l'UI. - Brancher le reverse-proxy HTTPS (Caddy, Traefik) — Kan ne sert que du HTTP.
- Activer le SMTP via
KAN_SMTP_*si besoin de notifications par e-mail. - Activer Watch sur le dépôt GitHub (release cycle court).
- Sauvegardes : un simple
cp kan.dbsuffit en mode SQLite.
🔄 Alternatives
Open Source
- app-planka — Kanban moderne React/PostgreSQL
- app-wekan — Kanban complet Node.js
- app-kanboard — Kanban PHP minimal
- app-vikunja — Tasks multi-vues (Kan + List + Gantt)
- app-kanba — Kanban React plus simple
- app-ticky — Kanban TypeScript minimal
- Focalboard — Mattermost Kanban
Propriétaires
- Trello (Atlassian)
- Notion Kanban
- Asana
- ClickUp
- Todoist (Board view)
🔐 Sécurité
- ✅ Mode single-user = surface d'attaque minimale (pas de login à bruteforcer)
- ✅ Sessions JWT signées (
KAN_JWT_SECRET) - ⚠️ Pas de 2FA natif en single-user : protéger par reverse-proxy + mTLS ou VPN
- ⚠️ Mode multi-user encore jeune : vérifier les ACL avant déploiement en équipe
- ✅ Exiger HTTPS via reverse-proxy
- ✅ Maintenir l'image Docker à jour (release cycle court)
- ✅ Sauvegarde SQLite triviale via cron
📚 Ressources
Pages Liées
- cat-kanban — Catégorie Kanban
- recettes-docker-compose — Templates Docker Compose
- app-vikunja — Alternative Go plus complète
- app-planka — Alternative React/PostgreSQL
- app-ticky — Alternative TypeScript minimal