Fonctionnalités & organisation
Gitrust réunit les briques d'une Git forge moderne autour de six piliers : sécurité mémoire, conformité réglementaire, self-hosting, collaboration, observabilité et intégration. Chaque fonction est conçue pour rester simple, auditable et sans dépendance externe.
mindmap
root((Gitrust))
Securite memoire
Rust memory safe
Zeroize des secrets
SSH RSA 4096 bits
Conformite ANSSI
PA-074
Audit fournisseurs
SBOM CycloneDX
Self-hosting
Zero cloud
Zero telemetrie
Bare-metal ou VPS
Integration
HTTP natif
SSH natif
Clients Git standards
Collaboration
Multi-team
Roles hierarchiques
Permissions fines
Observabilite
SBOM exportable
Dependency-Track
Audit CVE
Glossaire des fonctionnalités
Sécurité mémoire
- Rust memory-safe
- Base 100 % Rust avec
#![forbid(unsafe_code)] sur les crates critiques. Aucun comportement indéfini, aucune fuite mémoire exploitable.
- Lints stricts
deny(unwrap_used, expect_used, panic, indexing_slicing) appliqué à l'ensemble du code. Les erreurs sont gérées, jamais escamotées.
- Zeroize
- Les secrets (tokens, hashes) implémentent le trait
Zeroize : la mémoire est effacée automatiquement à la destruction.
- SSH durci
- Clés RSA ≥ 4096 bits imposées, algorithmes faibles rejetés, empreintes SHA256 vérifiées à chaque connexion.
Conformité ANSSI PA-074
- Audit fournisseurs
- Chaque dépendance est tracée, versionnée et auditable via le manifeste Cargo et la SBOM CycloneDX intégrée.
- Path traversal bloqué
- Validation systématique des chemins disque (owner + slug) : rejet de
.., / et \.
- Journalisation
- Traces d'audit sur les opérations sensibles : création, partage, suppression de dépôt, rotation de clé, changement de permission.
Self-hosting
- Déploiement souverain
- Une archive Rust, un PostgreSQL, un volume disque. Aucun service tiers, aucun appel réseau externe.
- Zéro CDN
- Tous les assets (CSS, JS, polices) sont servis localement. CSP stricte bloquant les domaines externes.
- Zéro télémétrie
- Aucune donnée n'est remontée ailleurs que dans vos propres journaux. Les métriques restent chez vous.
Collaboration
- Rôles hiérarchiques
- Quatre rôles clairs : Reader, Developer, Maintainer, Owner. Permissions effectives = max(individu, équipe).
- Dépôts partagés
- Partage individuel ou par équipe, avec ou sans héritage. Les droits se combinent, jamais ne se contournent.
- Organisations
- Structure multi-équipe avec isolement des espaces de noms et des clés SSH.
Intégration
- Git HTTP natif
- Smart HTTP complet (clone, fetch, push) sans couche proxy. Compatible avec tous les clients Git standards.
- Git SSH natif
- Serveur SSH intégré (port 2222 par défaut), authentification par clé publique, gestion fine des hooks.
- Hooks extensibles
- Points d'extension
pre-receive, post-receive, update pour brancher vos pipelines CI, vos scanners, vos notifications.
- Dagger CI optionnelle
- Déclenchement natif de pipelines Dagger CI sur chaque push via le hook
post-receive. Builds reproductibles, portables et versionnés côté dépôt.
- API cohésive
- Endpoints REST pour l'automatisation (création de dépôt, gestion des clés, invitation d'utilisateurs).
Observabilité et qualité
- SBOM CycloneDX
- Génération automatique de la nomenclature logicielle au format CycloneDX 1.5, exportable vers Dependency-Track.
- Analyse de vulnérabilités
- Intégration continue avec Dependency-Track : détection et suivi des CVE sur l'ensemble des dépendances.
- Journaux structurés
- Logs JSON exploitables par tout agrégateur (ELK, Loki, Graylog) sans adapter de parseur.
Flux de travail développeur
flowchart LR
Dev["Developpeur
git, SSH, HTTPS"]
Gitrust["Gitrust
axum, HTMX, Rust"]
PG[("PostgreSQL
metadata, permissions")]
Repos[("Bare repos
disque local")]
Dagger["Dagger CI
pipelines, post-receive"]
DTrack["Dependency-Track
SBOM, CVE"]
Dev -->|"git push"| Gitrust
Gitrust -->|"core data"| PG
Gitrust -->|"core data"| Repos
Gitrust -.->|"hooks CI"| Dagger
Gitrust -.->|"hooks CI"| DTrack
Prêts à reprendre le contrôle de votre code ?
Gitrust est en déploiement progressif. Pour accéder à une démo, poser vos questions ou être accompagné sur une intégration ANSSI-conforme, contactez l'équipe.