[{"data":1,"prerenderedAt":117},["ShallowReactive",2],{"seo-verification":3,"blog-deployer-astro-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":72,"ctaBody":73,"ctaButton":74,"ctaUrl":75,"relatedPosts":76},52,"deployer-astro-vps","Déployer une application Astro sur un VPS","Déployez un site Astro sur un VPS Cloud : build statique ou SSR via l'adaptateur Node, Docker, Nginx et SSL. Guide pour développeurs front.",7,324,false,"2026-04-29T00: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-astro-vps-poster.svg",{"categorySlug":18,"appSlug":27},"astro","Astro génère par défaut un site statique ultra-rapide, mais sait aussi rendre des pages côté serveur via son adaptateur Node. Selon votre besoin, vous servez de simples fichiers HTML ou un vrai serveur SSR. Voici les deux approches sur un VPS, avec reverse proxy et cache.",[30,34,44,47,69],{"type":31,"title":32,"body":33},"h2","Pourquoi self-héberger Astro sur un VPS","Astro a une particularité : il peut produire soit un site 100 % statique (`output: 'static'`), soit une application avec rendu serveur à la demande (`output: 'server'` via `@astrojs\u002Fnode`). Cette dualité rend le VPS très pertinent. En statique, vous servez directement des fichiers HTML depuis Nginx, sans aucun processus Node : performances maximales et empreinte minimale. En SSR, vous lancez un serveur Node qui rend les pages dynamiquement, utile pour des contenus personnalisés ou des endpoints API intégrés. Sur un VPS, vous choisissez votre stratégie sans être enfermé dans le modèle imposé par une plateforme de déploiement front. Vous contrôlez aussi le cache HTTP, les en-têtes de sécurité et la compression Brotli, là où les hébergements front gèrent ça en boîte noire.",{"type":35,"title":36,"items":37},"ul","Bénéfices concrets",[38,39,40,41,42,43],"Liberté du mode de sortie : statique pur ou SSR Node, voire hybride par route","En statique, Nginx sert les fichiers sans aucun processus Node : RAM quasi nulle, débit maximal","Maîtrise totale du cache HTTP, des en-têtes de sécurité (CSP, HSTS) et de la compression Brotli","Pas de limite de bande passante ni de quota de requêtes imposé par une plateforme front","Endpoints API d'Astro hébergés sur le même domaine, sans fonction serverless tierce","Déploiement reproductible via Docker : le même build local et en production",{"type":31,"title":45,"body":46},"Prérequis matériels et logiciels","Un site Astro statique tient sur le plus petit VPS imaginable : 1 vCPU et 1 Go de RAM suffisent largement, car Nginx ne fait que servir des fichiers. En mode SSR, prévoyez 2 Go pour le processus Node et les pics de rendu. Installez Node.js 20 LTS pour builder (ou buildez en CI), Docker si vous conteneurisez, et Nginx comme frontal. Pointez `mondomaine.ma` et `www.mondomaine.ma` vers l'IP du VPS. Comptez 5 Go de disque ; le dossier `dist\u002F` d'un site statique pèse généralement quelques Mo.",{"type":48,"title":49,"steps":50},"steps","Déploiement pas à pas",[51,54,57,60,63,66],{"title":52,"body":53},"Choisir le mode de sortie","Dans `astro.config.mjs`, définissez `output: 'static'` pour un site de contenu, ou `output: 'server'` avec `adapter: node({ mode: 'standalone' })` si vous avez besoin de SSR. Ce choix conditionne toute la suite du déploiement.",{"title":55,"body":56},"Builder l'application","Lancez `npm run build`. En statique, vous obtenez un dossier `dist\u002F` contenant le HTML, le CSS et le JS prêts à servir. En SSR, vous obtenez en plus un `dist\u002Fserver\u002Fentry.mjs` à exécuter avec Node.",{"title":58,"body":59},"Servir le statique avec Nginx (mode statique)","Pointez la directive `root` de votre vhost vers `\u002Fvar\u002Fwww\u002Fastro\u002Fdist` et activez `try_files $uri $uri\u002F \u002F404.html;`. Ajoutez `gzip on;` et des en-têtes `Cache-Control` longs sur les assets versionnés. Aucun conteneur n'est nécessaire.",{"title":61,"body":62},"Conteneuriser le serveur Node (mode SSR)","Pour le SSR, créez un Dockerfile basé sur `node:20-alpine` qui copie `dist\u002F` et lance `node .\u002Fdist\u002Fserver\u002Fentry.mjs`. Exposez le port 4321 et démarrez avec `docker compose up -d`. Nginx fera ensuite un `proxy_pass` vers ce port.",{"title":64,"body":65},"Configurer le reverse proxy et la compression","Que vous soyez en statique ou en SSR derrière Node, déclarez le vhost Nginx avec `www` redirigé vers le domaine apex. Activez Brotli si le module est disponible pour des assets encore plus légers que gzip.",{"title":67,"body":68},"Activer le SSL","Exécutez `certbot --nginx -d mondomaine.ma -d www.mondomaine.ma`. Forcez la redirection vers HTTPS et ajoutez l'en-tête `Strict-Transport-Security`. Validez le déploiement avec un test Lighthouse depuis votre navigateur.",{"type":70,"body":71},"tip","Même pour un site SSR, exploitez le rendu hybride d'Astro : marquez les pages statiques avec `export const prerender = true` pour qu'elles soient générées au build et servies directement par Nginx, en ne réservant le processus Node qu'aux routes réellement dynamiques. Vous réduisez ainsi drastiquement la charge serveur. Et placez un cache `proxy_cache` Nginx devant les pages SSR à faible fréquence de changement pour absorber les pics de trafic.","Hébergez votre site Astro sur un VPS rapide","Le VPS Cloud ServOrbit livre un environnement Node et Nginx préconfiguré, idéal pour servir un site Astro statique à débit maximal ou faire tourner son rendu SSR avec des ressources dédiées.","Découvrir le VPS Cloud","\u002Fvps-cloud",[77,90,104],{"id":78,"slug":79,"title":80,"excerpt":81,"readTime":11,"views":82,"isPinned":13,"publishedAt":83,"category":84,"categories":85,"featuredImage":23,"bgImage":24,"posterImage":87,"relatedSolution":88},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.",2840,"2026-02-09T00:00:00+00:00",{"id":16,"name":17,"slug":18,"color":19,"icon":20},[86],{"id":16,"name":17,"slug":18,"color":19,"icon":20},"\u002Fblog\u002Fcovers\u002Fdeployer-laravel-vps-poster.svg",{"categorySlug":20,"appSlug":89},"laravel-stack",{"id":91,"slug":92,"title":93,"excerpt":94,"readTime":95,"views":96,"isPinned":13,"publishedAt":97,"category":98,"categories":99,"featuredImage":23,"bgImage":24,"posterImage":101,"relatedSolution":102},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},[100],{"id":16,"name":17,"slug":18,"color":19,"icon":20},"\u002Fblog\u002Fcovers\u002Fdeployer-nodejs-vps-poster.svg",{"categorySlug":18,"appSlug":103},"nodejs",{"id":105,"slug":106,"title":107,"excerpt":108,"readTime":95,"views":109,"isPinned":13,"publishedAt":110,"category":111,"categories":112,"featuredImage":23,"bgImage":24,"posterImage":114,"relatedSolution":115},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},[113],{"id":16,"name":17,"slug":18,"color":19,"icon":20},"\u002Fblog\u002Fcovers\u002Fdeployer-django-vps-poster.svg",{"categorySlug":18,"appSlug":116},"django",1784126231946]