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:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user