2d2ac79cd5a3cc9e33efc9df310f2cb2e7b5bf91
- 0b9c1d2e3f4a : migration initiale (CREATE TABLE IF NOT EXISTS) — safe sur une DB déjà bootstrappée via create_all() - 70914b334cfb : ADD COLUMN IF NOT EXISTS (organization_id) — was down_revision=None - b78571ae9e00 : CREATE TABLE IF NOT EXISTS qualification_protocols - c4e812fb3a01 : CREATE TABLE IF NOT EXISTS groups + group_members - d91a3c7f8b02 : ADD COLUMN IF NOT EXISTS origin (mandates) - Dockerfile prod : restaure alembic upgrade head au démarrage Sur le serveur prod, exécuter une fois : docker exec <projet>-backend alembic upgrade head Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
libreDecision
Plateforme de décisions collectives pour la communauté Duniter/G1. Boîte à outils gouvernance multi-collectifs, architecture white-label.
Stack
- Frontend : Nuxt 4 + Vue 3 + Pinia + UnoCSS (port 3002)
- Backend : Python FastAPI + SQLAlchemy async + SQLite (port 8002)
- Auth : Duniter V2 Ed25519 challenge-response
- Sanctuaire : IPFS (kubo) + hash on-chain (system.remark)
Démarrage
# Backend
cd backend && .venv/bin/uvicorn app.main:app --host 0.0.0.0 --port 8002 --reload
# Frontend
cd frontend && npm run dev
Sections
- Décisions : processus de vote collectif avec boîte à outils (ContextMapper, consentement, advice process)
- Mandats : élection sociocratique, cycle de mandat, révocation
- Documents : documents de référence sous vote permanent, niveaux d'inertie, sanctuaire IPFS
- Protocoles : protocoles opérationnels, jalons de workflow, formules de vote
Architecture
Voir CLAUDE.md pour les conventions et docs/content/dev/ pour la documentation technique.
Description
Languages
Python
46.2%
Vue
46.1%
TypeScript
6.7%
CSS
0.6%
Dockerfile
0.3%