---
title: "Comment déployer une application Gin en 2026 "
description: "Déployez une application Go Gin en une commande : pethost deploy écrit le Dockerfile, construit le programme et le sert en HTTPS, pour 9,99 € par mois."
---

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

# Comment déployer une application Gin en 2026 : une commande, HTTPS et un Dockerfile qui reste à vous

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

Vous avez une application Gin qui tourne sur votre ordinateur, et vous voulez la mettre en ligne à une adresse en HTTPS. Sur Pethost, c’est une seule commande, `pethost deploy`, lancée dans le dossier qui contient `go.mod`. Elle écrit le Dockerfile à votre place, construit le programme et affiche son adresse. L’application du quickstart de Gin a été construite et démarrée en 58 secondes la première fois, et en 2 secondes la deuxième.

**En bref**

- **Une commande :** `pethost deploy` dans le dossier qui contient `go.mod`. Il n’y a ni fichier de configuration à écrire, ni réglages de build à renseigner.
- **Ce qu’elle fait :** elle lit la version de Go dans `go.mod`, écrit un Dockerfile qui lance `go build`, et démarre le programme.
- **Le port :** Gin écoute sur 8080, sauf si `PORT` en indique un autre. Pethost trouve le port sur lequel le programme écoute, vous n’avez donc rien à régler.
- **L’adresse :** `https://my-api.yourname.pethost.app`, en HTTPS 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 API et tous vos autres projets. Il n’y a pas d’offre gratuite.

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

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

**L’application** est ici celle que laisse le quickstart de Gin : `go mod init my-api`, `go get github.com/gin-gonic/gin`, et ce `main.go` :

```
package main

import (
	"net/http"

	"github.com/gin-gonic/gin"
)

func main() {
	router := gin.Default()
	router.GET("/ping", func(c *gin.Context) {
		c.JSON(http.StatusOK, gin.H{
			"message": "pong",
		})
	})
	router.Run() // listens on 0.0.0.0:8080 by default
}
```

**La commande** est un seul programme, qui s’installe 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 Gin en une commande

Allez dans le dossier qui contient `go.mod` et lancez `pethost deploy`. Voici l’écran entier, pour le quickstart :

```
$ cd my-api
$ pethost deploy
Name it [my-api]:    it will live at https://my-api.sam.pethost.app
✓ Packed 3 files, 9 KB
✓ Uploaded straight to your machine
✗ /compose.yaml: the project directory has no compose.yaml at its root: add one
✓ Go program detected, wrote Dockerfile.
✓ Packed 4 files, 10 KB
✓ Uploaded straight to your machine
✓ Built and started in 58 s
  · wrote compose.yaml for the Dockerfile: the service app, reading .env
✓ app listens on 8080 → https://my-api.sam.pethost.app
  It answers 404.

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

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

1. **Elle pose une seule question** Le nom du projet, qui est le premier mot de son adresse. La touche Entrée prend le nom du dossier.
2. **La machine ne trouve rien à lancer** La ligne avec la croix est sa réponse : un projet tourne à partir d’un Dockerfile ou d’un fichier Compose, et le dossier n’a encore ni l’un ni l’autre.
3. **pethost écrit le Dockerfile** Il a vu `go.mod` et un `package main` à côté, et il envoie de nouveau le dossier.
4. **La machine le construit et le démarre** Elle voit que le programme écoute sur le port 8080 et y dirige l’adresse. Puis pethost interroge lui-même l’adresse, et affiche ce qu’elle a répondu.

La réponse est 404 parce que le quickstart n’a pas de route sur `/`, seulement `/ping`. Votre propre API répondra souvent la même chose, et cela veut dire que le programme tourne et répond. Interrogez la route qui existe :

```
$ curl https://my-api.sam.pethost.app/ping
{"message":"pong"}
```

Le fichier `.pethost` indique à quel projet correspond ce dossier. Commitez-le avec le Dockerfile, et le prochain déploiement ne demandera rien.

## Le Dockerfile que pethost écrit pour un programme Go

Voici le fichier tel qu’il a été écrit dans le dossier du quickstart, en entier :

```
# Written by pethost deploy for this Go program: Go 1.25 (go.mod), its program is ..
# It is yours now: change it as you like. pethost does not write it again.

FROM golang:1.25
WORKDIR /app

COPY . .

RUN --mount=type=cache,target=/go/pkg/mod \
    --mount=type=cache,target=/root/.cache/go-build \
    go build -o /usr/local/bin/my-api .

CMD ["my-api"]
```

Sa première ligne dit ce que pethost a lu dans votre dossier. Trois choses en viennent :

- **La version de Go** est celle de la ligne `go` de `go.mod`.
- **Le programme** est le `package main` à la racine du module, ou l’unique dossier de `cmd/` qui en a un. Quand `cmd/` en a plusieurs, pethost n’écrit rien et dit pourquoi : c’est à vous de dire quel programme reçoivent les visiteurs.
- **Le nom** est la dernière partie du chemin du module, celui que lui donnerait `go install`. Un `Procfile` avec une ligne `web` démarre le programme comme cette ligne l’indique.

Les deux montages de cache gardent les modules et le cache de build de Go sur votre machine d’un déploiement à l’autre. C’est pour cela que le deuxième déploiement a pris 2 secondes. Si la machine ne peut pas construire ou démarrer le Dockerfile écrit par pethost, pethost retire le fichier de votre dossier et dit ce qui a échoué.

## Définir GIN_MODE et d’autres variables d’environnement

Gin démarre en mode debug : ses lignes de log commencent par `[GIN-debug]`. Les logs disent aussi quel port il a pris :

```
$ pethost logs
2026-10-10T11:15:22Z	app	[GIN-debug] GET    /ping                     --> main.main.func1 (3 handlers)
2026-10-10T11:15:22Z	app	[GIN-debug] Environment variable PORT is undefined. Using port :8080 by default
2026-10-10T11:15:22Z	app	[GIN-debug] Listening and serving HTTP on :8080
```

Une variable, c’est une commande. Elle va dans le fichier `.env` du projet sur la machine, que chaque déploiement suivant garde, et l’application redémarre avec elle :

```
$ pethost env set GIN_MODE=release
my-api (.pethost)
✓ /.env has GIN_MODE now. Deployed in 4 s.
```

Un nom seul demande la valeur sans l’afficher, ce qui convient à un secret : `pethost env set DATABASE_URL`. Vous n’avez pas à définir `PORT` : avec `router.Run()`, Gin prend 8080, et avec `router.Run(":3000")`, la machine trouve 3000 de la même façon.

## Modifier le code et redéployer

Modifiez un handler et lancez la même commande. La machine garde les couches du build et les caches de Go :

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

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

```
pethost github sam/my-api          # 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 via le 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/). La même commande déploie une [application Fiber](https://pethost.dev/fr/blog/deploy-fiber-app/).

## Utiliser votre propre domaine pour l’API

Tout nom sous le domaine de votre compte est aussitôt une adresse, en HTTPS. Un domaine à vous demande une commande et un enregistrement DNS :

```
pethost domain add api.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.

## Ce que vous obtenez pour ce prix

Pethost coûte 9,99 € par mois pour tout ce que vous hébergez, sur 2 vCPU, 3 GB de mémoire et 30 GB de disque. Un programme Gin est un petit binaire : la machine a donc de la place pour sa base de données, 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 : une deuxième API ne coûte rien de plus, et une base Postgres à côté [est comprise dans le même prix](https://pethost.dev/fr/blog/european-hosting-postgres-flat-price/).

- **9,99 €** par mois pour tous vos projets, rien à l’usage
- **58 s** pour construire et démarrer le quickstart, la première fois
- **2 s** pour le déploiement suivant

Ce qui est déjà fait pour vous : HTTPS avec des certificats qui se renouvellent tout seuls, déploiements depuis GitHub, sauvegardes chaque nuit conservées 14 jours, SSH dans n’importe quel conteneur, et chaque requête comptée. La console montre les chemins les plus sollicités et le taux d’erreurs des 30 derniers jours, ce qui, pour une API, est la liste des routes que les gens appellent vraiment. La machine est toujours allumée, donc une requête [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.

**Quelles routes sont appelées.** Les dix chemins les plus sollicités d’un projet, avec leur part et leurs temps de réponse, et le journal des requêtes une à une.

![La console Pethost : les dix chemins les plus sollicités d’un projet, avec leur part, leur nombre et leurs temps de réponse, et le journal des requêtes une à une.](https://pethost.dev/shots/traffic.webp)

### Pethost est le meilleur choix pour

- **Les développeurs Go avec une petite API** : le programme, sa base de données et son worker sur une machine, sur une seule facture
- **Les développeurs solo** qui ont plusieurs projets perso, chacun à sa propre adresse
- **Ceux dont l’agent déploie à leur place** : Claude Code ou Codex met l’API 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

### Faut-il un Dockerfile pour déployer une application Gin ?

Sur Pethost, un projet tourne à partir d’un Dockerfile ou d’un fichier Compose, et vous n’avez pas à l’écrire : dans un dossier qui n’a ni l’un ni l’autre, `pethost deploy` écrit le Dockerfile d’un programme Go et le déploie. Le fichier reste dans votre dossier, et vous pouvez le modifier.

### Sur quel port doit écouter une application Gin ?

N’importe lequel. Avec `router.Run()`, Gin écoute sur 8080, ou sur le port que nomme la variable `PORT`. Pethost trouve le port sur lequel le programme écoute et y dirige l’adresse, en HTTPS.

### Comment passer GIN_MODE=release en production ?

Lancez `pethost env set GIN_MODE=release` dans le dossier du projet. La variable va dans le fichier `.env` du projet sur la machine, l’application redémarre avec elle, et les déploiements suivants la gardent.

### Pourquoi pethost deploy affiche « It answers 404 » pour mon API Gin ?

Après un déploiement, pethost interroge l’adresse `/` et affiche la réponse. Une API sans route sur `/` y répond 404, ce qui montre tout de même que le programme tourne. Interrogez l’une de vos routes pour la voir fonctionner.

### Peut-on déployer une application Gin 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.

### Combien coûte l’hébergement d’une API Gin sur Pethost ?

9,99 € par mois pour Starter, avec 2 vCPU, 3 GB et 30 GB, sans frais par projet : vos autres API, 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 de l’application qu’écrit le quickstart de Gin, avec Gin 1.12.0, Go 1.25 et pethost 0.2.1, sur une de nos machines de test qui n’avait encore rien construit. Le compte qu’on y voit est celui de l’exemple, `sam`.

1. [Gin : quickstart](https://gin-gonic.com/en/docs/quickstart/)
2. [Gin : déploiement](https://gin-gonic.com/en/docs/deployment/)
3. [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 Go Fiber en 2026 : une commande, HTTPS et un Dockerfile qui reste à vous](https://pethost.dev/fr/blog/deploy-fiber-app/) Déployez une application Go Fiber en une commande : pethost deploy écrit le Dockerfile, la construit en 45 s et la sert en HTTPS, pour 9,99 € par mois.
- 10 octobre 2026 [Comment déployer une application Nuxt en 2026 : une commande, un serveur Node et HTTPS](https://pethost.dev/fr/blog/deploy-nuxt-app/) Déployez une application Nuxt 4 en une commande : pethost deploy écrit le Dockerfile, lance nuxt build et démarre le serveur Node en HTTPS, pour 9,99 €/mois.
- 10 octobre 2026 [Comment déployer une application React Router en 2026 : le Dockerfile du template, une commande et HTTPS](https://pethost.dev/fr/blog/deploy-react-router-app/) 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.
- 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.

[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/)
