bruno 9f667ae9e0
FlowDeck CI / test (push) Failing after 4s
FlowDeck CI / docker (push) Has been skipped
feat(gitea): API routes + per-user client + repo contents
GiteaClient:
- __init__(user_token=None) — per-user OAuth token ou admin token
- get_repo_contents(owner, repo, path) — lazy: un niveau à la fois
- get_file_content(owner, repo, path) — base64 décodé
- create_or_update_file(...) — PUT avec sha pour update
- delete_file(owner, repo, path, sha, message)
- _invalidate_tree_cache() — invalidation après write

Routes (/api/gitea):
- GET /orgs — liste des organisations
- GET /projects?org=x — repos user ou org
- GET /projects/{owner}/{repo}/tree?path=x — arborescence lazy
- GET /projects/{owner}/{repo}/file?path=x — contenu fichier
- PUT /projects/{owner}/{repo}/file — save + commit
- DELETE /projects/{owner}/{repo}/file?path=x&sha=x — delete
- GET /projects/{owner}/{repo}/labels — labels → tags

Helper: get_user_gitea_client(request) → GiteaClient ou None
2026-07-13 14:50:46 -04:00

FlowDeck

Clone complet de Notion intégré nativement à Gitea — Databases, Pages, Kanban, Calendar, Gallery, Timeline, List, Multi-Users.

v2.1.0 — API publique, Webhooks sortants, PWA

Quick Start

cp .env.example .env
# Éditer .env avec votre token Gitea
docker compose up -d
# → http://localhost:8080

Features

Database & Properties (v1.3–v1.5)

  • Collections: databases indépendantes de Gitea, schéma JSON
  • 21 types de propriétés: title, text, number, select, status, date, person, checkbox, url, email, phone, files, unique_id, relation, rollup, formula + auto-props
  • Relations bidirectionnelles + Rollups (12 agrégations) + Formulas (19 fonctions)
  • GiteaBoardCompat: adaptateur boards Gitea legacy → Collections

Vues Multiples (v1.6–v1.7)

  • Table: colonnes SSR, triables
  • Board (Kanban): colonnes, groupes, drag & drop
  • Calendar: grid mensuel, navigation, événements
  • Gallery: cartes visuelles, card_size configurable
  • List: vue compacte avec preview
  • Timeline: barres Gantt horizontales
  • Status Overview: Donut chart SVG
  • Team Load: Barres empilées

Sub-items & Dépendances (v1.8)

  • Sub-items: parent_id auto-référence, hiérarchie illimitée
  • Status aggregate: parent = Done si tous enfants Done
  • Dependencies: Blocking/Blocked by, contrainte de transition

My Tasks (v1.9)

  • Dashboard cross-collection agrégeant toutes les tâches assignées
  • Vues: All, Today, Overdue, Next 7 days

Multi-User & Collaboratif (v2.0)

  • Workspaces: espaces partagés avec rôles (admin, editor, commenter, viewer)
  • Comments: commentaires threadés sur les pages
  • Page History: historique des modifications avec snapshots
  • Favorites: favoris par utilisateur
  • Templates: database + page templates
  • CSV Import/Export
  • Public Sharing: lien de partage lecture seule

API & Intégrations (v2.1)

  • API publique REST: /api/v1 avec token auth
  • Webhooks sortants: gestion + dispatcher d'événements
  • PWA: manifest.json, prêt pour installation mobile

UI Notion-Style (v1.1–v1.2)

  • Sidebar gauche avec sections hiérarchiques
  • Topbar avec breadcrumbs (workspace > projet > page)
  • Dark mode Notion: #191919 fond, #222222 sidebar
  • Éditeur de blocs: slash menu (/), navigation clavier, placeholders

Intégration Gitea

  • Issues Gitea → cartes, sync labels, milestones, assignees, due dates
  • OAuth2 Gitea, CSRF, rate limiting, webhooks

Stack

Couche Techno
Frontend Jinja2 + HTMX + Alpine.js + SortableJS + CSS
Backend Python 3.12 + FastAPI + httpx
BDD SQLite (WAL, 21 tables) — /data/flowdeck.db
Déploiement Docker (python:3.12-slim), docker-compose

Configuration

GITEA_URL=https://git.dracodev.net
GITEA_TOKEN=votre_token
APP_PORT=8080
DATABASE_URL=sqlite:////data/flowdeck.db

Tests

python3 -m pytest tests/ -v   # 73/73 passent

Roadmap

Voir ROADMAP.md — 7/7 blocs complétés, 52/52 features ✅

Licence

MIT

S
Description
FlowDeck — Gestion de projets Kanban léger intégré à Gitea
Readme
21 MiB
Languages
Python 58.1%
JavaScript 21.3%
HTML 17.3%
CSS 3.3%