Português

Blog · Guias de deploy

Como fazer deploy de um app Go Fiber em 2026: um comando, HTTPS e um Dockerfile que fica com você

Pela equipe da Pethost · · Atualizado em · 8 min de leitura

Você tem um app Fiber que responde em localhost:3000 e quer colocá-lo em um endereço público com HTTPS. No Pethost, isso é um comando, pethost deploy, rodado na pasta que tem o go.mod. Ele escreve o Dockerfile para você, faz o build do programa e mostra o endereço dele. O hello world do Fiber teve o build feito e foi iniciado em 45 segundos na primeira vez, e em 3 segundos na segunda.

Em resumo
  • Um comando: pethost deploy na pasta que tem o go.mod. Não há arquivo de configuração para escrever nem comando de build ou de início para preencher.
  • O que ele faz: lê a versão do Go no go.mod, escreve um Dockerfile que roda go build e inicia o programa.
  • A porta: a que o app.Listen indicar. O Pethost encontra a porta em que o programa escuta, então nenhuma variável PORT é necessária.
  • O endereço: https://my-api.yourname.pethost.app, com HTTPS na hora. Seu próprio domínio é um registro DNS.
  • O preço: € 9,99 por mês por 2 vCPU, 3 GB e 30 GB, para este app e todos os seus outros projetos. Não existe plano gratuito.

O que você precisa para fazer deploy de um app Fiber em 2026

Três coisas: o app, o comando pethost e uma conta no Pethost.

O app aqui é o hello world do Fiber: go mod init my-api, go get github.com/gofiber/fiber/v3 e este 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"))
}

O comando é um programa, instalado com uma linha. Todos os comandos dele estão na referência da CLI.

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

A conta precisa de um plano. Se você não entrou, o pethost deploy abre o seu navegador e faz o seu login. Se você ainda não tem um plano, ele mostra onde escolher um e espera.

Faça o deploy do app Fiber com um comando

Vá até a pasta que tem o go.mod e rode pethost deploy. Esta é a tela inteira, para o 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
  1. Ele pergunta uma coisa O nome do projeto, que é a primeira palavra do endereço. Enter usa o nome da pasta.
  2. A máquina não encontra nada para rodar A linha com o X é a resposta dela: um projeto roda a partir de um Dockerfile ou de um arquivo Compose, e a pasta ainda não tem nenhum dos dois.
  3. O pethost escreve o Dockerfile Ele viu o go.mod e um package main ao lado, e envia a pasta de novo.
  4. A máquina faz o build e o inicia Ela vê que o programa escuta na 3000 e manda o endereço para lá. Depois o pethost acessa o próprio endereço e mostra o que ele respondeu: 200.

O endereço responde o que o handler envia, e um caminho sem rota recebe o 404 do próprio Fiber:

$ curl https://my-api.sam.pethost.app/
Hello, World 👋!

O arquivo .pethost diz qual projeto é esta pasta. Faça o commit dele junto com o Dockerfile, e o próximo deploy não pergunta nada.

O Dockerfile que o pethost escreve para um app Fiber

Este é o arquivo como foi escrito na pasta do hello world, inteiro:

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

Nada nele é específico do Fiber: um app Fiber é um programa Go, e é isso que o pethost procura. Três coisas vêm da sua pasta:

As duas montagens de cache guardam os módulos e o cache de build do Go na sua máquina entre um deploy e outro. Se a máquina não consegue fazer o build ou iniciar o Dockerfile que o pethost escreveu, o pethost tira o arquivo da sua pasta e diz o que falhou.

Em qual porta o Fiber escuta?

Na que você passa para o app.Listen. O hello world diz ":3000", e a tela do deploy diz o mesmo: app listens on 3000. A máquina olha o container rodando, então não há porta para declarar nem variável PORT para ler. A tela de início do próprio Fiber está no 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

Os visitantes chegam por HTTPS na porta de sempre, e o proxy na sua máquina passa cada requisição para o programa. Uma variável que o app lê é um comando, pethost env set DATABASE_URL: ele pede o valor sem mostrá-lo, coloca no arquivo .env do projeto na máquina, e os próximos deploys o mantêm.

Altere o código e faça o deploy de novo

Edite um handler e rode o mesmo comando. A máquina guarda as camadas do build e os caches do 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

Para fazer o deploy a cada push, conecte o repositório uma vez:

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

O Pethost lê só os repositórios que você deu ao GitHub App dele. Se um deploy der errado, pethost rollback coloca de volta a versão anterior, e a sua máquina guarda as três versões antes da atual. Um agente de IA pode fazer tudo isso por você pelo servidor MCP do Pethost: como um agente faz o deploy de um projeto e cuida dele. O mesmo comando faz o deploy de um app Gin.

Use seu próprio domínio no app

Qualquer nome sob o domínio da sua conta já é um endereço na hora, com HTTPS. Um domínio seu leva um comando e um registro DNS:

pethost domain add api.example.com

O comando mostra o registro a criar: um CNAME do seu nome para o nome da sua máquina. O certificado chega sozinho assim que o nome resolve, e se renova sozinho.

O que você recebe pelo preço

O Pethost custa € 9,99 por mês por tudo o que você hospeda, com 2 vCPU, 3 GB de memória e 30 GB de disco. Um programa Fiber é um binário pequeno, então a máquina tem espaço para o banco de dados dele, um worker e os seus outros projetos. Não há taxa por projeto e nada é medido: um mês movimentado custa o mesmo que um mês tranquilo.

O que já vem feito para você: HTTPS com certificados que se renovam sozinhos, deploys a partir do GitHub, backups noturnos guardados por 14 dias, SSH em qualquer container, e cada requisição contada, com os caminhos mais acessados e a taxa de erros dos últimos 30 dias. A máquina está sempre ligada, então uma requisição nunca espera um cold start. Os planos estão na parte de preços da página inicial.

Um projeto, aberto nas requisições. Quantas chegaram, com que rapidez foram respondidas e um gráfico dos últimos 15 minutos.
O painel do Pethost: um projeto aberto nas requisições, com a contagem, os tempos de resposta e um gráfico dos últimos 15 minutos.

O Pethost é a melhor escolha para

  • Desenvolvedores Go com um serviço pequeno: o programa, o banco de dados e o worker em uma máquina, em uma só fatura
  • Desenvolvedores solo com vários projetos paralelos, cada um no seu próprio endereço
  • Quem deixa o agente fazer o deploy: o Claude Code ou o Codex coloca o app no ar e lê os logs dele
  • Startups no começo que querem um custo mensal fixo enquanto o produto é pequeno

Procure outra opção se

  • Sua aplicação precisa de várias regiões ou de autoscaling

Perguntas

Um app Fiber precisa de Dockerfile para fazer deploy?

No Pethost, um projeto roda a partir de um Dockerfile ou de um arquivo Compose, e você não precisa escrevê-lo: em uma pasta que não tem nenhum dos dois, o pethost deploy escreve o Dockerfile de um programa Go e faz o deploy. O arquivo fica na sua pasta, e você pode alterá-lo.

Preciso ler a variável PORT em um app Fiber?

Não. Mantenha a porta que você passa para o app.Listen, por exemplo ":3000". O Pethost encontra a porta em que o programa rodando escuta e manda o endereço para lá, com HTTPS.

Dá para fazer deploy de um app Fiber do GitHub a cada push?

Sim. Faça o deploy da pasta uma vez com pethost deploy e depois rode pethost github owner/repository. A partir daí, cada push no repositório faz o deploy sozinho, e pethost rollback volta para um commit anterior.

Como usar um domínio próprio com HTTPS em um app Fiber?

Rode pethost domain add api.example.com e crie o único registro DNS que ele mostra, um CNAME para o nome da sua máquina. O certificado chega sozinho assim que o nome resolve, e se renova sozinho.

Quanto custa hospedar um app Fiber no Pethost?

€ 9,99 por mês no Starter, com 2 vCPU, 3 GB e 30 GB e sem taxa por projeto: seus outros apps, sites e bancos de dados também rodam lá. Não existe plano gratuito. Os preços são sem IVA.

As telas são deploys do hello world do Fiber, com o Fiber 3.5.0, o Go 1.25 e o pethost 0.2.1, em uma máquina de teste nossa que nunca tinha feito build de nada. A conta nelas é a de exemplo, sam.

  1. Fiber: documentação e hello world
  2. Fiber: receitas
  3. pethost, a linha de comando do Pethost

Coloque seus projetos no ar hoje

Publique apps, bots e bancos de dados pelo seu agente, pelo GitHub ou pelo navegador, quantos couberem, a um preço fixo. Nada medido, nada cobrado à parte.

Hospede tudo por € 9,99/mês