[{"data":1,"prerenderedAt":158},["ShallowReactive",2],{"seo-verification":3,"blog-deployer-payload-cms-vps-fr":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"id":7,"slug":8,"title":9,"excerpt":10,"readTime":11,"views":12,"isPinned":13,"publishedAt":14,"category":15,"categories":21,"featuredImage":23,"bgImage":24,"posterImage":25,"relatedSolution":26,"intro":28,"sections":29,"ctaTitle":112,"ctaBody":113,"ctaButton":114,"ctaUrl":115,"relatedPosts":116},55,"deployer-payload-cms-vps","Déployer une application Payload CMS sur un VPS","Déployez Payload CMS sur un VPS Cloud : app Next.js, MongoDB ou PostgreSQL, Docker, reverse proxy et SSL. Comparatif Payload vs Strapi inclus.",9,435,false,"2026-04-26T00:00:00+00:00",{"id":16,"name":17,"slug":18,"color":19,"icon":20},4,"Développement","developpement","bg-warning\u002F10 text-warning","dev",[22],{"id":16,"name":17,"slug":18,"color":19,"icon":20},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fdeployer-payload-cms-vps-poster.svg",{"categorySlug":18,"appSlug":27},"payload-cms","Payload CMS est un CMS headless TypeScript-first qui s'intègre nativement dans Next.js. Le self-héberger sur un VPS vous donne une stack unifiée code-first, où le CMS et le front partagent le même runtime. Voici comment le déployer en production, avec sa base de données et un comparatif face à Strapi.",[30,34,44,47,69,109],{"type":31,"title":32,"body":33},"h2","Pourquoi self-héberger Payload CMS sur un VPS","Payload CMS adopte une approche radicalement code-first : votre schéma de contenu est défini en TypeScript dans des fichiers de configuration, versionnés avec Git, et depuis sa version 3 Payload s'installe directement dans une application Next.js via le App Router. Cela signifie qu'un VPS vous permet d'héberger le CMS et le site front dans un seul et même processus Node, partageant le build et le runtime. Vous obtenez un typage de bout en bout, des migrations de schéma gérées dans le code, et aucune dépendance à une interface graphique pour modéliser vos contenus. Le self-hosting est ici l'option naturelle : Payload est pensé pour être déployé comme n'importe quelle app Next.js, et un VPS vous donne le contrôle de la base (MongoDB ou PostgreSQL), des uploads et des variables d'environnement, sans plateforme intermédiaire.",{"type":35,"title":36,"items":37},"ul","Bénéfices concrets",[38,39,40,41,42,43],"Schéma de contenu défini en TypeScript et versionné avec Git : revue de code et historique complets","CMS et front Next.js dans un seul runtime : un seul build, un seul process à déployer","Typage de bout en bout entre la config Payload, l'API et le front, sans génération manuelle","Choix de la base : MongoDB ou PostgreSQL via les adaptateurs officiels","Migrations de schéma pilotées par le code (`payload migrate`), reproductibles entre environnements","Local API : accès direct aux données sans appel HTTP depuis le code serveur Next.js",{"type":31,"title":45,"body":46},"Prérequis matériels et logiciels","Payload reposant sur Next.js, le build est exigeant : prévoyez un VPS de 2 vCPU et 4 Go de RAM pour builder et faire tourner l'application confortablement, surtout si le front Next.js est conséquent. Installez Node.js 20 LTS, Docker et Docker Compose. Côté base, provisionnez MongoDB 7 ou PostgreSQL 16 selon l'adaptateur choisi (`@payloadcms\u002Fdb-mongodb` ou `@payloadcms\u002Fdb-postgres`). Pointez votre domaine vers l'IP du VPS. Comptez 15 Go de disque pour les `node_modules`, le build `.next`, les uploads et les sauvegardes de base.",{"type":48,"title":49,"steps":50},"steps","Déploiement pas à pas",[51,54,57,60,63,66],{"title":52,"body":53},"Choisir et configurer l'adaptateur de base","Dans `payload.config.ts`, déclarez l'adaptateur : `mongooseAdapter` pour MongoDB ou `postgresAdapter` pour PostgreSQL, en lisant l'URL de connexion depuis `DATABASE_URI`. Ce choix est structurant : PostgreSQL impose des migrations, MongoDB est plus souple sur le schéma.",{"title":55,"body":56},"Définir le secret et builder l'app Next.js","Renseignez `PAYLOAD_SECRET` (clé de chiffrement des tokens) dans l'environnement. Lancez `npm run build` : comme Payload 3 vit dans Next.js, cette commande compile à la fois l'admin Payload et votre front. Surveillez la RAM pendant le build.",{"title":58,"body":59},"Conteneuriser avec Docker Compose","Créez un Dockerfile `node:20-alpine` qui build l'app et lance `npm start`, puis un `docker-compose.yml` reliant le service `app` à un service `mongo` ou `postgres`. Montez un volume pour les uploads et passez `DATABASE_URI` et `PAYLOAD_SECRET` en variables. Lancez `docker compose up -d`.",{"title":61,"body":62},"Exécuter les migrations (PostgreSQL)","Si vous utilisez l'adaptateur PostgreSQL, appliquez le schéma avec `npm run payload migrate` après le démarrage des conteneurs. Avec MongoDB, le schéma est appliqué automatiquement, aucune migration manuelle n'est nécessaire.",{"title":64,"body":65},"Configurer Nginx en reverse proxy","Pointez un vhost vers `http:\u002F\u002F127.0.0.1:3000` (port Next.js par défaut). Augmentez `client_max_body_size` pour les uploads de médias et ajoutez les en-têtes `X-Forwarded-Proto` pour que Payload génère des URLs HTTPS correctes.",{"title":67,"body":68},"Sécuriser avec SSL et fixer l'URL serveur","Exécutez `certbot --nginx -d mondomaine.ma`, puis définissez `serverURL: 'https:\u002F\u002Fmondomaine.ma'` dans `payload.config.ts`. Cette URL conditionne les liens des médias, les emails de réinitialisation et le bon fonctionnement du panneau admin derrière le proxy.",{"type":70,"title":71,"headers":72,"rows":76},"comparison","Payload CMS vs Strapi : quel CMS headless self-héberger ?",[73,74,75],"Critère","Payload CMS","Strapi",[77,81,85,89,93,97,101,105],[78,79,80],"Approche de configuration","Code-first en TypeScript, versionné avec Git","GUI-first via le Content-Type Builder",[82,83,84],"Intégration front","Native dans Next.js (un seul runtime)","Découplé, front et CMS séparés",[86,87,88],"Bases supportées","MongoDB et PostgreSQL","PostgreSQL, MySQL, SQLite",[90,91,92],"Typage","TypeScript de bout en bout natif","Types générés, intégration moins serrée",[94,95,96],"Accès aux données serveur","Local API sans appel HTTP","API REST\u002FGraphQL via HTTP",[98,99,100],"Modélisation du contenu","Dans le code, par les développeurs","Dans l'interface, accessible aux non-dev",[102,103,104],"RAM nécessaire au build","Élevée (build Next.js)","Élevée (build admin React)",[106,107,108],"Idéal pour","Équipes dev, projets Next.js typés","Équipes mixtes, modélisation visuelle",{"type":110,"body":111},"tip","Exploitez la Local API de Payload dans vos composants serveur Next.js : au lieu d'appeler votre propre API via `fetch`, importez `getPayload` et interrogez la base directement (`payload.find({ collection: 'posts' })`). Vous supprimez un aller-retour HTTP et gagnez en latence comme en sécurité. Pour les médias, branchez le plugin `@payloadcms\u002Fstorage-s3` afin de stocker les uploads hors du VPS, et automatisez un dump quotidien de votre base via un cron pour garantir des sauvegardes hors-serveur.","Déployez Payload CMS sur une stack unifiée","Le VPS Cloud ServOrbit offre la puissance nécessaire au build Next.js de Payload et un environnement Docker prêt pour MongoDB ou PostgreSQL, afin d'héberger votre CMS code-first et votre front sur la même machine.","Découvrir le VPS Cloud","\u002Fvps-cloud",[117,131,145],{"id":118,"slug":119,"title":120,"excerpt":121,"readTime":122,"views":123,"isPinned":13,"publishedAt":124,"category":125,"categories":126,"featuredImage":23,"bgImage":24,"posterImage":128,"relatedSolution":129},5,"deployer-laravel-vps","Déployer Laravel sur un VPS : guide production","Passez Laravel en production sur VPS : PHP, workers, cache, base de données, reverse proxy et HTTPS proprement configurés.",7,2840,"2026-02-09T00:00:00+00:00",{"id":16,"name":17,"slug":18,"color":19,"icon":20},[127],{"id":16,"name":17,"slug":18,"color":19,"icon":20},"\u002Fblog\u002Fcovers\u002Fdeployer-laravel-vps-poster.svg",{"categorySlug":20,"appSlug":130},"laravel-stack",{"id":132,"slug":133,"title":134,"excerpt":135,"readTime":136,"views":137,"isPinned":13,"publishedAt":138,"category":139,"categories":140,"featuredImage":23,"bgImage":24,"posterImage":142,"relatedSolution":143},43,"deployer-nodejs-vps","Déployer une application Node.js sur un VPS","Déployez une application Node.js en production sur un VPS : PM2, reverse proxy Nginx, SSL Let's Encrypt et démarrage automatique au boot.",8,591,"2026-05-08T00:00:00+00:00",{"id":16,"name":17,"slug":18,"color":19,"icon":20},[141],{"id":16,"name":17,"slug":18,"color":19,"icon":20},"\u002Fblog\u002Fcovers\u002Fdeployer-nodejs-vps-poster.svg",{"categorySlug":18,"appSlug":144},"nodejs",{"id":146,"slug":147,"title":148,"excerpt":149,"readTime":136,"views":150,"isPinned":13,"publishedAt":151,"category":152,"categories":153,"featuredImage":23,"bgImage":24,"posterImage":155,"relatedSolution":156},44,"deployer-django-vps","Déployer une application Django sur un VPS","Déployez Django sur un VPS : Gunicorn, Nginx, PostgreSQL, Docker et SSL. Guide complet pour développeurs Python qui veulent self-héberger.",628,"2026-05-07T00:00:00+00:00",{"id":16,"name":17,"slug":18,"color":19,"icon":20},[154],{"id":16,"name":17,"slug":18,"color":19,"icon":20},"\u002Fblog\u002Fcovers\u002Fdeployer-django-vps-poster.svg",{"categorySlug":18,"appSlug":157},"django",1784126233343]