Le bouton « 📁 Nouveau dossier » ouvre une saisie en ligne à droite du fil
d'Ariane (Entrée valide, Échap annule) et crée le sous-dossier dans le
répertoire affiché.
Endpoint POST /mkdir, réservé aux admins : nom nettoyé par secure_filename,
refus des noms réservés ou cachés (app, scripts, .git…), des traversées de
chemin, et des dossiers déjà existants (409).
Le README porte aussi les chemins locaux remis à jour après le déménagement
du dépôt dans ~/Projects/alpinux.static.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01KtgiPNG3inkbM8k7suMtjL
- stats.html : bouton "Générer et ouvrir" avec polling async ; supprime
le window.open automatique (bloqué par les navigateurs)
- app.py : routes POST /stats/generate et GET /stats/status ; exécution
GoAccess en thread daemon, verrou anti-doublon
- .env.example : documente STATS_LOG_FILE et STATS_GENERATE_CMD
- README.md : flux de publication local→git→serveur, variables d'env,
procédure première installation
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Les vhosts, SSL et certificats sont gérés via ISPConfig (owni.alpinux.org:8080).
Supprime les références à a2ensite, certbot et la copie manuelle de vhost.conf.