Commit graph

13 commits

Author SHA1 Message Date
Alpinux
130a901be7 feat: gestion des conflits lors de l'upload de fichiers
Ajoute un sélecteur de stratégie dans le formulaire de dépôt CDN,
identique à celui du redimensionnement :
- Écraser (défaut) : comportement précédent, écrase silencieusement
- Backup : renomme l'existant en {stem}_bak_{timestamp}{ext} avant dépôt
- Renommer : auto-incrémente le nom du fichier uploadé ({stem}_1, _2…)
- Ignorer : ne dépose pas si le fichier existe déjà

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-06 09:29:29 +02:00
Alpinux
14259c59f1 feat: renommage de fichiers + gestion des conflits dans le redimensionnement
- Route POST /rename : renomme un fichier CDN avec validation sécurité,
  retourne JSON (name, path, browse_url)
- Route /resize : accepte param `conflict` (backup | overwrite | rename | skip)
  backup  → renomme l'existant en {stem}_bak_{timestamp}{ext} avant création
  rename  → auto-incrémente le nom de la copie ({stem}_1, _2…)
  overwrite → écrase silencieusement
  skip    → ignore (signalé dans les erreurs)
- browse.html : bouton ✏️ par fichier, renommage inline avec Entrée/Échap
- preview_image.html : bouton ✏️ dans l'en-tête, champ inline + redirect
  après validation ; radio segmenté pour la stratégie de conflit
- app.css : styles btn-rename, rename-inline, radio-chips segmentés

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-06 09:26:26 +02:00
Alpinux
c503f5e074 feat: redimensionnement d'images depuis la prévisualisation CDN
Ajoute une carte interactive sous chaque aperçu d'image permettant de
générer des copies redimensionnées directement dans le même dossier CDN.

- Route POST /resize avec Pillow (PNG, JPG, ICO) et cairosvg optionnel (SVG)
- Tailles disponibles : 32, 64, 100, 128, 200, 300, 500, 600, 1024 px (carré)
- Formats : png, jpg, ico (svg uniquement si la source est déjà SVG)
- Nommage automatique : {nom}_{taille}x{taille}.{ext}
- UI chips cliquables, soumission AJAX, retour avec liens directs

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-06 08:26:51 +02:00
Alpinux
0079c9297a Ajouter référence au README principal de l'espace de travail
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-03 21:00:07 +02:00
Alpinux
b1020062b0 fix: logout SSO — redirige vers l'endpoint end_session d'AlpID
session.clear() seul ne déconnectait pas la session Keycloak,
provoquant une reconnexion automatique immédiate.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-03 20:43:10 +02:00
Alpinux
16c1af4143 feat: génération GoAccess à la demande + README complet
- 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>
2026-05-03 20:39:25 +02:00
Alpinux
25b68df5ec docs: documente l'upload et les variables d'env de l'app Flask
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-03 20:36:35 +02:00
Alpinux
64989e83c8 feat: upload de fichiers dans l'app Flask CDN
Ajoute la route POST /upload (admin uniquement) et la zone de dépôt
dans browse.html — glisser-déposer ou sélection multiple, destination
= dossier courant du navigateur.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-03 20:35:29 +02:00
Alpinux
7c70e904f3 fix: supprime --delete, exclut wiki/ et fichiers ISPConfig
Push : additive uniquement (pas de suppression sur le serveur)
Pull : idem, wiki/ exclu des deux côtés
Excludes communs : .git/, scripts/, README.md, .env*, .gitignore, wiki/
Correction bug bash set -e avec ((VAR++)) → VAR=$(( VAR + 1 ))

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-03 18:22:45 +02:00
Alpinux
1c0731a829 fix: STATIC_USER=abonnelc, sudo rsync, chemin logo corrigé
- Connexion SSH via abonnelc (sudo NOPASSWD:ALL)
- --rsync-path="sudo rsync" pour accéder à web17/web/logo/ (owner web17)
- STATIC_PATH pointe sur web17/web/logo/ (pas la racine ISPConfig)
- .env.example neutre : STATIC_USER reste un placeholder

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-03 18:17:40 +02:00
Alpinux
a32c768faa feat: scripts push/pull rsync pour static.alpinux.org
push-assets.sh : synchronise les assets locaux vers le serveur (dry-run, confirmation, --delete)
pull-assets.sh : récupère les assets distants en local (dry-run, confirmation)
Gestion des fichiers nouveaux, modifiés et supprimés via rsync --checksum.
Config SSH dans .env (non versioné).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-03 18:02:43 +02:00
Alpinux
e57ef9abfb docs: remplace config Apache manuelle par ISPConfig
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.
2026-05-03 17:59:52 +02:00
Alpinux
d4ca448671 initial commit — migration depuis monorepo alpinux.site.2026 2026-05-03 17:48:11 +02:00