7
0
forked from yvv/decision
Yvv 2d2ac79cd5
ci/woodpecker/push/woodpecker Pipeline failed
Alembic : migration initiale + chaîne idempotente IF NOT EXISTS
- 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>
2026-04-25 02:47:20 +02:00

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.

S
Description
No description provided
Readme 1.7 MiB
Languages
Python 46.3%
Vue 46%
TypeScript 6.7%
CSS 0.6%
Dockerfile 0.3%