Spark d267df01fa fix(backend): consolidation 0.2.0 — config, DB_PATH, async, pagination, auth, synchro bidirectionnelle
- config.py: réglages centralisés par variables d'environnement
- models: KANBANTE_DB_PATH enfin honorée (C1), migrations idempotentes
  (position, notes.updated_at, nettoyage colonnes inconnues — I4),
  ordre des cartes persisté (M5), réconciliation avec Gitea
- gitea_client: httpx asynchrone, pagination complète (I2, plafond
  serveur de 50), uid résolu via /user, en-tête Authorization seulement
  si jeton, cache court, create_issue / set_issue_state, .env racine
- main: lifespan au lieu de on_event (M4), Basic Auth optionnelle +
  CSRF double-submit (C2), write-back done<->fermé (C3), classification
  par fenêtre glissante + drapeau archived (I1), erreurs Gitea en 502
  propre (I5), /api/readiness réel, PR exclues du board (M6),
  codes HTTP explicites et limite de taille des notes (M7)
2026-10-11 09:31:48 -04:00

Kanbante

Kanban project manager integrated with Gitea — lightweight, self-hosted, dark theme.

Features

  • 📋 Dashboard — tous tes projets Gitea en un coup d'œil (actifs / archivés)
  • 🗂️ Kanban Board — colonnes Backlog → À faire → En cours → Révision → Terminé
  • 🎯 Drag & Drop — glisse les issues entre colonnes
  • 🔗 Gitea Sync — les issues Gitea deviennent des cartes Kanban
  • 📝 Notes — bloc-notes par projet
  • 🌙 Dark theme — conçu pour les longues sessions
  • 🐳 Docker — un seul conteneur, déploiement en 30 secondes

Quick Start

# 1. Installer les dépendances
cd kanbante
pip install -e .

# 2. Configurer les variables d'environnement
export GITEA_URL=https://git.dracodev.net
export GITEA_TOKEN=ton_token_gitea

# 3. Lancer
uvicorn app.main:app --reload --port 8080

Ouvrir http://localhost:8080

Docker

Avec docker-compose (recommandé si docker-compose ≥ v2)

echo "GITEA_TOKEN=ton_token" > .env
docker compose up -d

Avec docker uniquement

# Builder l'image
docker build -t kanbante:latest .

# Créer le volume persistant
docker volume create kanbante_data

# Lancer
docker run -d \
  --name kanbante \
  -p 8080:8080 \
  -v kanbante_data:/data \
  -e GITEA_URL=https://git.dracodev.net \
  -e GITEA_TOKEN=ton_token \
  --restart unless-stopped \
  kanbante:latest

Déploiement sur Deepin 25 (Debian Bookworm)

# Installer Docker
sudo apt install -y docker.io docker-compose docker-buildx
sudo usermod -aG docker $USER
sudo systemctl enable --now docker

# Builder et lancer (voir section "Avec docker uniquement")

Architecture

kanbante/
├── app/
│   ├── main.py          # FastAPI app (routes + API)
│   ├── gitea_client.py  # Client API Gitea
│   ├── models.py        # SQLite (état du board local)
│   └── templates/       # Jinja2 (dashboard.html, board.html)
├── static/
│   ├── css/style.css    # Design system dark theme
│   └── js/board.js      # Drag & drop (SortableJS)
├── Dockerfile
├── docker-compose.yml
└── README.md

API

Méthode Route Description
GET / Dashboard tous les projets
GET /board/{owner}/{repo} Kanban board
POST /api/move Déplacer une issue
POST /api/notes Sauvegarder des notes
GET /api/stats Statistiques JSON
GET /api/projects Projets JSON
GET /api/health Health check

Licence

MIT

S
Description
📋 Kanban project manager integrated with Gitea — lightweight, self-hosted, dark theme
Readme MIT
1.7 MiB
2026-10-23 09:48:17 -04:00
Languages
Python 59.4%
HTML 16.4%
JavaScript 14.5%
CSS 9.6%