# Déployer Atelier Plume sur Hostinger Cette version utilise la Web App **Next.js** et une base **PostgreSQL** pour les comptes, projets personnalisés et réponses aux invitations. L'ancienne publication PHP/HTML et le ZIP statique n'incluent pas ces fonctions. ## Web App et mises à jour GitHub Dans hPanel, sélectionner **Web App**, connecter le dépôt GitHub et choisir la branche `main`. Activer les déploiements automatiques si l'option est proposée. | Réglage | Valeur | | --- | --- | | Framework | Next.js | | Répertoire de l'application | Racine du dépôt (`.`) | | Installation, si demandée | `npm ci` avec les dépendances de développement pour la compilation | | Compilation | `npm run build` | | Démarrage, si demandé | `npm start` | | Node.js | `22.x` | | Dossier de sortie, si demandé | `.next` | Ne pas définir `HOSTINGER_STATIC_EXPORT=1`. Une compilation locale ne configure pas la connexion GitHub. Après un push, vérifier le succès du déploiement dans hPanel et ouvrir les pages sur le domaine public. ## Configurer PostgreSQL et les secrets Les fonctions serveur requièrent une base PostgreSQL accessible depuis la Web App. Choisir un fournisseur qui autorise cette connexion et suivre ses instructions sur le filtrage réseau et TLS. L'activation de l'hébergement Node.js ne crée pas elle-même une base PostgreSQL. Définir ces valeurs dans **Environment variables** de la Web App. Les fichiers `.env*` réels restent locaux et ne doivent jamais être ajoutés à GitHub. | Variable | Rôle | | --- | --- | | `DATABASE_URL` | URL PostgreSQL privée du fournisseur | | `AUTH_SECRET` | Secret aléatoire d'au moins 32 octets pour signer les sessions | | `ADMIN_BOOTSTRAP_TOKEN` | Jeton initial pour créer le premier administrateur | | `DATABASE_SSL` | `true` si le fournisseur demande TLS avec un certificat reconnu, sinon `false` | Sous PowerShell, générer séparément `AUTH_SECRET` et `ADMIN_BOOTSTRAP_TOKEN` avec la commande suivante, puis saisir les deux résultats directement dans hPanel : ```powershell node -e 'console.log(require("node:crypto").randomBytes(48).toString("base64url"))' ``` Sur une base neuve, configure `DATABASE_URL` localement puis crée les tables : ```powershell npm run db:push ``` Cette commande doit pouvoir joindre la base PostgreSQL. L'exécuter avant le premier déploiement ou depuis un environnement autorisé par le fournisseur. Après le déploiement, ouvrir `/admin/setup`, saisir le jeton, puis choisir les identifiants de l'administrateur. Utiliser une adresse qui n'a pas déjà de compte client. Supprimer ensuite `ADMIN_BOOTSTRAP_TOKEN` de hPanel. Le jeton ne permet aucune autre création d'administrateur. ## Pages à ouvrir après le déploiement - `/account/index` : création de compte et connexion client. - `/account/dashboard` : projets, brouillons et nombre de réponses. - `/account/projects/` : édition, aperçu, publication et export CSV des RSVP. - `/admin/setup` : création initiale, avec PostgreSQL et le jeton configurés. - `/admin` : comptes, projets et contrôle de la publication. - `/i/` : invitation personnalisée publiée. - `/project-status` : état du projet et limites connues. Les nouvelles invitations permettent actuellement de choisir Jardin secret, Rideau de soie ou Porte de lumière. Le formulaire des invitations personnelles publiées enregistre les RSVP sur PostgreSQL ; les anciennes pages de démonstration restent locales. ## Fonctions encore à raccorder Le paiement Stripe, le formulaire d'envoi de contact, les e-mails transactionnels et la réinitialisation de mot de passe ne sont pas activés. La réinitialisation par e-mail nécessite un fournisseur de courriel. Les contenus commerciaux et les textes juridiques doivent être complétés avant la vente. Le script `npm run build:hostinger` est désactivé : il visait l'ancien export PHP/HTML sans comptes ni données enregistrées. Pour cette version, utiliser Web App avec Next.js et PostgreSQL.