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.