Commit graph

7 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
a01976cbe8 Bannis : blocs AS repliables par défaut (fixes #47)
Chaque AS est replié au chargement (▶). Clic sur la ligne titre pour
déplier/replier. Bouton "Tout déplier / Tout replier". La recherche
dynamique déplie automatiquement les blocs qui contiennent un résultat.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-06 14:14:06 +02:00
Alpinux
259e8d5f3f Perf : tab Bannis chargé en AJAX, batch SQL pour les ASN
La route /errors/ ne calculait plus les groupes ASN au chargement (N×SQL
pour chaque CIDR banni). Le tab Bannissements est désormais lazy-chargé via
/errors/banned-groups avec un unique SELECT ANY() en PostgreSQL.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-06 14:09:12 +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
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
0513afdbb4 feat: page Erreurs 404 — logs, détail IP/date/referer, ignore, ban fail2ban
- Onglet "Erreurs" dans la navigation
- Analyse des logs Apache des 7 derniers jours (.gz inclus)
- Tableau trié par nombre de requêtes avec badge statut (résolu/actif)
- Détail AJAX par chemin : IPs, compteurs, referers
- Vérification live au clic sur le point de statut
- Ignorer une IP (persisté dans ignored_ips.json, cache invalidé)
- Bannir une IP via fail2ban-client (global-blacklist)
- Section IPs ignorées avec suppression depuis la page

Closes #37 #38 #39 #40 #41

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-06 12:57:13 +02:00