README : correction de la procédure d'installation Docker

- 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 <noreply@anthropic.com>
This commit is contained in:
2026-06-04 20:16:23 +02:00
parent 3faa74640d
commit 8efb7e30df
+71 -7
View File
@@ -161,41 +161,105 @@ Dans **Administration → Paramètres du site → Version du logiciel**, le tabl
## Docker ## 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 ### Prérequis
- Docker Engine ≥ 24 - Docker Engine ≥ 24
- Docker Compose v2 - Docker Compose v2 (`docker compose version`)
### Première installation ### Première installation
**1. Extraire l'archive**
```bash ```bash
tar -xzf mesreleves-X.Y.Z.tar.gz tar -xzf mesreleves-X.Y.Z.tar.gz
cd mesreleves 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 ```bash
./install.sh ./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 * * * * * 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 ```bash
docker compose -f docker-compose.prod.yml exec app php artisan app:update 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 ## Développement