Commit graph

13 commits

Author SHA1 Message Date
Alpinux
ef255d605f feat: auto-vérification des pastilles 404 rouges au chargement (v1.10.0)
- Nouveau endpoint POST /errors/status-batch (jusqu'à 200 chemins)
- Au chargement de la page, tous les dots rouges sont vérifiés en batch
  et passent automatiquement en vert si le fichier existe désormais

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-06 20:13:33 +02:00
Alpinux
55d6316dda fix: _get_banned_ips timeout trop court + log des erreurs (v1.9.1)
- timeout fail2ban-client 5 s → 30 s (sous charge le résultat vide
  était mis en cache 60 s, causant « Aucune IP bannie »)
- log explicite en cas d'erreur (returncode, stderr, exception)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-06 20:00:23 +02:00
Alpinux
9835caa3d9 v1.9.0 — Perf bannissements, AS inconnus résolus, blocs repliables
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-06 15:42:33 +02:00
Alpinux
785a4639af v1.8.0 — Fusion pages Bannis et Erreurs en un seul onglet
La page /errors/ intègre désormais deux onglets (Erreurs 404 et Bannissements)
activés via hash URL (#errors / #banned). Le lien "Bannis" disparaît de la nav,
la route /errors/banned/ redirige vers /errors/#banned.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-06 13:53:11 +02:00
Alpinux
5ff97d50b5 feat: page Bannis — liste et déblocage fail2ban par IP ou AS entier
- /errors/banned/ : bannissements groupés par AS (nom, pays, nb entrées)
- Déblocage IP seule ou AS entier via POST /errors/unban
- Filtre dynamique par IP/CIDR/nom AS, mise à jour DOM sans rechargement
- Nav header + sudoers unbanip

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-06 13:46:13 +02:00
Alpinux
d4fe8614c2 feat(cache): IP→ASN cache PostgreSQL + fix deploy venv permissions
- psycopg2-binary ajouté aux dépendances
- Cache ip-api.com dans table ip_asn_cache (PostgreSQL, TTL 30 j)
- ThreadedConnectionPool partagé par worker, schéma auto-créé au démarrage
- Graceful degradation si DATABASE_URL absent
- deploy-app.sh : pip tourne sous static-cdn (sudo -u) pour respecter les droits

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-06 13:39:14 +02:00
Alpinux
5d2a4ab430 feat(erreurs): ban AS entier + masquer IPs bannies (#43, #44)
- Clic 🔨 : lookup AS via ip-api.com, propose 🔨 IP ou 🔨 AS (N préfixes)
- Ban AS : récupère les CIDRs via RIPE Stat, cache 30 j dans as_cache/
- IPs déjà bannies (global-blacklist) masquées du tableau et du détail AJAX
- ignoreip fail2ban : 82.65.88.34 protégée sur toutes les jails
- Sudoers : permission status global-blacklist pour static-cdn

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-06 13:31:35 +02:00
Alpinux
3a6f363e1d feat(erreurs): recherche dynamique par chemin ou IP (#42)
Champ de filtre en temps réel au-dessus du tableau des 404 ;
ferme le panneau de détail des lignes masquées.
Corrige aussi rsync via sudo pour préserver les droits static-cdn.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-06 13:21:02 +02:00
Alpinux
7b9024ab05 fix(erreurs): cache multi-worker + sudo service account pour fail2ban
- Invalidation du cache 404 basée sur mtime de ignored_ips.json (tous les workers gunicorn voient la mise à jour)
- Chemins complets /usr/bin/sudo et /usr/bin/fail2ban-client pour éviter les erreurs PATH dans systemd
- Version 1.5.1

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-06 13:12:54 +02:00
Alpinux
a94bf12e4d chore: version 1.5.0 — page Erreurs 404
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-06 12:57:37 +02:00
Alpinux
11a3ae72ee chore: version 1.4.2 — fix stats ISPConfig
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-06 12:03:42 +02:00
Alpinux
d81acf2b19 chore: version 1.4.1 — correctifs changelog et sélecteur de largeur
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-06 11:57:36 +02:00
Alpinux
6d25cab295 feat: changelog + versioning sémantique
- Fichier VERSION (1.4.0) lu par l'app au démarrage
- CHANGELOG.md versionné (v1.0.0 → v1.4.0)
- Route /changelog avec parsing du markdown et rendu structuré
- Lien cliquable sur le numéro de version dans le footer

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-06 11:43:26 +02:00