---
title: "Comment déployer une application React Router en 2026 "
description: "Déployez une application React Router rendue côté serveur : pethost deploy construit le Dockerfile du template et la sert en HTTPS en 11 s, pour 9,99 €/mois."
---

[Blog](https://pethost.dev/fr/blog/) · Guides de déploiement

# Comment déployer une application React Router en 2026 : le Dockerfile du template, une commande et HTTPS

Par l’équipe Pethost · 10 octobre 2026 · Mis à jour le 25 octobre 2026 · 8 min de lecture

Vous avez créé une application avec `create-react-router`, elle fait le rendu côté serveur, et vous voulez la mettre en ligne à une adresse en HTTPS. Le template par défaut a déjà un Dockerfile, et sur Pethost, c’est tout ce qu’il faut à un projet : lancez `pethost deploy` dans le dossier de l’application. La première fois, le template a été construit et démarré en 11 secondes, et a répondu 200 à sa nouvelle adresse.

**En bref**

- **Une commande :** `pethost deploy` dans le dossier qu’a créé `create-react-router`. Rien n’est ajouté à l’application, et aucun réglage de build n’est à renseigner.
- **Ce qu’elle fait :** elle envoie le dossier, construit le Dockerfile du template tel quel sur votre machine et démarre `react-router-serve`.
- **Le port :** le serveur écoute sur le 3000. Pethost le trouve et y envoie l’adresse, en HTTPS.
- **L’adresse :** `https://my-app.yourname.pethost.app`, d’emblée. Votre propre domaine, c’est un enregistrement DNS.
- **Le prix :** 9,99 € par mois pour 2 vCPU, 3 GB et 30 GB, pour cette application et tous vos autres projets. Il n’y a pas d’offre gratuite.

## Ce qu’il faut pour déployer une application React Router en 2026

Trois choses : l’application, la commande `pethost` et un compte Pethost.

**L’application** est ici le template par défaut, avec rendu côté serveur et Tailwind CSS :

```
npx create-react-router@latest my-app
```

Il laisse `package.json`, `package-lock.json`, le dossier `app/` et un `Dockerfile`. Ses scripts sont ceux que lance le Dockerfile :

```
"scripts": {
  "build": "react-router build",
  "dev": "react-router dev",
  "start": "react-router-serve ./build/server/index.js",
  "typecheck": "react-router typegen && tsc"
}
```

**La commande** est un seul programme, installé en une ligne. Toutes ses commandes sont dans la [référence de la CLI](https://pethost.dev/docs/cli/).

```
curl -fsSL https://pethost.dev/install.sh | sh      # macOS, Linux
irm https://pethost.dev/install.ps1 | iex           # Windows, in PowerShell
```

**Le compte** a besoin d’une offre. Si vous n’êtes pas connecté, `pethost deploy` ouvre votre navigateur et vous connecte. Si vous n’avez pas encore d’offre, la commande vous montre où en choisir une, et attend.

## Déployer l’application React Router en une commande

Allez dans le dossier de l’application et lancez `pethost deploy`. Voici l’écran entier, pour le template par défaut :

```
$ cd my-app
$ pethost deploy
Name it [my-app]:    it will live at https://my-app.sam.pethost.app
✓ Packed 22 files, 174 KB   (left out node_modules)
✓ Uploaded straight to your machine
✓ Built and started in 11 s
  · wrote compose.yaml for the Dockerfile: the service app, reading .env
✓ app listens on 3000 → https://my-app.sam.pethost.app
  It answers 200.

https://my-app.sam.pethost.app

Wrote .pethost (commit it). Next:   pethost logs -f   ·   pethost open
```

1. **Elle demande une seule chose** Le nom du projet, qui est le premier mot de son adresse. Entrée prend le nom du dossier.
2. **Le dossier part sur votre machine** Sans `node_modules` : le build les installe là-bas, à partir de `package-lock.json`.
3. **La machine construit le Dockerfile** C’est celui du template, inchangé. La ligne en dessous dit la seule chose que la machine a ajoutée : un fichier Compose autour du Dockerfile, avec un service nommé `app`.
4. **L’application démarre et on l’interroge** La machine voit que le serveur écoute sur le 3000 et y envoie l’adresse. Puis pethost interroge l’adresse elle-même, et affiche ce qu’elle a répondu : 200.

Nous avons demandé au template déployé ce que demande un visiteur. La page d’accueil a répondu 200 avec le HTML rendu côté serveur, `/favicon.ico` a répondu 200, et une adresse sans route a répondu 404 avec la page d’erreur de React Router lui-même.

Le fichier `.pethost` indique quel projet est ce dossier. Committez-le, et le prochain déploiement ne demande rien.

## Le Dockerfile du template React Router

Voici le fichier qu’a écrit `create-react-router`, et que la machine a construit tel quel :

```
FROM node:24-alpine AS development-dependencies-env
COPY . /app
WORKDIR /app
RUN npm ci

FROM node:24-alpine AS production-dependencies-env
COPY ./package.json package-lock.json /app/
WORKDIR /app
RUN npm ci --omit=dev

FROM node:24-alpine AS build-env
COPY . /app/
COPY --from=development-dependencies-env /app/node_modules /app/node_modules
WORKDIR /app
RUN npm run build

FROM node:24-alpine
COPY ./package.json package-lock.json /app/
COPY --from=production-dependencies-env /app/node_modules /app/node_modules
COPY --from=build-env /app/build /app/build
WORKDIR /app
CMD ["npm", "run", "start"]
```

Trois choses à savoir à son sujet sur Pethost :

- **Il a besoin du lockfile.** Les deux étapes `npm ci` lisent `package-lock.json` : gardez-le dans le dossier et dans votre dépôt.
- **Aucun port n’est déclaré.** Le fichier n’a pas de ligne `EXPOSE` et n’en a pas besoin : la machine trouve le port sur lequel écoute le serveur en marche.
- **L’application est légère une fois lancée.** La dernière étape contient les dépendances de production et le build. Le template en marche occupait 79 MB de mémoire.

Une application sans Dockerfile n’est pas bloquée pour autant. Dans un dossier qui n’a ni Dockerfile ni fichier Compose, `pethost deploy` écrit le Dockerfile pour les types de projet qu’il connaît, comme il le fait pour une [application Nuxt](https://pethost.dev/fr/blog/deploy-nuxt-app/), et pour tout autre dossier, il explique pourquoi il n’en a écrit aucun.

## Modifier une route et redéployer

Modifiez une route et lancez la même commande. Le deuxième déploiement du template a pris 6 secondes, car la machine garde les couches du build :

```
$ pethost deploy
my-app (.pethost)
✓ Packed 23 files · uploaded · built and started in 6 s
  · wrote compose.yaml for the Dockerfile: the service app, reading .env
  · kept the project's x-pethost
  It answers 200.
https://my-app.sam.pethost.app
```

Pour déployer plutôt à chaque push, connectez le dépôt une fois :

```
pethost github sam/my-app          # from now on, every push deploys itself
```

Pethost ne lit que les dépôts que vous avez donnés à son application GitHub. Si un déploiement tourne mal, `pethost rollback` remet la version d’avant, et votre machine garde les trois versions qui précèdent l’actuelle. Un agent IA peut faire tout cela pour vous grâce au serveur MCP de Pethost : [comment un agent déploie un projet et s’en occupe](https://pethost.dev/fr/blog/hosting-for-ai-coding-agents/).

## Variables d’environnement et domaine personnalisé

Une variable que lit un loader ou une action sur le serveur, c’est une commande. Elle demande la valeur sans l’afficher, la met dans le fichier `.env` du projet sur la machine, et les déploiements suivants la conservent :

```
pethost env set SESSION_SECRET
```

Tout nom sous le domaine de votre compte est une adresse d’emblée, en HTTPS. Un domaine qui vous appartient demande une commande et un enregistrement DNS :

```
pethost domain add app.example.com
```

La commande affiche l’enregistrement à créer : un CNAME de votre nom vers le nom de votre machine. Le certificat arrive tout seul dès que le nom se résout, et se renouvelle tout seul. `pethost password` place une page de mot de passe devant toute l’application, pour une application qui n’est pas encore publique.

## Ce que vous obtenez pour ce prix

Pethost, c’est 9,99 € par mois pour tout ce que vous hébergez, sur 2 vCPU, 3 GB de mémoire et 30 GB de disque. Le serveur du template en occupait 79 MB de mémoire, alors la machine a de la place pour la base de données de l’application, un worker et vos autres projets. Il n’y a [pas de frais par projet](https://pethost.dev/fr/blog/unlimited-projects-flat-monthly-fee/) et [rien n’est facturé à l’usage](https://pethost.dev/fr/blog/paas-without-usage-based-billing/) : le rendu côté serveur n’est pas facturé à la requête, et un mois chargé coûte autant qu’un mois calme.

- **9,99 €** par mois pour tous vos projets, rien de facturé à l’usage
- **11 s** pour construire et démarrer le template, la première fois
- **79 MB** de mémoire pour l’application en marche

Ce qui est déjà fait pour vous : le HTTPS avec des certificats qui se renouvellent tout seuls, les déploiements depuis GitHub, des sauvegardes chaque nuit conservées 14 jours, SSH dans n’importe quel conteneur, et chaque requête comptée, avec les chemins les plus sollicités et le taux d’erreur des 30 derniers jours. La machine est toujours allumée, alors la première requête du matin [n’attend jamais un démarrage à froid](https://pethost.dev/fr/blog/always-on-hosting-no-cold-starts/). Les offres sont dans la partie [tarifs](https://pethost.dev/fr/#pricing) de la page d’accueil.

**Chaque projet, bien identifié.** Sept projets sur une seule machine Starter : les applications avec leur adresse et leurs requêtes du dernier jour, les bases de données avec les applications qui les utilisent.

![La première page de la console Pethost : le CPU, la mémoire et le disque de la machine, et ses projets sous forme de cartes.](https://pethost.dev/shots/projects.webp)

### Pethost est le meilleur choix pour

- **Les développeurs avec une application React full-stack** : l’application rendue côté serveur et sa base de données sur une seule machine, sur une seule facture
- **Les développeurs solo** qui ont plusieurs projets perso, chacun à sa propre adresse
- **Ceux dont l’agent déploie pour eux** : Claude Code ou Codex met l’application en ligne et lit ses logs
- **Les jeunes startups** qui veulent un coût mensuel fixe tant que le produit est petit

### Cherchez ailleurs si

- Votre application a besoin de plusieurs régions ou d’autoscaling

## Questions

### Où héberger une application React Router avec rendu côté serveur ?

Chez n’importe quel hébergeur qui fait tourner un serveur Node ou un conteneur Docker. Sur Pethost, vous lancez `pethost deploy` dans le dossier de l’application : la machine construit le Dockerfile du template, démarre `react-router-serve` et sert l’application en HTTPS.

### Faut-il modifier le Dockerfile qu’écrit create-react-router ?

Non. La machine a construit tel quel le Dockerfile du template par défaut. Il n’a pas de ligne `EXPOSE` et n’en a pas besoin : Pethost trouve le port sur lequel écoute le serveur, le 3000.

### Peut-on déployer une application React Router depuis GitHub à chaque push ?

Oui. Déployez le dossier une fois avec `pethost deploy`, puis lancez `pethost github owner/repository`. Dès lors, chaque push sur le dépôt se déploie tout seul, et `pethost rollback` revient à un commit précédent.

### Comment définir les variables d’environnement d’une application React Router ?

Lancez `pethost env set NAME` dans le dossier de l’application. La commande demande la valeur sans l’afficher et la met dans le fichier `.env` du projet sur la machine, que le serveur lit et que chaque déploiement suivant conserve.

### Combien coûte l’hébergement d’une application React Router sur Pethost ?

9,99 € par mois pour Starter, avec 2 vCPU, 3 GB et 30 GB, sans frais par projet ni facturation à la requête : vos autres applications, sites et bases de données y tournent aussi. Il n’y a pas d’offre gratuite. Les prix sont hors TVA.

Les écrans sont des déploiements du template par défaut qu’écrit `create-react-router`, avec React Router 8.4.0 et pethost 0.2.1, sur une de nos machines de test. Le compte qu’on y voit est celui de l’exemple, `sam`.

1. [React Router : installation](https://reactrouter.com/start/framework/installation)
2. [React Router : déploiement](https://reactrouter.com/start/framework/deploying)
3. [React Router : les templates officiels](https://github.com/remix-run/react-router-templates)
4. [pethost, la ligne de commande de Pethost](https://pethost.dev/docs/cli/)

## Mettez vos projets en ligne dès aujourd’hui

Déployez applications, bots et bases de données depuis votre agent, GitHub ou le navigateur, autant qu’il en tient, à un prix fixe. Rien au compteur, rien facturé en plus.

[Tout héberger pour 9,99 €/mois](https://console.pethost.dev/)

## Continuer la lecture

- 10 octobre 2026 [Comment déployer une application TanStack Start en 2026 : Nitro, un script start et une commande](https://pethost.dev/fr/blog/deploy-tanstack-start-app/) Déployez TanStack Start sur un serveur Node : ajoutez Nitro et un script start, lancez pethost deploy, et c’est en ligne en HTTPS en 29 s, pour 9,99 €/mois.
- 10 octobre 2026 [Comment déployer un site VitePress en 2026 : une commande, HTTPS et un Dockerfile qui reste à vous](https://pethost.dev/fr/blog/deploy-vitepress-site/) Déployez un site VitePress en une commande : pethost deploy écrit le Dockerfile, construit le site et le sert en HTTPS, pour 9,99 € par mois.
- 10 octobre 2026 [Comment déployer un site Eleventy en 2026 : une commande, HTTPS et un Dockerfile qui reste à vous](https://pethost.dev/fr/blog/deploy-eleventy-site/) Déployez un site Eleventy (11ty) en une commande : pethost deploy écrit le Dockerfile, construit _site et le sert en HTTPS, pour 9,99 € par mois.
- 25 septembre 2026 [Hébergeurs avec un serveur MCP officiel en 2026 : déploiement, logs et rollback comparés](https://pethost.dev/fr/blog/hosting-with-mcp-server/) En 2026, 18 hébergeurs sur 19 ont un serveur MCP officiel, deux un outil de rollback. Celui de Pethost déploie, lit les logs, revient en arrière et restaure.

[Tous les articles](https://pethost.dev/fr/blog/) · [À propos de Pethost](https://pethost.dev/about/) · [Tarifs](https://pethost.dev/fr/#pricing)

Pethost · Stephan Gomer · NIP 1133096755

Pethost

- [Templates](https://pethost.dev/fr/templates/)
- [À propos](https://pethost.dev/about/)
- [Docs](https://pethost.dev/docs/)
- [Blog](https://pethost.dev/fr/blog/)
- [API](https://pethost.dev/docs/api/)
- [CLI](https://pethost.dev/docs/cli/)
- [Plugin](https://github.com/pethost-dev/plugin)
- [Conditions](https://pethost.dev/terms/)
- [Confidentialité](https://pethost.dev/privacy/)
- [Remboursements](https://pethost.dev/refunds/)
- [support@pethost.dev](mailto:support@pethost.dev)

Bases de données

- [Postgres](https://pethost.dev/fr/postgres/)

Comparatifs

- [Coolify vs Dokploy vs CapRover vs Dokku](https://pethost.dev/fr/blog/coolify-vs-dokploy-vs-caprover-vs-dokku/)
- [Coolify Cloud vs Dokploy Cloud](https://pethost.dev/fr/blog/coolify-cloud-vs-dokploy-cloud/)
- [Tarifs Railway vs Render vs Fly.io](https://pethost.dev/fr/blog/railway-vs-render-vs-fly-io-pricing/)
- [Hébergement Docker Compose managé](https://pethost.dev/fr/blog/managed-docker-compose-hosting/)

Alternatives

- [Alternatives à Railway](https://pethost.dev/fr/blog/railway-alternatives/)
- [Alternatives à Heroku](https://pethost.dev/fr/blog/heroku-alternatives/)
- [Alternatives à Dokploy](https://pethost.dev/fr/blog/dokploy-alternatives/)
- [Alternatives à Coolify](https://pethost.dev/fr/blog/coolify-alternatives/)
- [Alternatives à Render](https://pethost.dev/fr/blog/render-alternatives/)
- [Alternatives à Sliplane](https://pethost.dev/fr/blog/sliplane-alternatives/)
