# Deploiement OVH - KaRu Cible

Ce document sert a preparer l'installation de l'application sur un sous-domaine OVH.

## Ce que je peux faire pour toi

- preparer les fichiers de l'application ;
- verifier la configuration ;
- adapter le projet aux contraintes OVH ;
- te guider pour creer le sous-domaine ;
- te dire exactement quoi renseigner dans OVH ;
- preparer les commandes d'installation ;
- corriger les erreurs si OVH affiche un message.

## Ce dont j'aurai besoin

Pour installer l'application sur OVH, il faudra recuperer ces informations dans l'espace client OVH.

### 1. Sous-domaine

Exemple souhaite :

```text
cible.karuprod.eu
```

Il faudra que ce sous-domaine pointe vers le dossier public de Laravel :

```text
karu-cible/public
```

### 2. Base de donnees

Il me faudra :

```text
Nom de la base :
Utilisateur :
Mot de passe :
Adresse du serveur :
Port :
```

Ne les ecris pas dans un document public. Le mot de passe doit rester prive.

### 3. Acces aux fichiers

Il faudra l'un des deux acces suivants :

- acces SSH OVH, ideal pour installer Laravel proprement ;
- acces FTP/SFTP, possible mais moins confortable.

Informations utiles :

```text
Adresse du serveur :
Identifiant :
Mot de passe :
Dossier racine du site :
```

## Installation cote OVH

Une fois les fichiers envoyes sur OVH :

```bash
composer install --no-dev --optimize-autoloader
cp .env.example .env
php artisan key:generate
php artisan migrate
php artisan app:create-admin votre-email "mot-de-passe-solide"
php artisan config:cache
php artisan route:cache
php artisan view:cache
```

## Reglages du fichier .env

Le fichier `.env` devra contenir les vraies informations OVH.

```text
APP_NAME="KaRu Cible"
APP_ENV=production
APP_DEBUG=false
APP_URL=https://cible.karuprod.eu

DB_CONNECTION=mysql
DB_HOST=adresse-du-serveur-mysql
DB_PORT=3306
DB_DATABASE=nom-de-la-base
DB_USERNAME=utilisateur
DB_PASSWORD=mot-de-passe
```

## Points de securite

- Le sous-domaine doit pointer vers `public`, pas vers la racine du projet.
- Le fichier `.env` ne doit jamais etre accessible depuis le navigateur.
- `APP_DEBUG` doit rester sur `false`.
- Le mot de passe administrateur doit etre long et unique.
- L'application doit etre utilisee en HTTPS.

