Blog · Deploy-Anleitungen
So deployst du eine Go-Fiber-App 2026: ein Befehl, HTTPS und ein Dockerfile, das bleibt
Du hast eine Fiber-App, die auf localhost:3000 antwortet, und willst sie unter einer öffentlichen Adresse mit HTTPS 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. Das Hello World von Fiber war beim ersten Mal in 45 s gebaut und gestartet, beim zweiten Mal in 3 s.
- Ein Befehl:
pethost deployim Ordner mit dergo.mod. Du schreibst keine Konfigurationsdatei und trägst keinen Build- oder Startbefehl ein. - Was er tut: Er liest die Go-Version aus der
go.mod, schreibt ein Dockerfile, dasgo buildausführt, und startet das Programm. - Der Port: der, den
app.Listennennt. Pethost findet den Port, auf dem das Programm lauscht, also brauchst du keine VariablePORT. - 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 App und jedes andere Projekt, das du hast. Einen Free Tier gibt es nicht.
Was du brauchst, um eine Fiber-App 2026 zu deployen
Drei Dinge: die App, den Befehl pethost und ein Pethost-Konto.
Die App ist hier das Hello World von Fiber: go mod init my-api, go get github.com/gofiber/fiber/v3 und diese main.go:
package main
import (
"log"
"github.com/gofiber/fiber/v3"
)
func main() {
// Initialize a new Fiber app
app := fiber.New()
// Define a route for the GET method on the root path '/'
app.Get("/", func(c fiber.Ctx) error {
// Send a string response to the client
return c.SendString("Hello, World 👋!")
})
// Start the server on port 3000
log.Fatal(app.Listen(":3000"))
}
Der Befehl ist ein Programm, installiert mit einer Zeile. Alle seine Befehle stehen in der Referenz der 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 Fiber-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 das Hello World:
$ cd my-api
$ pethost deploy
Name it [my-api]: it will live at https://my-api.sam.pethost.app
✓ Packed 3 files, 5 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, 5 KB
✓ Uploaded straight to your machine
✓ Built and started in 45 s
· wrote compose.yaml for the Dockerfile: the service app, reading .env
✓ app listens on 3000 → https://my-api.sam.pethost.app
It answers 200.
https://my-api.sam.pethost.app
Wrote .pethost (commit it). Next: pethost logs -f · pethost open
- Es fragt nach einer Sache Nach dem Namen des Projekts, dem ersten Wort seiner Adresse. Enter übernimmt den Namen des Ordners.
- 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.
- pethost schreibt das Dockerfile Es hat die
go.modgesehen und daneben einpackage main, und lädt den Ordner erneut hoch. - Die Maschine baut und startet es Sie sieht, dass das Programm auf 3000 lauscht, und leitet die Adresse dorthin. Dann ruft pethost die Adresse selbst auf und gibt aus, was sie geantwortet hat: 200.
Die Adresse antwortet mit dem, was der Handler sendet, und ein Pfad ohne Route bekommt das eigene 404 von Fiber:
$ curl https://my-api.sam.pethost.app/
Hello, World 👋!
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 eine Fiber-App schreibt
Das ist die Datei, wie sie in den Ordner des Hello World 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"]
Nichts darin ist spezifisch für Fiber: Eine Fiber-App ist ein Go-Programm, und danach sucht pethost. Drei Dinge kommen aus deinem Ordner:
- Die Go-Version ist die aus der Zeile
godergo.mod. - Das Programm ist das
package mainim Wurzelverzeichnis des Moduls, oder der eine Ordner incmd/, der eins hat. Haben mehrere Ordner incmd/eins, schreibt pethost nichts und sagt, warum. - Der Name ist der letzte Teil des Modulpfads, so wie
go installdas Programm benennen würde.
Die beiden Cache-Mounts behalten die Module und den Build-Cache von Go zwischen den Deploys auf deiner Maschine. 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.
Auf welchem Port lauscht Fiber?
Auf dem, den du app.Listen gibst. Das Hello World sagt ":3000", und die Ausgabe des Deploys sagt es auch: app listens on 3000. Die Maschine schaut sich den laufenden Container an, also musst du keinen Port deklarieren und keine Variable PORT lesen. Der eigene Startbildschirm von Fiber steht im Log:
$ pethost logs
2026-10-10T11:29:50Z app INFO Server started on: http://127.0.0.1:3000 (bound on host 0.0.0.0 and port 3000)
2026-10-10T11:29:50Z app INFO Total handlers: 2
2026-10-10T11:29:50Z app INFO Prefork: Disabled
2026-10-10T11:29:50Z app INFO PID: 1
Wer die Adresse öffnet, kommt per HTTPS auf dem üblichen Port, und der Proxy auf deiner Maschine reicht jeden Request an das Programm weiter. Eine Variable, die die App liest, ist ein Befehl, pethost env set DATABASE_URL: Er fragt nach dem Wert, ohne ihn anzuzeigen, schreibt ihn in die Datei .env des Projekts auf der Maschine, und spätere Deploys behalten ihn.
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 3 s
· wrote compose.yaml for the Dockerfile: the service app, reading .env
· kept the project's x-pethost
It answers 200.
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. Derselbe Befehl deployt eine Gin-App.
Eine eigene Domain für die App 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 Fiber-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 und nichts nach Verbrauch: Ein Monat mit viel Traffic kostet so viel wie ein ruhiger.
- 9,99 € im Monat für alle deine Projekte, nichts nach Verbrauch
- 45 s zum Bauen und Starten des Hello World, beim ersten Mal
- 3 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, mit den meistaufgerufenen Pfaden und der Fehlerrate der letzten 30 Tage. Die Maschine läuft immer, also wartet ein Request nie auf einen Cold Start. Die Tarife stehen im Abschnitt Preise der Startseite.
Pethost ist die beste Wahl für
- alle, die in Go einen kleinen Service 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 App 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 Fiber-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.
Muss ich in einer Fiber-App die Variable PORT lesen?
Nein. Behalte den Port, den du app.Listen gibst, zum Beispiel ":3000". Pethost findet den Port, auf dem das laufende Programm lauscht, und leitet die Adresse dorthin, per HTTPS.
Kann ich eine Fiber-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.
Wie nutze ich eine eigene Domain mit HTTPS für eine Fiber-App?
Führ pethost domain add api.example.com aus und leg den einen DNS-Eintrag an, den er ausgibt: einen CNAME auf den Namen deiner Maschine. Das Zertifikat kommt von selbst, sobald der Name auflöst, und erneuert sich selbst.
Was kostet es, eine Fiber-App 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 Apps, Websites und Datenbanken laufen dort auch. Einen Free Tier gibt es nicht. Die Preise verstehen sich zzgl. MwSt.
Die Ausgaben stammen von Deploys des Hello World von Fiber, mit Fiber 3.5.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.
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.