FerrisGitSécurité

Sécurité et vos données

Les mesures qui protègent une instance, décrites précisément. Les données ne quittent jamais votre serveur.

Ce que renvoie le serveur

Les en-têtes de sécurité, tels qu'une instance les envoie.

$ curl -s -D - -o /dev/null http://localhost:8080/health
HTTP/1.1 200 OK
content-type: text/plain; charset=utf-8
content-security-policy: default-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; object-src 'none'; base-uri 'self'; frame-ancestors 'none'
x-frame-options: DENY
x-content-type-options: nosniff
referrer-policy: no-referrer
x-robots-tag: noindex, nofollow
content-length: 2
date: Sun, 04 Oct 2026 11:41:43 GMT
Une instance locale, version 0.1.2, interrogée sur /health. Le serveur ajoute la politique de contenu, X-Frame-Options, X-Content-Type-Options et Referrer-Policy à chaque réponse : pages, API et Git.
La double authentification est obligatoire
Un compte sans facteur enrôlé passe par la configuration avant de pouvoir faire quoi que ce soit d'autre. TOTP, clés d'accès et codes de secours.
Mots de passe hachés avec Argon2
Un sel par mot de passe. Un nom d'utilisateur inconnu coûte autant de calcul qu'un mot de passe faux, et reçoit la même réponse.
Secrets chiffrés en AES-256-GCM
Variables CI, secrets des webhooks, mot de passe SMTP et secrets TOTP, sous SETTINGS_ENCRYPTION_KEY.
Des jetons pour Git, jamais de mots de passe
Git sur HTTPS s'authentifie avec un jeton d'accès personnel, stocké haché : le serveur ne peut pas le relire.
Un journal d'audit
Connexions échouées, accès Git refusés, réinitialisations de mot de passe, promotions et réinitialisations de MFA par un administrateur sont enregistrées comme événements.
Pas de cookies, des en-têtes stricts
Les sessions sont des JWT. Chaque réponse porte une Content-Security-Policy, X-Frame-Options: DENY, et les routes de connexion sont limitées en débit par IP.
Vos données, sur votre serveur
PostgreSQL et un répertoire de dépôts, tous deux à vous de sauvegarder. L'image tourne avec un utilisateur sans privilège sur un système de fichiers en lecture seule.

La page Sécurité de la documentation

Évaluez FerrisGit, puis déployez votre propre instance.

L'instance publique permet de découvrir le produit. Votre instance conserve votre code.

Démarrer la pile avec Docker Compose
git clone https://github.com/Masmarino/FerrisGit.git
cd FerrisGit
cp .env.example .env
# set POSTGRES_PASSWORD, JWT_SECRET, SETTINGS_ENCRYPTION_KEY and the admin password in .env
docker compose up -d --build