# Mettre en ligne un site ou une application

Votre VPS Pro sert vos sites et vos applications sur leur nom de domaine, en HTTP et en HTTPS. Les visiteurs arrivent sur les ports **80** et **443** de votre serveur, sous le nom de votre serveur ; le chiffrement HTTPS va de bout en bout, jusqu'à votre serveur, où vit votre certificat.

## 1. Faire pointer votre domaine vers votre serveur

Là où se gère la zone DNS de votre domaine, créez deux enregistrements pour le nom de votre serveur, avec les adresses affichées dans sa carte, rubrique **VPS** de votre espace client :

| Type   | Nom                                     | Valeur                            |
| ------ | --------------------------------------- | --------------------------------- |
| `A`    | `app` (ou `@` pour le domaine lui-même) | l'**Adresse IPv4** de votre carte |
| `AAAA` | `app` (ou `@`)                          | l'**Adresse IPv6** de votre carte |

Un nom sous `vps.simafri.cloud` fonctionne déjà : il n'y a rien à créer.

Quand la zone DNS de votre domaine est gérée par Simafri, notre équipe pose ces enregistrements pour vous : écrivez-nous. Avant de basculer un site déjà en ligne, demandez-nous aussi d'abaisser la durée de vie (TTL) de l'enregistrement : la bascule se propage alors en quelques minutes.

Pour vérifier depuis votre ordinateur :

```
dig +short A app.mon-entreprise.com

dig +short AAAA app.mon-entreprise.com
```

## 2. Installer votre serveur web

Votre serveur web écoute sur le port **80** pour HTTP et le port **443** pour HTTPS. Deux choix courants :

* **Caddy**, qui obtient et renouvelle seul votre certificat HTTPS ;
* **Nginx** ou **Apache**, avec **Certbot** pour le certificat.

### Avec Caddy

```
apt install caddy
```

Puis, dans `/etc/caddy/Caddyfile`, pour un site statique :

```
app.mon-entreprise.com {

    root * /var/www/app

    file_server

}
```

ou pour une application qui écoute sur le port 3000 :

```
app.mon-entreprise.com {

    reverse_proxy 127.0.0.1:3000

}
```

`systemctl reload caddy`, et votre site répond en HTTPS : Caddy a obtenu le certificat et le renouvellera de lui-même.

### Avec Nginx et Certbot

```
apt install nginx certbot python3-certbot-nginx
```

Créez le site dans `/etc/nginx/sites-available/app` :

```
server {

    listen 80;

    listen [::]:80;

    server_name app.mon-entreprise.com;



    location / {

        proxy_pass http://127.0.0.1:3000;

        proxy_set_header Host $host;

        proxy_set_header X-Forwarded-Proto $scheme;

    }

}
```

Activez-le, puis demandez le certificat :

```
ln -s /etc/nginx/sites-available/app /etc/nginx/sites-enabled/

nginx -t && systemctl reload nginx

certbot --nginx -d app.mon-entreprise.com
```

Certbot pose le certificat Let's Encrypt, ajoute l'écoute sur le port 443 et programme son renouvellement automatique. `certbot renew --dry-run` vérifie que le renouvellement est prêt.

## 3. Garder votre application en marche

Une application Node.js, Python, Go ou Java qui tourne en continu se confie à **systemd** : elle démarre avec le serveur et redémarre seule si elle s'arrête. Exemple, dans `/etc/systemd/system/app.service` :

```
[Unit]

Description=Mon application

After=network.target



[Service]

WorkingDirectory=/srv/app

ExecStart=/usr/bin/node server.js

Restart=always

Environment=NODE_ENV=production

User=www-data



[Install]

WantedBy=multi-user.target
```

```
systemctl daemon-reload

systemctl enable --now app

journalctl -u app -f    # suivre ses journaux
```

PM2 pour Node.js, Gunicorn ou Uvicorn pour Python, ou Docker Compose remplissent le même rôle si vous les préférez.

## 4. Votre base de données

PostgreSQL, MySQL, MariaDB, Redis ou MongoDB s'installent sur votre serveur avec le gestionnaire de paquets, ou depuis le dépôt officiel de l'éditeur pour la dernière version :

```
apt install postgresql
```

Gardez votre base à l'écoute de `localhost` : votre application la joint sur le serveur même. Pour l'administrer depuis votre ordinateur, passez par un tunnel SSH :

```
ssh -p 22101 -L 5432:localhost:5432 root@app.mon-entreprise.com
```

Votre outil (DBeaver, pgAdmin, TablePlus) se connecte alors à `localhost:5432`.

## Servir plusieurs domaines

Votre serveur répond sous son nom, fixé à la commande. Pour servir un autre domaine ou un autre sous-domaine sur le même VPS Pro, écrivez au support en indiquant les noms à ajouter : notre équipe les branche sur votre serveur, puis vous créez leurs enregistrements DNS comme à l'étape 1 et ajoutez leur bloc à votre serveur web.

## Questions fréquentes

### Mon site affiche une erreur de certificat.

Vérifiez dans l'ordre : vos enregistrements `A` et `AAAA` désignent les adresses de votre carte (`dig`), votre serveur web écoute sur les ports 80 et 443 (`ss -tlnp`), et le certificat couvre bien ce nom (`certbot certificates`). Le certificat s'obtient une fois que le nom désigne votre serveur : relancez Certbot, ou rechargez Caddy, après la propagation DNS.

### Mon site ne répond pas du tout.

Sur le serveur, `curl -I http://localhost` montre si votre serveur web répond. `systemctl status nginx` (ou `caddy`, ou votre service) et ses journaux disent pourquoi il s'est arrêté. Décrivez ce que vous observez au support : l'Assistance intégrale diagnostique avec vous.

### Puis-je installer WordPress, Laravel ou Symfony ?

Oui : installez PHP-FPM, votre base de données et votre serveur web, puis votre application, comme sur tout serveur Linux. L'Assistance intégrale vous indique les réglages adaptés à votre projet, étape par étape.
