Files
wiki/Catalogue-Self-Hosted/apps/app-kan.md
T
2026-06-09 18:40:21 +02:00

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

  1. Démarrer le conteneur, ouvrir http://localhost:9000.
  2. Mode single-user : aucun login, accès direct (idéal pour usage perso local).
  3. Mode multi-user : définir KAN_SINGLE_USER=false, créer le premier compte via l'UI.
  4. Brancher le reverse-proxy HTTPS (Caddy, Traefik) — Kan ne sert que du HTTP.
  5. Activer le SMTP via KAN_SMTP_* si besoin de notifications par e-mail.
  6. Activer Watch sur le dépôt GitHub (release cycle court).
  7. Sauvegardes : un simple cp kan.db suffit en mode SQLite.

🔄 Alternatives

Open Source

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