104 lines
2.5 KiB
Markdown
104 lines
2.5 KiB
Markdown
# 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
|
|
|
|
```bash
|
|
# 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)
|
|
|
|
```bash
|
|
echo "GITEA_TOKEN=ton_token" > .env
|
|
docker compose up -d
|
|
```
|
|
|
|
### Avec docker uniquement
|
|
|
|
```bash
|
|
# 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)
|
|
|
|
```bash
|
|
# 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
|