# Déploiement durable du Portail Famille

Le lien local `http://127.0.0.1:3026` et les liens de tunnel temporaires ne sont pas faits pour durer plusieurs mois.

Pour un lien fiable, il faut déployer l'application sur un hébergement permanent.

## Option recommandée pour une vraie démo de plusieurs mois

Utiliser un hébergeur qui garde le serveur actif en continu, avec HTTPS :

- VPS mairie / OVH / Scaleway / Hetzner ;
- Scalingo ;
- Fly.io ;
- Railway ;
- Render avec une offre payante et un disque persistant ;
- serveur interne mairie accessible derrière un nom de domaine.
- hébergement O2switch avec `Setup Node.js App` dans cPanel.

Pour une mairie, l'option la plus propre est :

```text
https://portail-famille.arthon.fr
```

ou, pour une démo :

```text
https://demo-portail-famille.arthon.fr
```

## Variables de lancement

En local :

```bash
node server.js
```

En production :

```bash
HOST=0.0.0.0 PORT=3026 node server.js
```

## Déploiement Docker

Construire l'image :

```bash
docker build -t portail-famille-tilleuls .
```

Lancer :

```bash
docker run -p 3026:3026 -e HOST=0.0.0.0 -e PORT=3026 portail-famille-tilleuls
```

Pour conserver les données entre deux redémarrages, monter un volume :

```bash
docker run \
  -p 3026:3026 \
  -e HOST=0.0.0.0 \
  -e PORT=3026 \
  -v portail-famille-data:/app/data \
  portail-famille-tilleuls
```

## Déploiement Render

Le fichier `render.yaml` est prêt pour un déploiement Render.

Recommandation pour une démo client :

- utiliser au minimum une instance payante ;
- garder le disque persistant activé ;
- ajouter ensuite un domaine personnalisé.

URL attendue après déploiement :

```text
https://portail-famille-tilleuls.onrender.com
```

ou avec domaine :

```text
https://demo-portail-famille.arthon.fr
```

## Déploiement Fly.io

Le fichier `fly.toml` est prêt pour Fly.io, avec une machine qui reste active.

Créer le volume persistant avant le lancement :

```bash
fly volumes create portail_famille_data --region cdg --size 1
```

Puis déployer :

```bash
fly deploy
```

URL attendue :

```text
https://portail-famille-tilleuls.fly.dev
```

## Déploiement O2switch / cPanel

O2switch convient pour une démo client durable si votre cPanel contient l'outil `Setup Node.js App`.

Voir la procédure dédiée :

```text
O2SWITCH.md
```

## Avant ouverture à des testeurs externes

- Remplacer les mots de passe de démonstration.
- Ne pas saisir de vraies données personnelles pendant la démo.
- Prévoir une sauvegarde du dossier `data/`.
- Utiliser HTTPS.
- Limiter l'accès si la démo contient des informations réalistes.
- Préparer ensuite le raccordement PayFiP réel.
