[{"data":1,"prerenderedAt":180},["ShallowReactive",2],{"seo-verification":3,"blog-heberger-ghost-ma-fr":6,"promo-bar-likely":179},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"key":7,"data":8},"blog-heberger-ghost-ma-fr",{"id":9,"slug":10,"slugs":11,"title":15,"excerpt":16,"readTime":17,"views":18,"isPinned":19,"noindex":19,"publishedAt":20,"updatedAt":21,"category":22,"categories":28,"featuredImage":30,"bgImage":31,"posterImage":32,"relatedSolution":33,"intro":35,"sections":36,"ctaTitle":119,"ctaBody":120,"ctaButton":121,"ctaUrl":122,"relatedPosts":123},72,"heberger-ghost",{"fr":10,"en":12,"ar":13,"es":14},"hosting-ghost-on-your-own-vps","استضافة-ghost-على-خادمك-الـvps-الخاص","alojar-ghost-en-un-vps","Héberger Ghost sur VPS : guide complet 2026","Déployez Ghost v6 sur votre VPS avec Caddy, MySQL, Ghost CLI et Stripe Tax : installation, reverse proxy TLS, mise à jour et dépannage des erreurs fréquentes.",10,1,false,"2026-04-09T00:00:00+00:00","2026-11-04T16:30:25+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},7,"Self-hosting","self-hosting","bg-indigo-500\u002F10 text-indigo-400","cloud",[29],{"id":23,"name":24,"slug":25,"color":26,"icon":27},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fheberger-ghost-poster.svg",{"categorySlug":25,"appSlug":34},"ghost","Ghost est la plateforme de publication moderne pensée pour les créateurs : blog rapide, newsletters intégrées et abonnements payants natifs. Avec Ghost v6 (juillet 2026), la monétisation par newsletters a évolué et les paramètres Stripe ont changé. En l'hébergeant sur votre VPS, vous évitez les commissions de Ghost(Pro) et de Substack. Voici un déploiement complet et professionnel.",[37,41,52,55,80,83,86,89,92,95,110,113,116],{"type":38,"title":39,"body":40},"h2","Pourquoi auto-héberger Ghost sur un VPS","Ghost combine ce que WordPress fait laborieusement et ce que Substack facture cher : un éditeur épuré, des performances natives excellentes (Node.js), une gestion de membres et d'abonnements payants intégrée via Stripe, et l'envoi de newsletters sans plugin. Mais Ghost(Pro) facture à l'audience, et les plateformes de newsletter prennent une commission sur vos revenus.\n\nEn l'hébergeant sur votre VPS, vous gardez 100 % de vos abonnés payants (hors frais Stripe), vous personnalisez le thème sans restriction, et vous maîtrisez votre liste d'emails — votre actif le plus précieux. Avec Ghost v6, les créateurs qui monétisent leurs newsletters bénéficient aussi de la collecte automatique de la TVA via Stripe Tax, sans aucune dépendance à un service tiers.",{"type":42,"title":43,"items":44},"ul","Les bénéfices d'un Ghost auto-hébergé",[45,46,47,48,49,50,51],"Aucune commission plateforme sur vos abonnements payants (hors Stripe)","Performances natives : le temps de chargement se mesure depuis la connexion du lecteur — il dépend de l'opérateur, de l'heure et du chemin emprunté","Newsletters et membres intégrés, sans empilement de plugins","Personnalisation totale du thème Handlebars et accès complet à l'API","Maîtrise de votre liste d'abonnés et de vos données","Coût fixe du VPS quel que soit le nombre de lecteurs","Ghost v6 : collecte TVA\u002Ftaxe intégrée via Stripe Tax pour les créateurs monétisés",{"type":38,"title":53,"body":54},"Prérequis réalistes","Ghost v6 tourne sur **Node.js 20 LTS** minimum (Node 22 recommandé pour les performances). Prévoyez un VPS avec au moins 1 vCPU et 2 Go de RAM pour un blog avec un trafic confortable ; montez à 4 Go si votre audience grandit vite ou si vous activez les newsletters volumineuses. Pour un usage de production, réservez 20 Go de disque minimum pour les médias et la base de données.\n\nLa base de données recommandée en production est **MySQL 8** (SQLite n'est supporté qu'en développement — voir la section dépannage). Il vous faut aussi un service SMTP transactionnel (Mailgun, Postmark, Brevo) pour l'envoi fiable des newsletters et des emails d'authentification des membres, un domaine `blog.votredomaine.com` pointé sur l'IP de votre VPS, et **Caddy** ou Nginx pour le reverse proxy HTTPS. Caddy est préférable : il provisionne et renouvelle les certificats Let's Encrypt sans configuration supplémentaire.",{"type":56,"title":57,"steps":58},"steps","Installation via Ghost CLI (méthode recommandée)",[59,62,65,68,71,74,77],{"title":60,"body":61},"Préparer le serveur","Sur Debian\u002FUbuntu, installez Node.js 20, MySQL 8, Nginx (requis par Ghost CLI pour sa vérification de compatibilité) et Caddy. Créez un utilisateur dédié (pas root) :\n\n```bash\nadd user --disabled-login ghost-user\nsu - ghost-user\n```",{"title":63,"body":64},"Installer Ghost CLI","```bash\nnpm install ghost-cli@latest -g\n```\n\nGhost CLI gère l'installation, les migrations de base, les mises à jour et les redémarrages du process manager PM2.",{"title":66,"body":67},"Créer le répertoire et lancer l'installation","```bash\nmkdir -p \u002Fvar\u002Fwww\u002Fghost\ncd \u002Fvar\u002Fwww\u002Fghost\nghost install\n```\n\nLe wizard vous demande l'URL du blog (ex. `https:\u002F\u002Fblog.votredomaine.com`), les identifiants MySQL, le service SMTP et si vous souhaitez configurer Nginx. Répondez **non** à la config Nginx si vous utilisez Caddy — vous la configurerez à l'étape suivante.",{"title":69,"body":70},"Configurer le reverse proxy TLS avec Caddy","Créez ou éditez votre `Caddyfile` :\n\n```bash\nblog.votredomaine.com {\n    reverse_proxy localhost:2368\n    encode gzip\n    header \u002Fghost\u002F* Cache-Control \"no-store\"\n    header \u002Fmembers\u002F* Cache-Control \"no-store\"\n}\n```\n\nCaddy obtient et renouvelle le certificat Let's Encrypt automatiquement. Ghost écoute en local sur le port 2368 ; seul Caddy est exposé sur les ports 80 et 443.",{"title":72,"body":73},"Sécuriser le premier accès","Ouvrez `\u002Fghost` immédiatement après l'installation : Ghost affiche son assistant de création de compte (nom, e-mail, mot de passe). Complétez-le sans délai — tant que l'assistant n'est pas finalisé, quiconque atteint cette URL peut devenir propriétaire du blog.",{"title":75,"body":76},"Connecter votre service SMTP","Dans **Paramètres → Email**, vérifiez que les identifiants SMTP sont corrects et envoyez un email de test. L'envoi de newsletters et les emails de connexion des membres passent par cette configuration — un `MAIL_FROM` mal formé (sans domaine vérifié) est l'une des causes les plus fréquentes de silences à l'inscription.",{"title":78,"body":79},"Brancher Stripe et activer les abonnements","Dans **Paramètres → Membres**, connectez votre compte Stripe pour activer les abonnements payants. Définissez vos niveaux (tiers), vos prix mensuels et annuels, puis publiez votre premier article et envoyez votre première newsletter.",{"type":38,"title":81,"body":82},"Lancer Caddy et vérifier le reverse proxy","Une fois le `Caddyfile` écrit, démarrez ou rechargez Caddy pour appliquer la configuration :\n\n```bash\ncaddy run --config \u002Fetc\u002Fcaddy\u002FCaddyfile\n```\n\nSi Caddy est géré en tant que service systemd (ce qui est le cas après une installation via APT), préférez la commande de rechargement sans interruption :\n\n```bash\nsystemctl reload caddy\n```\n\nCaddy contacte immédiatement Let's Encrypt pour obtenir un certificat TLS pour votre domaine via le challenge HTTP-01. Dans les 30 secondes, `https:\u002F\u002Fblog.votredomaine.com` doit répondre. Vérifiez l'état du certificat :\n\n```bash\ncurl -sv https:\u002F\u002Fblog.votredomaine.com\u002F 2>&1 | grep -E 'SSL|subject|issuer'\n```\n\nSi la commande affiche un `issuer: O=Let's Encrypt`, le certificat est valide. En cas d'erreur `connection refused`, vérifiez que Ghost tourne bien sur le port 2368 avec `ghost status` depuis le répertoire d'installation. Si le port 443 est fermé dans votre pare-feu, ouvrez-le avant de lancer Caddy : `ufw allow 443`.",{"type":38,"title":84,"body":85},"Ghost v6 et Stripe Tax : le nouveau champ tax_id_collection","Ghost v6 introduit la prise en charge du champ `tax_id_collection` de l'API Stripe. Ce champ permet à Stripe Tax de collecter automatiquement le numéro de TVA ou d'identification fiscale de l'acheteur au moment du paiement, conformément aux réglementations européennes et mondiales.\n\n**Pour les instances existantes migrées vers Ghost v6**, cette fonctionnalité est une configuration de votre côté Stripe, pas un changement dans Ghost lui-même. Deux points à vérifier :\n\n1. Dans le Dashboard Stripe, activez **Stripe Tax** et configurez vos règles fiscales par pays.\n2. Dans **Stripe → Checkout → Paramètres**, activez la collecte du numéro fiscal si requis pour votre marché.\n\nLes instances Ghost v5 qui mettent à jour vers v6 sans ajuster leurs paramètres Stripe continueront à fonctionner, mais les nouvelles fonctions de conformité fiscale resteront inactives tant que vous n'aurez pas configuré Stripe Tax de votre côté.",{"type":38,"title":87,"body":88},"Mettre à jour Ghost avec Ghost CLI","Ghost CLI simplifie les mises à jour majeures et mineures. Depuis le répertoire d'installation :\n\n```bash\ncd \u002Fvar\u002Fwww\u002Fghost\nghost update\n```\n\nPour cibler une version spécifique, par exemple lors d'une migration v5 → v6 :\n\n```bash\nghost update 6.x.x\n```\n\nGhost CLI arrête le process PM2, applique les migrations de base de données, met à jour les fichiers et redémarre Ghost. Si une migration échoue, Ghost CLI effectue un rollback automatique et affiche le détail de l'erreur dans le terminal.\n\nAvant toute mise à jour majeure (v5 → v6), deux gestes préventifs sont indispensables : sauvegardez le répertoire de contenu `\u002Fvar\u002Fwww\u002Fghost\u002Fcontent` (médias et thèmes personnalisés) et exportez la base MySQL :\n\n```bash\nmysqldump -u ghost -p ghost_db > ghost_backup_$(date +%F).sql\n```\n\nEnfin, vérifiez la version installée après la mise à jour :\n\n```bash\nghost version\n```\n\nUn numéro de version incorrect après une mise à jour signale généralement un problème de permissions sur le répertoire `\u002Fvar\u002Fwww\u002Fghost` — vérifiez que l'utilisateur dédié est bien propriétaire du dossier.",{"type":38,"title":90,"body":91},"Dépannage : les erreurs de démarrage fréquentes","**Ghost démarre mais retourne une page blanche ou une erreur 500**\nVérifiez les logs avec `ghost log`. La cause la plus fréquente est une valeur `url` incorrecte dans `config.production.json` — Ghost génère tous ses liens internes à partir de cette valeur, et une URL en HTTP alors que Caddy sert en HTTPS provoque des boucles de redirection.\n\n**Erreur « ER_NOT_SUPPORTED_AUTH_MODE » au démarrage**\nGhost v6 requiert MySQL 8 avec le plugin d'authentification `mysql_native_password`. Si votre MySQL est configuré en `caching_sha2_password` par défaut, modifiez l'utilisateur :\n\n```bash\nALTER USER 'ghost'@'localhost' IDENTIFIED WITH mysql_native_password BY 'votre_mot_de_passe';\nFLUSH PRIVILEGES;\n```\n\n**SQLite en production : pourquoi ce n'est pas une option**\nGhost accepte SQLite en mode développement, mais ce moteur n'est pas supporté en production : il ne gère pas les accès concurrents, et les newsletters volumineuses ou les pics de trafic provoquent des verrous de base irréversibles. Migrez vers MySQL avant de mettre votre instance en ligne.\n\n**L'upload de thème échoue en production**\nGhost limite la taille des uploads de thèmes. Si l'upload échoue en silence ou retourne une erreur 413, ajustez la limite côté Caddy :\n\n```bash\nblog.votredomaine.com {\n    request_body {\n        max_size 50MB\n    }\n    reverse_proxy localhost:2368\n}\n```\n\n**MAIL_FROM mal configuré : membres qui ne reçoivent pas d'email**\nLe champ `mail.from` dans `config.production.json` doit porter une adresse dont le domaine est vérifié chez votre fournisseur SMTP (enregistrements SPF, DKIM actifs). Un domaine non vérifié aboutit à des silences à l'inscription ou à des rejets SMTP que Ghost signale rarement clairement dans ses logs.",{"type":38,"title":93,"body":94},"Ghost 6.28.0 bloqué : erreur corepack « Cannot find matching keyid »","Depuis mai 2026, les instances Ghost 6.28.0 sur Node 22 échouent à se mettre à jour avec l'erreur `npm error code ENOTSUP` \u002F `Cannot find matching keyid`. La cause : corepack ≥ 2.x introduit une vérification de signature des paquets pnpm que les versions antérieures de corepack (≤ 0.30.x) ne savent pas résoudre sous Node 22. Ghost CLI s'arrête à l'étape `corepack enable`, avant même que npm installe les dépendances, laissant l'instance bloquée sur la version installée.\n\nLe problème touche tous les environnements Docker ≥ Node 22 et a été rapporté sur le forum Ghost (fils t\u002F62860 et t\u002F62805, ouverts respectivement les 13 et 6 mai 2026) avec plus de 40 réponses confirmant le phénomène. Ghost CLI a depuis publié une version corrigée qui affiche les instructions de remédiation.",{"type":56,"title":96,"steps":97},"Résoudre le blocage corepack avant de relancer ghost update",[98,101,104,107],{"title":99,"body":100},"Mettre corepack à jour dans le conteneur ou sur le serveur","```bash\nnpm install -g corepack@latest\n```\n\nCette commande remplace la version de corepack bundlée avec Node 22 par la dernière version publiée sur npm, qui sait résoudre les nouvelles signatures de pnpm.",{"title":102,"body":103},"Réactiver corepack et préparer pnpm","```bash\ncorepack enable\ncorepack prepare pnpm@latest --activate\n```\n\n`corepack enable` rebranche les shims de pnpm\u002Fyarn sur la version fraîchement installée. `corepack prepare` télécharge et active la dernière version stable de pnpm — c'est l'étape qui échouait et bloquait la mise à jour Ghost.",{"title":105,"body":106},"Relancer la mise à jour Ghost","```bash\ncd \u002Fvar\u002Fwww\u002Fghost\nghost update\n```\n\nGhost CLI reprend normalement : il arrête PM2, applique les migrations et redémarre Ghost. Vérifiez ensuite la version avec `ghost version`.",{"title":108,"body":109},"Pour les images Docker personnalisées : surcharger corepack dans le Dockerfile","Si vous maintenez une image Docker, évitez de devoir ré-appliquer le correctif manuellement à chaque rebuild en ajoutant ces lignes juste après le `FROM ghost:` :\n\n```dockerfile\nRUN npm install -g corepack@latest \\\n    && corepack enable \\\n    && corepack prepare pnpm@latest --activate\n```\n\nCeci garantit que chaque reconstruction de l'image part d'un corepack à jour, indépendamment de la version embarquée dans l'image Node de base.",{"type":111,"body":112},"tip","Placez Cloudflare en proxy devant Caddy pour absorber les pics de trafic (effet Hacker News ou réseaux sociaux) : presque tout le contenu public de Ghost est statique et se cache très bien. Excluez `\u002Fghost\u002F`, `\u002Fmembers\u002F` et `\u002Fapi\u002F` du cache par des règles de page ou une règle de cache personnalisée — ces routes doivent toujours atteindre Ghost en direct pour que l'authentification des membres et l'admin fonctionnent correctement.",{"type":111,"title":114,"body":115},"Sauvegardes automatiques","Le contenu dynamique de Ghost (médias, thèmes personnalisés) vit dans `\u002Fvar\u002Fwww\u002Fghost\u002Fcontent`. Ajoutez un cron qui sauvegarde ce répertoire et un export MySQL quotidien vers un stockage distant. Ghost CLI ne sauvegarde pas automatiquement.\n\n```bash\n# Export MySQL quotidien — à placer dans crontab\n0 2 * * * mysqldump -u ghost -p ghost_db | gzip > \u002Fbackups\u002Fghost-$(date +%F).sql.gz\n```",{"type":111,"title":117,"body":118},"La documentation officielle","Pour la configuration avancée et les options propres à l'outil, référez-vous à la \u003Ca href=\"https:\u002F\u002Fghost.org\u002Fdocs\" target=\"_blank\" rel=\"noopener noreferrer\">documentation officielle de Ghost\u003C\u002Fa>. Ce guide couvre la mise en ligne sur VPS ; la doc éditeur reste la référence pour les réglages fins, les mises à jour majeures et les cas d'usage spécifiques.","Votre média indépendant, sur votre VPS","Le VPS Cloud ServOrbit offre la stack Node.js et la base MySQL idéales pour faire tourner Ghost et encaisser vos abonnements sans commission de plateforme.","Lancer mon blog Ghost","\u002Fapplications\u002Fcms\u002Fghost",[124,142,160],{"id":125,"slug":126,"slugs":127,"title":131,"excerpt":132,"readTime":133,"views":18,"isPinned":19,"noindex":19,"publishedAt":134,"updatedAt":135,"category":136,"categories":137,"featuredImage":30,"bgImage":31,"posterImage":139,"relatedSolution":140},71,"heberger-nextcloud",{"fr":126,"en":128,"ar":129,"es":130},"hosting-nextcloud-on-your-own-vps","استضافة-nextcloud-على-خادمك-الـvps-الخاص","alojar-nextcloud-en-su-propio-vps","Héberger Nextcloud sur VPS : guide NC 35, PHP 8.3 et MariaDB 11","Hébergez Nextcloud sur VPS : Docker Compose, Redis, sauvegarde MariaDB, envois de plus de 40 Go derrière Cloudflare et alternative à Office 2021.",20,"2026-04-10T00:00:00+00:00","2026-11-08T16:32:50+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[138],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fheberger-nextcloud-poster.svg",{"categorySlug":25,"appSlug":141},"nextcloud",{"id":143,"slug":144,"slugs":145,"title":149,"excerpt":150,"readTime":23,"views":151,"isPinned":19,"noindex":19,"publishedAt":152,"updatedAt":153,"category":154,"categories":155,"featuredImage":30,"bgImage":31,"posterImage":157,"relatedSolution":158},73,"heberger-wordpress",{"fr":144,"en":146,"ar":147,"es":148},"host-wordpress-on-your-own-vps","استضافة-wordpress-على-خادم-vps-الخاص-بك","alojar-wordpress-en-un-vps","Héberger WordPress sur votre propre VPS","Hébergez WordPress sur votre VPS pour des performances et un contrôle maximaux : Docker, MariaDB, cache, reverse proxy et SSL.",0,"2026-04-08T00:00:00+00:00","2026-11-09T20:55:18+00:00",{"id":23,"name":24,"slug":25,"color":26,"icon":27},[156],{"id":23,"name":24,"slug":25,"color":26,"icon":27},"\u002Fblog\u002Fcovers\u002Fheberger-wordpress-poster.svg",{"categorySlug":25,"appSlug":159},"wordpress",{"id":161,"slug":162,"slugs":163,"title":167,"excerpt":168,"readTime":17,"views":23,"isPinned":19,"noindex":19,"publishedAt":169,"updatedAt":170,"category":171,"categories":176,"featuredImage":30,"bgImage":31,"posterImage":178,"relatedSolution":30},37,"deployer-avec-nginx-proxy-manager",{"fr":162,"en":164,"ar":165,"es":166},"deploy-your-applications-with-nginx-proxy-manager-on-a-vps","انشر-تطبيقاتك-باستخدام-nginx-proxy-manager-على-خادم-vps","desplegar-con-nginx-proxy-manager","Déployer vos applications avec Nginx Proxy Manager sur un VPS","Gérez domaines, SSL et reverse proxy de plusieurs services sur un VPS avec Nginx Proxy Manager : installation, réseaux Docker, dépannage 502 et configuration avancée.","2026-05-14T00:00:00+00:00","2026-11-08T01:13:14+00:00",{"id":172,"name":173,"slug":174,"color":175,"icon":174},3,"Déploiement","deploiement","bg-success\u002F10 text-success",[177],{"id":172,"name":173,"slug":174,"color":175,"icon":174},"\u002Fblog\u002Fcovers\u002Fdeployer-avec-nginx-proxy-manager-poster.svg",true,1794270718362]