1d05138329
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3.4 KiB
3.4 KiB
Déploiement et mise à jour
Mise à jour via le bouton admin
L'interface d'administration propose un bouton Mettre à jour (onglet Dashboard). Il appelle sudo /usr/local/bin/folio-upgrade.sh depuis PHP (www-data) et exécute la séquence complète :
- Sauvegarde du
.env git clone --depth=1dans un répertoire temporaire- Remplacement atomique du répertoire applicatif
chown -R www-data:www-data+chmod g+rwX,o=- Restauration du
.env composer install --no-dev --optimize-autoloaderphp database/migrate.php(migrations SQL)- Création de
.sessions/avec les bons droits git config --system --add safe.directory
Pré-requis serveur (à faire une fois)
# 1. Installer le script (copié depuis le dépôt)
sudo install -o root -m 750 /var/www/mon-site/scripts/server/folio-upgrade.sh \
/usr/local/bin/folio-upgrade.sh
# 2. Adapter APP_DIR et REPO_URL en tête du script
sudo nano /usr/local/bin/folio-upgrade.sh
# 3. Créer la règle sudoers (www-data sans mot de passe)
echo "www-data ALL=(root) NOPASSWD: /usr/local/bin/folio-upgrade.sh" \
| sudo tee /etc/sudoers.d/folio-upgrade
sudo chmod 440 /etc/sudoers.d/folio-upgrade
# 4. Vérifier la syntaxe sudoers
sudo visudo -c
Variables à configurer dans le script :
| Variable | Exemple |
|---|---|
APP_DIR |
/var/www/lan.acegrp.abonnel-www |
REPO_URL |
https://git.abonnel.fr/cedricAbonnel/folio.git |
Sans cette configuration, le bouton retourne :
sudo: a terminal is required to read the password
Fonctionnement du cache de mise à jour
Le résultat de la dernière mise à jour est conservé dans DATA_PATH/.upgrade-log et affiché en <details> dans l'admin.
Mise à jour manuelle
Si le bouton admin n'est pas configuré ou si une mise à jour d'urgence est nécessaire :
# Sauvegarde du .env
cp /var/www/mon-site/.env /tmp/.env.bak
# Clone fresh
sudo rm -rf /var/www/mon-site
sudo git clone --depth=1 https://git.abonnel.fr/cedricAbonnel/folio.git /var/www/mon-site
# Permissions
sudo chown -R www-data:www-data /var/www/mon-site
sudo chmod -R g+rwX,o= /var/www/mon-site
# Restaurer .env
cp /tmp/.env.bak /var/www/mon-site/.env
# Dépendances et migrations
cd /var/www/mon-site
composer install --no-dev --optimize-autoloader
php database/migrate.php
# Répertoire de sessions
sudo mkdir -p /var/www/mon-site/.sessions
sudo chown www-data:www-data /var/www/mon-site/.sessions
sudo chmod 700 /var/www/mon-site/.sessions
# Autoriser git (accès multi-utilisateurs)
sudo git config --system --add safe.directory /var/www/mon-site
Flux RSS des tendances (/trending)
Le flux RSS des articles les plus consultés est alimenté par TrendingParser qui lit les logs Apache.
- Source :
GET /trending?period=<période>— parse les logs et écritDATA_PATH/_cache/trending_<période>.json - Consommateurs (lecture seule du cache) : page d'accueil (rubrique "Meilleures audiences") et
/tendances
Périodes disponibles
| Paramètre | Fenêtre | Cache TTL |
|---|---|---|
10m |
10 min | 2 min |
20m |
20 min | 4 min |
30m |
30 min | 6 min |
1h |
1 heure | 12 min |
8h |
8 heures | 96 min |
1d |
24 heures | 5 h |
7d |
7 jours | 8 h |
14d |
14 jours | 8 h |
30d |
30 jours | 8 h |
1y |
1 an | 8 h |
Prérequis
www-data doit appartenir au groupe adm pour lire /var/log/apache2/ :
sudo usermod -aG adm www-data