123 lines
4.7 KiB
Markdown
123 lines
4.7 KiB
Markdown
---
|
|
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](https://kanbn.org/) |
|
|
| **GitHub** | [kanbn/kan](https://github.com/kanbn/kan) |
|
|
| **Licence** | AGPL-3.0 |
|
|
| **Langage** | Go, TypeScript (frontend) |
|
|
| **Étoiles GitHub** | 375 ⭐ |
|
|
| **Dernière MAJ** | 2026-05-22 |
|
|
| **Catégorie** | [[cat-kanban\|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
|
|
|
|
```yaml
|
|
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)
|
|
|
|
```bash
|
|
# 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
|
|
- [[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
|
|
|
|
- [Site officiel Kan](https://kanbn.org/)
|
|
- [Documentation Kan](https://docs.kanbn.org/)
|
|
- [GitHub kanbn/kan](https://github.com/kanbn/kan)
|
|
- [Démo en ligne](https://demo.kanbn.org/)
|
|
- [Releases binaires](https://github.com/kanbn/kan/releases)
|
|
|
|
## 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
|