# Installer Coquart chez OVH

Le zip se dépose tel quel à la racine de l'hébergement, là où OVH a créé le
dossier `www/` :

| Dans le zip | Rôle |
|---|---|
| `www/` | la racine du site, seule partie visible depuis le navigateur |
| `app/`, `config/`, `routes/`, `database/`, `storage/` | le reste de l'application, hors d'atteinte du navigateur |
| `.ovhconfig` | PHP 8.3 et mode production (OPcache actif) |
| `database/structure.sql` | toute la structure de la base, aussi fournie à côté du zip |

## 1. Déposer les fichiers

Extraire le zip, puis envoyer son contenu par FTP à la racine de
l'hébergement. En multisite, le dossier racine du site doit pointer sur
`www/`.

Si l'hébergement porte déjà un `.ovhconfig` pour d'autres sites, comparer
avant de l'écraser : il règle la version de PHP de tout l'hébergement.

## 2. Créer la base

Dans l'espace client OVH, créer une base MySQL et noter l'hôte, le nom,
l'utilisateur et le mot de passe.

## 3. Créer les tables : au choix

**Par l'installateur.** Ouvrir `https://<le-site>/install.php` : il demande
les accès à la base, écrit le `.env`, crée les tables puis le compte
administrateur.

**Par phpMyAdmin.** Importer `database/structure.sql` dans la base, puis
ouvrir `install.php` comme ci-dessus : il voit des tables déjà à jour, ne
rejoue rien et passe directement au compte administrateur.

`structure.sql` se rejoue sans erreur : une table déjà présente est laissée
telle quelle. Il s'arrête en revanche sur une base d'une version antérieure
(erreur `base_d_une_version_anterieure__passer_par_les_migrations`), avant
d'avoir rien créé. Dans ce cas, ce sont les migrations qui doivent passer.

## 4. Après l'installation

- `install.php` pose `storage/installed.lock` : il refuse ensuite de servir.
  On peut aussi le supprimer.
- Le `.env` écrit par l'installateur met `APP_DEBUG=false` : les erreurs vont
  dans `storage/logs/`, l'écran n'affiche qu'un numéro de référence.
- `www/update-receiver.php` ne sert qu'aux mises à jour par
  `bin/deploy.php`. S'il n'est pas utilisé, le supprimer ; sinon, le
  restreindre par IP dans un `.htaccess`.
- Écran **Administration → Version & mises à jour** (compte développeur) :
  la version, le commit du paquet et l'état des migrations.
