v32 — VPS choisi, emails externalisés, publication réelle verrouillée

Deployment readiness

Publication réelle toujours verrouillée

Points prêts

8/13

Checklist v32

À préparer

4

Avant domaine public

Bloqués

1

Meta + production

Domaine cible

postvoro.com

HTTPS obligatoire

Décision v32

On choisit le VPS pour grandir sans ouvrir la publication réelle

Cette page garde les variables de production, les valeurs à copier dans Meta Developers et le plan de test. En v31, le choix est fixé: Postvoro part sur une architecture VPS séparant App/API, PostgreSQL, Cloudflare et backups externes. En v32, les emails sont externalisés: aucun serveur mail sur le VPS App/API ni sur le VPS PostgreSQL. La publication réelle Facebook reste volontairement désactivée jusqu’à validation de pages_manage_posts par Meta.

Checklist déploiement v32

Les points bloqués ne doivent être validés qu’après publication réelle du domaine et configuration Meta Developers.

Domaine public

Le domaine postvoro.com doit pointer vers l’hébergement choisi et répondre en HTTPS.

https://postvoro.com

À préparer

DNS et HTTPS

Cloudflare ou le provider DNS doit avoir les bons enregistrements et un certificat SSL actif.

A/AAAA ou CNAME selon l’hébergeur, SSL Full ou équivalent

À préparer

Application URL production

NEXT_PUBLIC_APP_URL ou APP_URL doit utiliser le domaine final, pas localhost.

https://postvoro.com

Prêt

Base PostgreSQL production

DATABASE_URL doit pointer vers une base PostgreSQL production séparée de la base locale.

Préparer une URL PostgreSQL production avec sauvegardes

Prêt

Migrations Prisma

La base production doit recevoir le schéma Prisma avant les tests OAuth et publications.

npx prisma migrate deploy puis npx prisma generate

À préparer

Variables Meta production

META_APP_ID, META_APP_SECRET et META_REDIRECT_URI doivent exister côté production.

Variables Meta locales détectées

Prêt

Redirect URI production

Meta OAuth doit rediriger vers postvoro.com avant le dossier App Review final.

https://postvoro.com/api/integrations/meta/callback

Prêt

Meta App Domains

Dans Meta Developers, ajouter les domaines officiels de l’application.

postvoro.com, www.postvoro.com

Bloqué

Pages publiques légales

Les pages /privacy, /terms et /data-deletion sont prêtes dans le projet.

https://postvoro.com/privacy · https://postvoro.com/terms · https://postvoro.com/data-deletion

Prêt

Branding et icône Meta

L’icône officielle 1024×1024 et les emails Postvoro sont préparés.

public/postvoro-app-icon-1024.png · support@postvoro.com · privacy@postvoro.com

Prêt

Email hosting externalisé

Les emails officiels et transactionnels ne doivent pas être hébergés sur les VPS Postvoro.

Email hosting externe + transactional provider + SPF/DKIM/DMARC dans Cloudflare

À préparer

Publication réelle verrouillée

Le bouton réel doit rester bloqué tant que pages_manage_posts n’est pas validé par Meta.

pages_manage_posts absent: verrou sûr

Prêt

Plan de rollback

Garder un ZIP stable avant toute publication publique.

postvoro_stable_v29.zip puis postvoro_stable_v30.zip après validation

Prêt

.env.production à préparer

Ces valeurs servent de base. Les secrets doivent rester uniquement côté serveur.

NEXT_PUBLIC_APP_URL

https://postvoro.com

APP_URL

https://postvoro.com

DATABASE_URL

postgresql://USER:PASSWORD@HOST:5432/postvoro_production?schema=public

META_APP_ID

À copier depuis Meta Developers

META_APP_SECRET

À garder secret côté serveur

META_REDIRECT_URI

https://postvoro.com/api/integrations/meta/callback

META_SCOPES

public_profile,pages_show_list,pages_read_engagement

NEXT_PUBLIC_PRIVACY_URL

https://postvoro.com/privacy

NEXT_PUBLIC_TERMS_URL

https://postvoro.com/terms

NEXT_PUBLIC_DATA_DELETION_URL

https://postvoro.com/data-deletion

SUPPORT_EMAIL

support@postvoro.com

PRIVACY_EMAIL

privacy@postvoro.com

TRANSACTIONAL_EMAIL_PROVIDER

Resend / Postmark / Amazon SES

Valeurs Meta Developers

App Domains: postvoro.com, www.postvoro.com

Site URL: https://postvoro.com

Privacy Policy: https://postvoro.com/privacy

Terms: https://postvoro.com/terms

Data deletion: https://postvoro.com/data-deletion

Valid OAuth Redirect URI: https://postvoro.com/api/integrations/meta/callback

Décision infrastructure v32

VPS retenu: App/API séparé de PostgreSQL et emails externalisés

La stratégie retenue est VPS pour garder le contrôle et pouvoir agrandir progressivement: un serveur App/API, un serveur PostgreSQL, Cloudflare devant postvoro.com, des backups externes et un provider email dédié.

Ouvrir VPS strategyOuvrir Email strategy

Simple pour Next.js

Option A — Vercel

Étape 1

Connecter le repository ou uploader une version propre du projet.

Étape 2

Ajouter les variables .env.production dans Project Settings.

Étape 3

Ajouter postvoro.com dans Domains et attendre la validation DNS.

Étape 4

Tester /privacy, /terms, /data-deletion, OAuth Meta et pages synchronisées.

Choix retenu pour grandir

Option retenue — VPS Node.js

Étape 1

Installer Node.js, PostgreSQL client, PM2 et Nginx.

Étape 2

Uploader le ZIP stable, installer les dépendances et faire npm run build.

Étape 3

Lancer avec PM2 derrière Nginx + HTTPS Let’s Encrypt.

Étape 4

Créer des sauvegardes automatiques PostgreSQL et fichiers .env hors du repo.

Évolutif

Option C — Hybride

Étape 1

Front/Next.js sur Vercel ou VPS App.

Étape 2

PostgreSQL sur VPS dédié ou base managée.

Étape 3

Cloudflare pour DNS, SSL, protection et cache statique.

Étape 4

Backups externes séparés de l’hébergement principal.

Tests obligatoires après déploiement

Test 1

Ouvrir https://postvoro.com et vérifier le chargement sans erreur navigateur.

Test 2

Ouvrir /privacy, /terms et /data-deletion depuis le domaine public.

Test 3

Vérifier que l’icône /postvoro-app-icon-1024.png s’ouvre publiquement.

Test 4

Vérifier que support@postvoro.com et privacy@postvoro.com reçoivent les emails via le provider externe.

Test 5

Connecter Meta OAuth avec une Page Facebook de test.

Test 6

Vérifier que les Pages Facebook synchronisées apparaissent dans Intégrations sociales.

Test 7

Créer une publication en brouillon, envoyer en approbation, approuver puis vérifier que le bouton réel reste verrouillé.

Test 8

Télécharger le dossier App Review v26/v30 et garder les captures vidéo.

Sécurité avant activation réelle

Même après déploiement de postvoro.com, la publication réelle doit rester désactivée. Le bouton réel ne doit jamais appeler l’API Graph pour publier tant que Meta n’a pas validé pages_manage_posts et tant qu’un audit log + confirmation explicite ne sont pas en place.

Ne pas ajouter pages_manage_posts dans META_SCOPES avant le dossier final.
Garder les posts en mode brouillon / approbation / simulation.
Tester OAuth avec une Page de test avant tout client réel.
Créer un backup ZIP stable avant chaque changement production.