# Changelog — Alpinux Static ## [1.5.0] — 2026-05-06 ### Ajouté - Onglet **Erreurs** dans la navigation : analyse des logs Apache des 7 derniers jours (fichiers `.gz` inclus) - Tableau des erreurs 404 trié par fréquence, avec badge statut coloré (✗ actif / ✓ résolu) cliquable - Détail par chemin (AJAX) : liste des IPs avec compteur, dernière date, referers - Ignorer une IP (devs, tests, IPs internes) — persisté dans `ignored_ips.json`, cache invalidé - Bannir une IP directement depuis l'interface via `fail2ban-client set global-blacklist banip` - Section des IPs ignorées avec suppression individuelle --- ## [1.4.2] — 2026-05-06 ### Corrigé - Statistiques : la page affichait une erreur de génération alors qu'ISPConfig génère déjà le rapport GoAccess chaque nuit — `STATS_FILE` pointe maintenant directement sur le fichier ISPConfig --- ## [1.4.1] — 2026-05-06 ### Corrigé - Changelog : `TypeError` au rendu — clé `items` du dict en conflit avec la méthode Python `dict.items()` en Jinja2 (renommée `entries`) - Sélecteur de largeur : boutons L et ∞ sans effet — `max-width:none` + `margin:auto` sur flex child rétrécissait `
` ; remplacé par `data-cw` sur `` + sélecteurs CSS d'attribut --- ## [1.4.0] — 2026-05-06 ### Ajouté - Sélecteur de largeur du contenu dans le header : Étroit (900 px), Normal (1 200 px), Large (1 600 px), Plein — préférence mémorisée dans le navigateur - Changelog avec numéro de version sémantique, accessible depuis le footer ### Corrigé - Décalage de largeur entre les pages dû à l'apparition/disparition de la scrollbar (`scrollbar-gutter: stable`) - Labels EXIF non traduits : `ResolutionUnit`, `XResolution`, `YResolution` - Valeur numérique brute pour `ColorSpace` → libellé lisible (sRGB, Adobe RGB, Non calibré) ### Modifié - Contenu principal en pleine largeur (suppression du `max-width` fixe sur `
`) --- ## [1.3.0] — 2026-05-06 ### Ajouté - Prévisualisation des fichiers depuis la corbeille (propriétés, métadonnées, téléchargement) - Footer sur toutes les pages avec liens de navigation et numéro de version - Stats corbeille dans le tableau de bord (nombre de fichiers, taille totale, date du plus ancien) ### Modifié - Header compact : avatar initiale + prénom + icône déconnexion (suppression du bouton texte) - Suppression du lien « Tableau de bord » dans la navigation (doublon avec le logo) - `user`, `humansize`, `trash_count` centralisés dans le context processor Flask (disponibles sur toutes les pages) --- ## [1.2.0] — 2026-05-06 ### Ajouté - Corbeille : mise à la corbeille depuis `/browse`, restauration avec gestion des conflits (écraser / renommer), suppression définitive - Purge automatique des éléments en corbeille depuis plus de 30 jours - Badge dans la navigation indiquant le nombre d'éléments en corbeille - Page `/trash` avec tableau partagé (mode `browse` / `trash`) et bouton « Vider la corbeille » --- ## [1.1.0] — 2026-05-06 ### Ajouté - Redimensionnement d'images depuis la prévisualisation : tailles prédéfinies, dimension libre, formats PNG/JPG/ICO - Gestion des conflits lors du redimensionnement (backup, écraser, renommer, ignorer) - Renommage de fichiers inline dans `/browse` et la page de prévisualisation - Affichage des métadonnées image (dimensions, format, mode couleur, DPI, EXIF) - Dimension libre avec contrainte de proportions (mode « carré ») ### Corrigé - Échec du redimensionnement sur les fichiers ICO en mode palette (conversion RGBA avant LANCZOS) - Aucune sélection de taille ou format → copie à l'identique (comportement par défaut) --- ## [1.0.0] — 2026-05-03 ### Ajouté - Upload de fichiers par glisser-déposer avec gestion des conflits (écraser, backup, renommer, ignorer) - Parcourir les assets CDN depuis `/browse` avec fil d'Ariane - Statistiques de consultation via GoAccess (`/stats`), générées à la demande - Authentification SSO via AlpID (Keycloak / OpenID Connect) - Recherche dans les fichiers - Scripts rsync `push-assets.sh` et `pull-assets.sh` pour la synchronisation locale ↔ serveur - Script `deploy-app.sh` pour le déploiement de l'application Flask