v32 — VPS pour grandir, emails séparés des serveurs applicatifs

VPS growth strategy

Choix retenu: VPS + email externe

Architecture retenue

VPS

Contrôle + croissance

Décidé

2

Base technique

À préparer

4

Avant public

Bloqué

1

Meta App Review

Décision v32

On choisit VPS pour grandir, sans héberger les emails sur les VPS

Le choix VPS donne plus de contrôle sur l’infrastructure, les logs, PostgreSQL, les backups, la sécurité et les futures optimisations. La première architecture propre est simple: un VPS pour l’application, un VPS pour PostgreSQL, Cloudflare devant le domaine, backups externes et emails hébergés chez un fournisseur spécialisé, pas sur les VPS. La publication réelle Facebook reste verrouillée jusqu’à validation de pages_manage_posts par Meta.

Architecture VPS recommandée

Objectif: ne pas mélanger application, base de données, fichiers et sauvegardes.

VPS App/API

Next.js, API routes, PM2, Nginx, logs applicatifs

1 VPS dédié pour l’application Postvoro afin de pouvoir scaler l’API sans toucher à PostgreSQL.

Décidé

VPS PostgreSQL

Base de données production séparée

1 VPS séparé pour PostgreSQL avec accès privé, backups et monitoring. C’est la base pour grandir proprement.

Décidé

Backups externes

Snapshots + dumps PostgreSQL hors serveur principal

Sauvegardes quotidiennes hors du VPS App et hors du VPS DB pour éviter qu’un incident serveur touche les données et les backups.

À préparer

Cloudflare

DNS, HTTPS, protection, proxy, WAF léger

Mettre postvoro.com derrière Cloudflare avant l’ouverture publique pour DNS propre, SSL et protection de base.

À préparer

Email hosting externe

support@postvoro.com, privacy@postvoro.com et emails transactionnels

Ne pas héberger les emails sur le VPS App ni sur le VPS PostgreSQL. Utiliser Zoho Mail, Google Workspace, Migadu et un service transactionnel comme Resend/Postmark/SES.

À préparer

Stockage média

Images, vidéos, fichiers clients et exports

Ne pas stocker les médias lourds directement dans le repo. Préparer plus tard un stockage type S3 compatible ou volume dédié.

À préparer

Publication réelle Facebook

Graph API pages_manage_posts

À garder volontairement verrouillée jusqu’à validation Meta App Review et confirmation explicite par workflow.

À ne pas activer

Plan de croissance

Phase 1 — Lancement contrôlé

2 VPS: App/API + PostgreSQL, Cloudflare, Nginx, PM2, backups externes, publication réelle encore désactivée.

Phase 2 — Premiers clients

Monitoring, logs, alertes, sauvegardes testées, optimisation PostgreSQL, séparation des médias et limites par workspace.

Phase 3 — Croissance

Ajouter workers/jobs, file d’attente, cache, stockage média dédié et possibilité d’ajouter un deuxième VPS App derrière load balancer.

Phase 4 — Scale avancé

DB plus puissante ou managée, réplication, monitoring avancé, autoscaling côté App/API et procédures de rollback documentées.

Règle importante

VPS ne veut pas dire tout mettre sur un seul serveur. Pour grandir proprement, on sépare dès le début l’application et PostgreSQL, puis on ajoute stockage média, workers et monitoring seulement quand le besoin arrive.

Checklist VPS v32

Étape 1

Acheter ou préparer 2 VPS: un pour App/API, un pour PostgreSQL.

Étape 2

Pointer postvoro.com et www.postvoro.com vers le VPS App via Cloudflare.

Étape 3

Installer Node.js LTS, Nginx, PM2, Git/Zip tools et Certbot ou SSL Cloudflare.

Étape 4

Installer PostgreSQL sur le VPS DB, créer la base postvoro_production et un utilisateur dédié.

Étape 5

Créer .env.production uniquement côté serveur, jamais dans le ZIP public.

Étape 6

Déployer le ZIP stable, npm install, npx prisma migrate deploy, npm run build, PM2 start.

Étape 7

Tester /privacy, /terms, /data-deletion, /settings/production et OAuth Meta sur le domaine public.

Étape 8

Garder pages_manage_posts absent des scopes jusqu’à validation Meta.

.env.production VPS

Ces valeurs servent de base. Les secrets restent uniquement sur le VPS, jamais dans Git ni dans une archive publique.

NEXT_PUBLIC_APP_URL

https://postvoro.com

APP_URL

https://postvoro.com

DATABASE_URL

postgresql://postvoro_user:STRONG_PASSWORD@PRIVATE_DB_IP:5432/postvoro_production?schema=public

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

Publication réelle: toujours verrouillée

Même avec VPS, domaine public, HTTPS et email hosting externe, Postvoro ne doit pas publier réellement sur Facebook tant que Meta n’a pas validé pages_manage_posts. La version production doit rester en mode préparation, approbation et simulation.