Skip to Content
Serveur LinuxAccueil

Serveur Linux & déploiement — du VPS nu à la prod

⏱️ TL;DR — Ton app tourne en local, next build passe… et après ? Ce cours te fait franchir le mur de la mise en production : prendre un VPS Linux nu, t’y déplacer sans peur, le sécuriser, y servir ton app derrière Nginx en HTTPS, la faire tourner comme un service qui redémarre tout seul, brancher une base de données, automatiser le déploiement (CI/CD), puis surveiller et sauvegarder. De la première connexion SSH au git push qui déploie en prod : la compétence qui fait de toi un dev autonome, capable de livrer de bout en bout — sans dépendre d’un PaaS ni d’un ops.

À qui s’adresse ce cours

À toi : un développeur web (Next.js / React / TypeScript, mais aussi Symfony / PHP / Node — les principes valent partout) qui sait coder mais pour qui « le serveur », c’est Vercel, Netlify ou un git push magique. Tu n’as jamais administré de machine Linux et le terminal t’intimide un peu. Aucune connaissance système préalable n’est requise. À la fin, tu sauras provisionner un VPS, le durcir, y déployer un front Next.js et une API, les servir en HTTPS, brancher Postgres, conteneuriser avec Docker, automatiser avec GitHub Actions, et opérer le tout (logs, monitoring, sauvegardes, dépannage) — comme un pro.

💡 Le pari central de ce cours — Héberger soi-même a la réputation d’être « compliqué » et « réservé aux ops ». Faux. C’est une compétence de dev qui s’apprend, et elle change tout : tu deviens autonome (plus prisonnier des limites et des prix d’un PaaS), tu économises (un VPS à quelques euros fait tourner ce qui te coûterait cent fois plus en cloud managé), et tu débloques ce qu’un PaaS interdit — services longue durée, cron, bases de données, binaires système, WebSockets, contrôle total. Peu de devs front/full-stack maîtrisent vraiment leur infra. Ceux qui le font livrent seuls des projets entiers. C’est exactement ce qui te rend rare.

Ce que tu sauras faire à la fin

  • Choisir entre PaaS et VPS selon le projet, et dimensionner un serveur.
  • Te déplacer au terminal Linux sans hésiter : fichiers, permissions, processus, systemd.
  • Te connecter en SSH par clés et durcir l’accès (root off, mot de passe off, pare-feu, fail2ban).
  • Provisionner un VPS de zéro : utilisateur deploy, mises à jour, UFW, hardening initial.
  • Pointer un domaine (DNS) et diagnostiquer le réseau (dig, ss, curl).
  • Servir une app derrière Nginx (reverse proxy) en HTTPS avec Let’s Encrypt (auto-renouvelé).
  • Faire tourner Next.js, Symfony/PHP-FPM, WordPress ou une app Python en service (systemd / PM2).
  • Installer et sécuriser PostgreSQL / MySQL, et sauvegarder une base (restauration testée).
  • Conteneuriser avec Docker & docker compose (app + DB + proxy).
  • Automatiser le déploiement avec GitHub Actions (build, test, deploy par SSH, releases, rollback).
  • Observer (logs, métriques, monitoring, alerting) et sauvegarder (règle 3-2-1, restic, offsite).
  • Dépanner en prod (502, disque plein, OOM, cert expiré) et préparer le scaling.

Le sommaire

#PartieCe que ça couvre
1Comprendre le déploiementlocalhost → prod, PaaS vs VPS vs cloud, choisir & dimensionner.
2Linux : les fondamentauxDistrib, système de fichiers, naviguer, éditer, pipes & redirections.
3Utilisateurs, permissions, processusUsers/groupes, sudo, permissions rwx, processus, systemd.
4SSH : accès & durcissementClés ed25519, ~/.ssh/config, durcir sshd, scp/rsync, tunnels.
5Provisionner & durcir le VPSapt, utilisateur deploy, UFW, fail2ban, MàJ auto, checklist.
6Réseau, DNS & domaineTCP/IP, ports, DNS (A/AAAA/CNAME), pointer un domaine, diagnostic.
7Nginx : le reverse proxyServer blocks, statique, proxy_pass, vhosts, gzip, logs.
8HTTPS avec Let’s EncryptTLS, Certbot, auto-renouvellement, HSTS, redirection HTTP→HTTPS.
9Déployer Node / Next.jsBuild prod, systemd vs PM2, Nginx devant Next, zéro-downtime.
10Autres stacksPHP-FPM, Symfony prod, WordPress, SPA statique, Python.
11Bases de données en prodPostgres/MySQL, accès, pg_hba, tuning, sauvegardes DB.
12Docker & conteneursImages/volumes, Dockerfile Next, compose, Docker en prod.
13CI/CD & automatiserDeploy par git, GitHub Actions, releases & rollback, secrets.
14Observer & superviserLogs, métriques, monitoring/alerting, supervision applicative.
15Sauvegardes, résilience & scaling3-2-1, restic, restauration testée, vertical vs horizontal.
16Cookbook & AnnexesRunbooks de dépannage, cheatsheets, checklist prod, glossaire, quiz.

Le fil rouge : FormaCampus

Tout au long du cours, on met en production FormaCampus — la même EdTech française (SaaS Next.js) que dans les cours Moodle, RGPD et Interop EdTech, vue cette fois sous l’angle infra & déploiement. Elle rapatrie sa prod d’un PaaS vers son propre VPS Ubuntu LTS pour maîtriser coûts, données et services. On va : provisionner et durcir le serveur, pointer son domaine, servir son front Next.js et son API Symfony derrière Nginx + HTTPS, les faire tourner en services, brancher Postgres, puis industrialiserDocker, CI/CD (GitHub Actions), monitoring et sauvegardes. Chaque partie fait avancer un chantier réel, dans l’encadré 🧭 Sur FormaCampus.

Comment lire ce cours

  • Dans l’ordre la première fois : on part du VPS nu et on empile les couches — comprendre, Linux, accès, sécurité, réseau, web, HTTPS, apps, données, industrialisation. Chaque partie suppose la précédente.
  • En référence ensuite : le Cookbook & Annexes rassemble les runbooks de dépannage, les cheatsheets (Linux, Nginx, systemd, SSH, UFW, Docker, Certbot), la checklist de mise en prod et un glossaire.
  • On tape les commandes : ce cours s’apprend les mains sur le clavier. Prends un petit VPS (quelques euros/mois) et fais les gestes en vrai — c’est là que ça rentre.

🔒 La sécurité n’est pas une partie, c’est un fil — Un serveur exposé sur Internet est attaqué en permanence (des bots scannent le port 22 dès la première minute). La sécurité traverse tout le cours : SSH par clés, root désactivé, pare-feu, fail2ban, HTTPS partout, ports fermés, moindre privilège, secrets hors du code, sauvegardes testées. On ne « sécurise pas à la fin » : on construit sécurisé dès le départ.

⚠️ Piège — Le plus grand piège du débutant, c’est de croire que « ça marche donc c’est bon ». Un site accessible n’est pas un site en prod : sans HTTPS, sans redémarrage auto, sans pare-feu, sans sauvegardes, sans monitoring, c’est une panne ou une fuite qui attend son heure. Ce cours t’apprend à livrer du robuste, pas du « ça tourne pour l’instant ».


Prêt ? On commence par la carte du territoire : comprendre le déploiement.

Last updated on