# Dossier de déploiement — VraiDocs

Guides et modèles pour une mise en production robuste, sécurisée et à grande échelle.

| Fichier | Rôle |
|---|---|
| [`GO-LIVE.md`](GO-LIVE.md) | **Checklist** complète de mise en production (à cocher intégralement). |
| [`BACKUP.md`](BACKUP.md) | Sauvegarde & restauration — **clés de signature incluses** (SEC-25). |
| [`.env.production.example`](.env.production.example) | Modèle d'environnement de production. |
| [`apache-vhost.conf.example`](apache-vhost.conf.example) | VirtualHost Apache (`DocumentRoot=public`). |
| [`nginx.conf.example`](nginx.conf.example) | Server block Nginx + PHP-FPM. |
| [`systemd/`](systemd/) | Services worker + planificateur (Linux). |

## Ordre recommandé
1. Provisionner le serveur (PHP 8.3, MySQL 8, HTTPS) et le VirtualHost `public/`.
2. Déployer le code, `composer install --no-dev`, `npm ci && npm run build`.
3. Configurer `.env` (voir modèle), `key:generate`, `cles:secret`, `migrate --force`.
4. `php artisan optimize`.
5. Installer worker + planificateur (voir ci-dessous). **Aucun des deux n'est optionnel.**
6. Configurer SMTP + SPF/DKIM/DMARC. Tester un envoi.
7. Mettre en place les **sauvegardes** (BACKUP.md) et **tester une restauration**.
8. Brancher supervision (`/health`, canal `security`, `failed_jobs`).
9. Parcourir toute la checklist `GO-LIVE.md`.

## Linux (recommandé en production)
```bash
# Worker
sudo cp deploy/systemd/vraidocs-worker.service /etc/systemd/system/
# Planificateur
sudo cp deploy/systemd/vraidocs-scheduler.{service,timer} /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now vraidocs-worker vraidocs-scheduler.timer
```
Ou, plus simple pour le planificateur, une ligne cron :
```
* * * * * cd /var/www/vraidocs && php artisan schedule:run >> /dev/null 2>&1
```

## Windows / WAMP (dépannage ou petite instance)
- **Worker** : installer un service avec [NSSM](https://nssm.cc) —
  `nssm install VraiDocsWorker "C:\wamp\bin\php\php8.3\php.exe" "C:\wamp\www\vraidocs\artisan queue:work --sleep=3 --tries=3 --max-time=3600"`.
- **Planificateur** : créer une **tâche planifiée** Windows qui exécute chaque minute
  `php C:\wamp\www\vraidocs\artisan schedule:run`.
- En production nationale, **préférer un serveur Linux** (Apache/Nginx + PHP-FPM).

## Rappels critiques
- **HTTPS + `APP_URL` réel** : sinon les URL signées des QR ne se valident pas.
- **Sauvegarder les secrets** (`APP_KEY`, `DOCUMENT_KEY_SECRET`) **séparément** des données.
- **Worker + planificateur** doivent tourner en permanence, sinon e-mails/purge/anti-fraude sont inactifs.
