---
title: "So deployst du eine Go-Gin-App 2026"
description: "Eine Go-Gin-App mit einem Befehl deployen: pethost deploy schreibt das Dockerfile, baut das Programm und liefert es per HTTPS aus, für 9,99 € im Monat."
---

[Blog](https://pethost.dev/de/blog/) · Deploy-Anleitungen

# So deployst du eine Go-Gin-App 2026: ein Befehl, HTTPS und ein Dockerfile, das bleibt

Vom Pethost-Team · 10. Oktober 2026 · Aktualisiert 25. Oktober 2026 · 8 Min. Lesezeit

Du hast eine Gin-App, die auf deinem Laptop läuft, und willst sie unter einer Adresse mit HTTPS online haben. Bei Pethost ist das ein Befehl, `pethost deploy`, ausgeführt im Ordner mit der `go.mod`. Er schreibt das Dockerfile für dich, baut das Programm und gibt seine Adresse aus. Der Quickstart von Gin war beim ersten Mal in 58 s gebaut und gestartet, beim zweiten Mal in 2 s.

**Kurz gesagt**

- **Ein Befehl:** `pethost deploy` im Ordner mit der `go.mod`. Du schreibst keine Konfigurationsdatei und füllst keine Build-Einstellungen aus.
- **Was er tut:** Er liest die Go-Version aus der `go.mod`, schreibt ein Dockerfile, das `go build` ausführt, und startet das Programm.
- **Der Port:** Gin lauscht auf 8080, solange `PORT` nichts anderes sagt. Pethost findet den Port, auf dem das Programm lauscht, also stellst du nichts ein.
- **Die Adresse:** `https://my-api.yourname.pethost.app`, sofort mit HTTPS. Deine eigene Domain ist ein DNS-Eintrag.
- **Der Preis:** 9,99 € im Monat für 2 vCPU, 3 GB und 30 GB, für diese API und jedes andere Projekt, das du hast. Einen Free Tier gibt es nicht.

## Was du brauchst, um eine Gin-App 2026 zu deployen

Drei Dinge: die App, den Befehl `pethost` und ein Pethost-Konto.

**Die App** ist hier die, die der Quickstart von Gin hinterlässt: `go mod init my-api`, `go get github.com/gin-gonic/gin` und diese `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
}
```

**Der Befehl** ist ein Programm, installiert mit einer Zeile. Alle seine Befehle stehen in der [Referenz der 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
```

**Das Konto** braucht einen Tarif. Bist du nicht angemeldet, öffnet `pethost deploy` deinen Browser und meldet dich an. Hast du noch keinen Tarif, zeigt es dir, wo du einen wählst, und wartet.

## Die Gin-App mit einem Befehl deployen

Geh in den Ordner mit der `go.mod` und führ `pethost deploy` aus. Das ist die ganze Ausgabe für den 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. **Es fragt nach einer Sache** Nach dem Namen des Projekts, dem ersten Wort seiner Adresse. Enter übernimmt den Namen des Ordners.
2. **Die Maschine findet nichts zum Ausführen** Die Zeile mit dem Kreuz ist ihre Antwort: Ein Projekt läuft aus einem Dockerfile oder einer Compose-Datei, und der Ordner hat noch keins von beiden.
3. **pethost schreibt das Dockerfile** Es hat die `go.mod` gesehen und daneben ein `package main`, und lädt den Ordner erneut hoch.
4. **Die Maschine baut und startet es** Sie sieht, dass das Programm auf 8080 lauscht, und leitet die Adresse dorthin. Dann ruft pethost die Adresse selbst auf und gibt aus, was sie geantwortet hat.

Die Antwort ist 404, weil der Quickstart keine Route auf `/` hat, nur `/ping`. Eine eigene API sagt oft dasselbe, und es heißt, dass das Programm läuft und antwortet. Ruf die Route auf, die es gibt:

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

Die Datei `.pethost` sagt, welches Projekt dieser Ordner ist. Committe sie mit dem Dockerfile, dann fragt der nächste Deploy nichts mehr.

## Das Dockerfile, das pethost für ein Go-Programm schreibt

Das ist die Datei, wie sie in den Ordner des Quickstarts geschrieben wurde, vollständig:

```
# 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"]
```

Die erste Zeile sagt, was pethost in deinem Ordner gelesen hat. Drei Dinge kommen von dort:

- **Die Go-Version** ist die aus der Zeile `go` der `go.mod`.
- **Das Programm** ist das `package main` im Wurzelverzeichnis des Moduls, oder der eine Ordner in `cmd/`, der eins hat. Haben mehrere Ordner in `cmd/` eins, schreibt pethost nichts und sagt, warum: Welches Programm die Leute unter der Adresse bekommen, entscheidest du.
- **Der Name** ist der letzte Teil des Modulpfads, so wie `go install` das Programm benennen würde. Ein `Procfile` mit einer Zeile `web` startet das Programm so, wie diese Zeile es sagt.

Die beiden Cache-Mounts behalten die Module und den Build-Cache von Go zwischen den Deploys auf deiner Maschine. Deshalb dauerte der zweite Deploy 2 s. Kann die Maschine das Dockerfile, das pethost geschrieben hat, nicht bauen oder starten, nimmt pethost die Datei wieder aus deinem Ordner und sagt, was fehlgeschlagen ist.

## GIN_MODE und andere Umgebungsvariablen setzen

Gin startet im Debug-Modus: Seine Log-Zeilen beginnen mit `[GIN-debug]`. Das Log sagt auch, welchen Port es genommen hat:

```
$ 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
```

Eine Variable ist ein Befehl. Sie landet in der Datei `.env` des Projekts auf der Maschine, die jeder spätere Deploy behält, und die App startet mit ihr neu:

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

Ein Name allein fragt nach dem Wert, ohne ihn anzuzeigen, und so setzt du ein Secret: `pethost env set DATABASE_URL`. `PORT` musst du nicht setzen: Mit `router.Run()` nimmt Gin 8080, und mit `router.Run(":3000")` findet die Maschine 3000 genauso.

## Den Code ändern und neu deployen

Bearbeite einen Handler und führ denselben Befehl aus. Die Maschine behält die Layer des Builds und die Caches von 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
```

Soll stattdessen jeder Push deployt werden, verbinde das Repository einmal:

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

Pethost liest nur die Repositorys, die du seiner GitHub-App gegeben hast. Geht ein Deploy schief, holt `pethost rollback` die Version davor zurück, und deine Maschine behält die drei Versionen vor der aktuellen. Ein KI-Agent kann all das über den MCP-Server von Pethost für dich erledigen: [wie ein Agent ein Projekt deployt und betreut](https://pethost.dev/de/blog/hosting-for-ai-coding-agents/). Derselbe Befehl deployt eine [Fiber-App](https://pethost.dev/de/blog/deploy-fiber-app/).

## Eine eigene Domain für die API nutzen

Jeder Name unter der Domain deines Kontos ist sofort eine Adresse, mit HTTPS. Eine Domain, die dir gehört, braucht einen Befehl und einen DNS-Eintrag:

```
pethost domain add api.example.com
```

Der Befehl gibt den Eintrag aus, den du anlegst: einen CNAME von deinem Namen auf den Namen deiner Maschine. Das Zertifikat kommt von selbst, sobald der Name auflöst, und erneuert sich selbst.

## Was du für den Preis bekommst

Pethost kostet 9,99 € im Monat für alles, was du hostest, auf 2 vCPU, 3 GB RAM und 30 GB Disk. Ein Gin-Programm ist eine kleine Binärdatei, also hat die Maschine Platz für seine Datenbank, einen Worker und deine anderen Projekte. Es gibt [keine Gebühr pro Projekt](https://pethost.dev/de/blog/unlimited-projects-flat-monthly-fee/) und nichts nach Verbrauch: Eine zweite API kostet nichts extra, und ein Postgres daneben ist [im selben Preis enthalten](https://pethost.dev/de/blog/european-hosting-postgres-flat-price/).

- **9,99 €** im Monat für alle deine Projekte, nichts nach Verbrauch
- **58 s** zum Bauen und Starten des Quickstarts, beim ersten Mal
- **2 s** für den Deploy danach

Was schon für dich erledigt ist: HTTPS mit Zertifikaten, die sich selbst erneuern, Deploys aus GitHub, nächtliche Backups, 14 Tage aufbewahrt, SSH in jeden Container, und jeder Request wird gezählt. Das Panel zeigt die meistaufgerufenen Pfade und die Fehlerrate der letzten 30 Tage, und für eine API ist das die Liste der Routen, die wirklich aufgerufen werden. Die Maschine läuft immer, also wartet ein Request [nie auf einen Cold Start](https://pethost.dev/de/blog/always-on-hosting-no-cold-starts/). Die Tarife stehen im Abschnitt [Preise](https://pethost.dev/de/#pricing) der Startseite.

**Welche Routen aufgerufen werden.** Die zehn meistaufgerufenen Pfade eines Projekts mit ihrem Anteil und ihren Antwortzeiten, und das Log der einzelnen Requests.

![Das Pethost-Panel: die zehn meistaufgerufenen Pfade eines Projekts mit Anteil, Anzahl und Antwortzeiten, und das Log der einzelnen Requests.](https://pethost.dev/shots/traffic.webp)

### Pethost ist die beste Wahl für

- **alle, die in Go eine kleine API betreiben**: das Programm, seine Datenbank und sein Worker auf einer Maschine, auf einer Rechnung
- **alle, die allein entwickeln**, mit mehreren Side Projects, jedes unter einer eigenen Adresse
- **alle, deren Agent für sie deployt**: Claude Code oder Codex bringt die API online und liest ihre Logs
- **junge Startups**, die feste monatliche Kosten wollen, solange das Produkt klein ist

### Schau dich anderswo um, wenn

- deine Anwendung mehrere Regionen oder Autoscaling braucht

## Fragen

### Braucht eine Gin-App ein Dockerfile zum Deployen?

Bei Pethost läuft ein Projekt aus einem Dockerfile oder einer Compose-Datei, und du musst es nicht selbst schreiben: In einem Ordner, der keins von beiden hat, schreibt `pethost deploy` das Dockerfile für ein Go-Programm und deployt es. Die Datei bleibt in deinem Ordner, und du kannst sie ändern.

### Auf welchem Port sollte eine Gin-App lauschen?

Auf jedem. Mit `router.Run()` lauscht Gin auf 8080 oder auf dem Port, den die Variable `PORT` nennt. Pethost findet den Port, auf dem das Programm lauscht, und leitet die Adresse dorthin, per HTTPS.

### Wie setze ich GIN_MODE=release in Produktion?

Führ `pethost env set GIN_MODE=release` im Ordner des Projekts aus. Die Variable landet in der Datei `.env` des Projekts auf der Maschine, die App startet mit ihr neu, und spätere Deploys behalten sie.

### Warum sagt pethost deploy „It answers 404“ für meine Gin-API?

Nach einem Deploy ruft pethost die Adresse `/` auf und gibt die Antwort aus. Eine API ohne Route auf `/` antwortet dort mit 404, was trotzdem zeigt, dass das Programm läuft. Ruf eine deiner Routen auf, um sie arbeiten zu sehen.

### Kann ich eine Gin-App bei jedem Push von GitHub deployen?

Ja. Deploye den Ordner einmal mit `pethost deploy`, dann führ `pethost github owner/repository` aus. Ab dann deployt sich jeder Push auf das Repository von selbst, und `pethost rollback` geht zu einem früheren Commit zurück.

### Was kostet es, eine Gin-API bei Pethost zu hosten?

9,99 € im Monat für Starter, mit 2 vCPU, 3 GB und 30 GB und ohne Gebühr pro Projekt: Deine anderen APIs, Websites und Datenbanken laufen dort auch. Einen Free Tier gibt es nicht. Die Preise verstehen sich zzgl. MwSt.

Die Ausgaben stammen von Deploys der App, die der Quickstart von Gin schreibt, mit Gin 1.12.0, Go 1.25 und pethost 0.2.1, auf einer Testmaschine von uns, die vorher nichts gebaut hatte. Das Konto darin ist das Beispielkonto, `sam`.

1. [Gin: Quickstart](https://gin-gonic.com/en/docs/quickstart/)
2. [Gin: Deployment](https://gin-gonic.com/en/docs/deployment/)
3. [pethost, die Kommandozeile von Pethost](https://pethost.dev/docs/cli/)

## Bring deine Projekte noch heute online

Deploy Apps, Bots und Datenbanken aus deinem Agenten, von GitHub oder im Browser, so viele, wie hineinpassen, zu einem festen Preis. Nichts nach Verbrauch, nichts obendrauf.

[Alle deine Projekte für 9,99 €/Monat hosten](https://console.pethost.dev/)

## Weiterlesen

- 10. Oktober 2026 [So deployst du eine Go-Fiber-App 2026: ein Befehl, HTTPS und ein Dockerfile, das bleibt](https://pethost.dev/de/blog/deploy-fiber-app/) Eine Go-Fiber-App mit einem Befehl deployen: pethost deploy schreibt das Dockerfile, baut sie in 45 s und liefert sie per HTTPS aus, für 9,99 € im Monat.
- 10. Oktober 2026 [So deployst du eine Nuxt-App 2026: ein Befehl, ein Node-Server und HTTPS](https://pethost.dev/de/blog/deploy-nuxt-app/) Nuxt-4-App mit einem Befehl deployen: pethost deploy schreibt das Dockerfile, führt nuxt build aus und startet den Node-Server per HTTPS, für 9,99 € im Monat.
- 10. Oktober 2026 [So deployst du eine React-Router-App 2026: das Dockerfile des Templates, ein Befehl und HTTPS](https://pethost.dev/de/blog/deploy-react-router-app/) React-Router-App mit Server-Rendering deployen: pethost deploy baut das Dockerfile des Templates und liefert sie in 11 s per HTTPS aus, für 9,99 € im Monat.
- 10. Oktober 2026 [So deployst du eine TanStack-Start-App 2026: Nitro, ein Start-Skript und ein Befehl](https://pethost.dev/de/blog/deploy-tanstack-start-app/) TanStack Start auf einem Node-Server deployen: Nitro und Start-Skript ergänzen, pethost deploy ausführen, nach 29 s per HTTPS online, für 9,99 € im Monat.

[Alle Artikel](https://pethost.dev/de/blog/) · [Über Pethost](https://pethost.dev/about/) · [Preise](https://pethost.dev/de/#pricing)

Pethost · Stephan Gomer · NIP 1133096755

Pethost

- [Vorlagen](https://pethost.dev/de/templates/)
- [Über uns](https://pethost.dev/about/)
- [Doku](https://pethost.dev/docs/)
- [Blog](https://pethost.dev/de/blog/)
- [API](https://pethost.dev/docs/api/)
- [CLI](https://pethost.dev/docs/cli/)
- [Plugin](https://github.com/pethost-dev/plugin)
- [AGB](https://pethost.dev/terms/)
- [Datenschutz](https://pethost.dev/privacy/)
- [Erstattung](https://pethost.dev/refunds/)
- [support@pethost.dev](mailto:support@pethost.dev)

Datenbanken

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

Vergleiche

- [Coolify vs Dokploy vs CapRover vs Dokku](https://pethost.dev/de/blog/coolify-vs-dokploy-vs-caprover-vs-dokku/)
- [Coolify Cloud vs Dokploy Cloud](https://pethost.dev/de/blog/coolify-cloud-vs-dokploy-cloud/)
- [Railway vs Render vs Fly.io Preise](https://pethost.dev/de/blog/railway-vs-render-vs-fly-io-pricing/)
- [Managed Hosting für Docker Compose](https://pethost.dev/de/blog/managed-docker-compose-hosting/)

Alternativen

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