Apprends à déployer ton application React Router 7 en production avec un VPS pas cher et performant. Dans ce module pratique, tu découvriras les étapes clés : achat d’un nom de domaine, configuration d’un serveur (Hostinger), conteneurisation avec Docker, reverse proxy avec Caddy, déploiement automatisé via GitHub Actions, et liaison DNS. Maîtrise ta propre infrastructure pour un hébergement flexible, sécurisé et évolutif – le tout à moins de 20 €/mois.
Bravo ! Tu viens de terminer la partie back-end : base PostgreSQL, sessions cookies, authentification sécurisée. Il reste une dernière marche avant de montrer ton application au monde : la mettre en production.
Dans la vidéo (voir transcript) je t’explique qu’un déploiement nécessite deux éléments :
L’objectif de cette leçon est de t’aider à choisir la bonne stratégie et de te présenter l’architecture que j’utilise sur tous mes projets.
Brique | Rôle | Prix indicatif |
---|---|---|
Nom de domaine | Alias lisible → IP du serveur | ≈ 12 €/an (.com ) |
Serveur (VPS ou PaaS) | Exécute le process Node / Docker | 0 € – 15 €/mois |
Les noms de domaine s’achètent chez n’importe quel registrar (OVH, Ionos…). Le serveur, lui, peut prendre plusieurs formes ; c’est là que se situe l’arbre de décision.
Famille | Exemples | Pour qui ? |
---|---|---|
PaaS “long-lived” | Fly.io, DigitalOcean Apps, Render | besoin de WebSocket / tâches CRON |
PaaS serverless | Vercel, Netlify, Cloudflare Workers | API simple, trafic irrégulier |
VPS « à nu » | OVH, Hetzner, Hostinger, Scaleway | contrôle total, multi-project |
Le plus simple : se rendre chez un registrar et taper son idée dans la barre
de recherche.
Le transcript montre react-routeur-france.com
à 13 €/an, alors que
algomax.com
coûte 26 000 € (oui, ça pique !).
Une fois le domaine acheté, tu auras accès aux champs A et AAAA
(DNS) pour le pointer vers l’adresse IP de ton serveur.
1# Exemple : Hostinger KV M 2 (7 €/mois)2ssh root@146.59.123.42
Sur la console de gestion (capture dans la vidéo) tu vois une douzaine de services : deux applis Remix, deux bases PostgreSQL, un Redis, un serveur SMTP… et le CPU plafonne à 50 %. Bref : largement de la marge pour ton projet React Router 7.
1apt update && apt install docker.io docker-compose caddy -y
1services:2web:3build: .4ports:5- "3000:3000"6env_file: .env.production7restart: always89db:10image: postgres:1611environment:12POSTGRES_PASSWORD: supersecret13volumes:14- ./data/db:/var/lib/postgresql/data
web
: l’image générée par docker build .
.db
: PostgreSQL persistant..env.production
et monte‐le en env_file
.1name: Deploy2on:3push:4branches: [ "main" ]56jobs:7deploy:8runs-on: ubuntu-latest9steps:10- uses: actions/checkout@v411- uses: docker/setup-qemu-action@v312- uses: docker/setup-buildx-action@v313- name: Build image14run: |15docker build -t myapp:${{ github.sha }} .16- name: Push via ssh17uses: appleboy/ssh-action@v0.1.1018with:19host: ${{ secrets.VPS_HOST }}20username: root21key: ${{ secrets.VPS_KEY }}22script: |23docker stop myapp || true24docker rm myapp || true25docker pull myapp:${{ github.sha }}26docker run -d --name myapp -p 3000:3000 myapp:${{ github.sha }}
A
chez ton registrar vers cette IP.1caddy reverse-proxy --from https://www.mon-site.com --to http://localhost:3000
30 s plus tard : HTTPS vert, l’app est en ligne !
1+ Acheter le domaine (OVH, IONOS…)2+ Louer un VPS 2 vCPU / 2 Go (Hostinger KVM 2)3+ Pointer l’enregistrement DNS vers l’IP du VPS4+ Installer Docker + Caddy sur le serveur5+ Conteneuriser l’app React Router 76+ Écrire le workflow GitHub Actions7+ Valider le déploiement HTTPS
👊 7 étapes et ton application est publique, sécurisée et prête à encaisser la production.
Le déploiement peut paraître impressionnant ; en réalité c’est un processus répété. En maîtrisant ta propre infrastructure tu élimines les coûts cachés et tu acquiers des super-pouvoirs : héberger plusieurs projets, tester des services self-hosted, déployer une mise à jour en une commande.
À toi de jouer : réserve ce VPS, configure ton domaine
et rejoins-moi dans la prochaine leçon où l’on écrira ensemble
le Dockerfile
de production !