Self-hosted git forge for document administration by pull request.
Extracted from AndORHub and expanded per the Collège comme dépôt git vision document.
A git server with three layers:
| Layer | Who | Interface |
|---|---|---|
| Level 1 (Staff) | Documents, editing | Web editor API — no git words |
| Level 2 (Coordinators) | Review, approve, merge | Web UI — branches, diffs, signatures |
| Level 3 (Lab/TI) | Everything | Raw git over HTTPS |
cd espace-boreal
npm install
npm run devServer starts on :3001 with repos in ./repos and object store in ./objects.
GET /api/v1/repos # List all repos
POST /api/v1/repos # Create repo { name }
GET /api/v1/repos/:name # Repo info
GET /api/v1/repos/:name/tree?branch=main
GET /api/v1/repos/:name/tree/:path?branch=main
GET /api/v1/repos/:name/file/:path?branch=main
GET /api/v1/repos/:name/history?depth=20&branch=main
GET /api/v1/repos/:name/diff/:oid?parent=oid
GET /api/v1/repos/:name/propositions?state=pret
POST /api/v1/repos/:name/propositions
{ branch, target?, title, description }
POST /api/v1/repos/:name/propositions/:id/signer
{ comment? }
POST /api/v1/repos/:name/propositions/:id/fusionner
GET /objects/:hash
PUT /objects/:hash
Standard git over HTTPS:
git clone https://host:3001/monrepo.git
git push https://host:3001/monrepo.git
| Git | EspaceBoreal |
|---|---|
| commit | entree-registre |
| pull request | proposition |
| merge | signature |
| revert | annulation |
| branch | brouillon |
| diff | releve-modifications |
| CODEOWNERS | signataires |
ESPACE_BOREAL_REPO_ROOT=./repos
ESPACE_BOREAL_OBJECT_STORE=./objects
ESPACE_BOREAL_PORT=3001
ESPACE_BOREAL_HOST=0.0.0.0EspaceBoreal runs as a standalone service. Almanach01 (Rust/Axum) connects via:
- JWT auth — Almanach01 signs tokens; EspaceBoreal validates
- HTTP API — Almanach01 calls document APIs for staff UI
- Git protocol — For lab/TI direct access
See docs/ALMANACH01_INTEGRATION.md.
espace-boreal/
├── src/
│ ├── core/ # Git engine (extracted from AndORHub)
│ ├── proposition/ # Pull request workflow
│ ├── signataires/ # CODEOWNERS equivalent
│ ├── dvc/ # Mini-DVC (binary files)
│ ├── org/ # Organization structure
│ ├── vocab/ # Terminology mapping
│ └── server.ts # HTTP server
└── templates/ # Default monorepo structure
Same as AndORHub — extracted with permission.