guides/serveur/forgejo/QUICK-START.md
isUnknown e33395dc35 Réorganiser les guides et ajouter architecture filesystem
- Nouvelle structure : linux-essentials/ et forgejo/
- Nouveau guide : architecture-filesystem.md (comprendre /etc, /var, etc.)
- Déplacement et renommage des guides existants
- README pour chaque dossier
- Suppression des sections auteurs

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-05 08:37:50 +01:00

2.6 KiB
Raw Blame History

Quick Start : Sécuriser Forgejo contre les bots (15 min)

Problème

Bots qui téléchargent massivement des archives → Disque saturé (47G en 24-48h)

Solution en 3 étapes

1 Fail2ban : Ban plus rapide (3 min)

sudo nano /etc/fail2ban/jail.d/forgejo.conf

Changez ces valeurs :

maxretry = 8        # Au lieu de 20
bantime = 21600     # Au lieu de 3600

Ajoutez (si absent) :

bantime.increment = true
bantime.factor = 2
bantime.maxtime = 604800
sudo systemctl restart fail2ban

2 Forgejo : Rate limit + Expiration (3 min)

nano /home/debian/forgejo/data/gitea/conf/app.ini

Changez ces valeurs :

[api]
RATE_LIMIT_BURST = 20      # Au lieu de 100

[repository.local]
ARCHIVE_EXPIRY = 3600      # Au lieu de 604800
docker restart forgejo

3 Cron : Nettoyage plus fréquent (2 min)

sudo crontab -e

Remplacez la ligne existante par :

0 */6 * * * find /home/debian/forgejo/data/gitea/repo-archive -type f -mmin +360 -delete

Nettoyage initial

# Voir la taille
du -sh /home/debian/forgejo/data/gitea/repo-archive

# Nettoyer maintenant
find /home/debian/forgejo/data/gitea/repo-archive -type f -delete

# Vérifier
du -sh /home/debian/forgejo/data/gitea/repo-archive

Vérification quotidienne

# Taille du cache (objectif : < 5G)
du -sh /home/debian/forgejo/data/gitea/repo-archive

# IP bannies (doit augmenter)
sudo fail2ban-client status forgejo-archive

# Top 5 IP actives
docker logs forgejo --since 24h | grep "archive" | grep -oP '\d+\.\d+\.\d+\.\d+' | sort | uniq -c | sort -rn | head -5

Résultat attendu

Avant Après
47G de cache 2-3G max
20 archives avant ban 8 archives avant ban
Ban 1h Ban 6h (puis 12h, 24h...)
100 requêtes/min 20 requêtes/min
Archives gardées 7j Archives supprimées après 1h

Dépannage

Le cache se remplit encore ?

# Voir qui télécharge
docker logs forgejo --since 1h | grep "archive" | grep -oP '\d+\.\d+\.\d+\.\d+' | sort | uniq -c | sort -rn

# Bannir manuellement
sudo fail2ban-client set forgejo-archive banip IP_SUSPECTE

# Vérifier Fail2ban
sudo fail2ban-client status forgejo-archive

Fail2ban ne bannit pas ?

# Tester la regex
sudo fail2ban-regex /var/lib/docker/containers/.../...json.log /etc/fail2ban/filter.d/forgejo-archive.conf

# Logs Fail2ban
sudo tail -f /var/log/fail2ban.log

Pour plus de détails, voir le guide complet : bloquer-telechargements-abusifs.md