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