From 8efb7e30dfc151ede2886d362fbaffafd4f9071d Mon Sep 17 00:00:00 2001 From: yann64 Date: Thu, 4 Jun 2026 20:16:23 +0200 Subject: [PATCH] =?UTF-8?q?README=20:=20correction=20de=20la=20proc=C3=A9d?= =?UTF-8?q?ure=20d'installation=20Docker?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Stack réelle : PHP-FPM + Nginx + PostgreSQL (pas de Redis en prod) - Détail des 4 étapes : extraction, premier lancement, config .env, install finale - Paramètres .env minimaux documentés (APP_KEY auto-généré, SMTP via UI admin) - Commandes courantes (logs, shell, restart) - Section mises à jour complète avec rollback Co-Authored-By: Claude Sonnet 4.6 --- README.md | 78 ++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 71 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index f992a57..813a376 100644 --- a/README.md +++ b/README.md @@ -161,41 +161,105 @@ Dans **Administration → Paramètres du site → Version du logiciel**, le tabl ## Docker -Pour une installation avec Docker (PostgreSQL, Redis, php-fpm) : +Installation avec Docker Compose : **PHP-FPM + Nginx + PostgreSQL** (pas de Redis — cache, sessions et queue utilisent la base de données). + +> La stack Docker utilise exclusivement **PostgreSQL**. Pour MySQL, utilisez l'installation manuelle sur hébergement mutualisé décrite ci-dessus. ### Prérequis - Docker Engine ≥ 24 -- Docker Compose v2 +- Docker Compose v2 (`docker compose version`) ### Première installation +**1. Extraire l'archive** + ```bash tar -xzf mesreleves-X.Y.Z.tar.gz cd mesreleves -./install.sh ``` -Le script crée un `.env` depuis `.env.example`. Éditez-le avec vos paramètres, puis relancez : +**2. Premier lancement — création du `.env`** ```bash ./install.sh ``` -L'application est accessible sur le port 80. +Le script détecte l'absence de `.env`, le crée depuis `.env.example` et s'arrête pour vous laisser le configurer. -### Tâches planifiées (Docker) +**3. Configurer `.env`** + +Ouvrez `.env` et renseignez au minimum : + +```env +APP_URL=https://votre-domaine.fr + +DB_PASSWORD=mot_de_passe_fort # mot de passe PostgreSQL +DB_DATABASE=mesreleves # nom de la base (créée automatiquement) +DB_USERNAME=mesreleves # utilisateur PostgreSQL +``` + +> **`APP_KEY`** est généré automatiquement au premier démarrage — laissez-le vide. +> **SMTP** peut être configuré après installation via **Administration → Paramètres du site** (le 2FA par e-mail s'active dès qu'un serveur SMTP est enregistré). + +**4. Installation complète** + +```bash +./install.sh +``` + +Le script : +1. Construit l'image Docker (php-fpm 8.5, extensions PostgreSQL) +2. Démarre les services `app`, `nginx` et `db` +3. Attend que PostgreSQL soit prêt +4. Exécute les migrations +5. Crée le lien symbolique `storage/` +6. Affiche la commande crontab à copier + +L'application est accessible sur **http://votre-domaine.fr** (port 80). + +### Commandes courantes + +```bash +# Voir les logs en temps réel +docker compose -f docker-compose.prod.yml logs -f app + +# Ouvrir un shell dans le container +docker compose -f docker-compose.prod.yml exec app sh + +# Relancer après modification du .env +docker compose -f docker-compose.prod.yml restart app +``` + +### Tâches planifiées + +Ajoutez à votre crontab (`crontab -e`) la ligne affichée à la fin de `./install.sh` : ``` * * * * * cd /chemin/vers/mesreleves && docker compose -f docker-compose.prod.yml exec -T app php artisan schedule:run >> /dev/null 2>&1 ``` -### Mises à jour (Docker) +### Mises à jour + +Vérifier la version disponible : + +```bash +docker compose -f docker-compose.prod.yml exec app php artisan app:check-update +``` + +Appliquer une mise à jour (sauvegarde BDD → téléchargement → migrations) : ```bash docker compose -f docker-compose.prod.yml exec app php artisan app:update ``` +Lister les sauvegardes et restaurer en cas de problème : + +```bash +docker compose -f docker-compose.prod.yml exec app php artisan app:rollback --list +docker compose -f docker-compose.prod.yml exec app php artisan app:rollback +``` + --- ## Développement