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- 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.
Évaluez FerrisGit, puis déployez votre propre instance.
L'instance publique permet de découvrir le produit. Votre instance conserve votre code.
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