Українська

Блог · Гайди з деплою

Як задеплоїти застосунок на Gin у 2026: одна команда, HTTPS і Dockerfile, що лишається у вас

Команда Pethost · · Оновлено · 7 хв читання

У вас є застосунок на Gin, який працює на ноутбуці, і ви хочете, щоб він був онлайн за адресою з HTTPS. У Pethost це одна команда, pethost deploy, у папці, де лежить go.mod. Вона сама пише Dockerfile, збирає програму й виводить її адресу. Застосунок із quickstart Gin першого разу зібрався й запустився за 58 секунд, а вдруге — за 2 секунди.

Коротко
  • Одна команда: pethost deploy у папці, де лежить go.mod. Не треба ні писати файл конфігурації, ні заповнювати налаштування збірки.
  • Що вона робить: читає версію Go з go.mod, пише Dockerfile, який запускає go build, і запускає програму.
  • Порт: Gin слухає 8080, якщо PORT не каже іншого. Pethost сам знаходить порт, на якому слухає програма, тож вам нічого не треба задавати.
  • Адреса: https://my-api.yourname.pethost.app, з HTTPS одразу. Ваш власний домен — це один DNS-запис.
  • Ціна: 9,99 € на місяць за 2 vCPU, 3 GB і 30 GB, для цього API й усіх інших ваших проєктів. Безплатного тарифу немає.

Що потрібно, щоб задеплоїти застосунок на Gin у 2026

Три речі: застосунок, команда pethost і акаунт Pethost.

Застосунок тут — той, що лишає quickstart Gin: go mod init my-api, go get github.com/gin-gonic/gin і такий 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
}

Команда — це одна програма, яка встановлюється одним рядком. Усі її команди є в довіднику CLI.

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

Акаунту потрібен тариф. Якщо ви не ввійшли, pethost deploy відкриє браузер і виконає вхід. Якщо тарифу ще немає, команда покаже, де його обрати, і зачекає.

Деплой застосунку на Gin однією командою

Перейдіть у папку, де лежить go.mod, і запустіть pethost deploy. Ось увесь екран для 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. Вона питає одне Назву проєкту, яка стає першим словом його адреси. Enter бере назву папки.
  2. Машина не знаходить, що запускати Рядок із хрестиком — це її відповідь: проєкт запускається з Dockerfile або файлу Compose, а в папці поки немає ні того, ні іншого.
  3. pethost пише Dockerfile Він побачив go.mod і поруч із ним package main та завантажує папку ще раз.
  4. Машина збирає й запускає програму Вона бачить, що програма слухає порт 8080, і спрямовує туди адресу. Потім pethost сам відкриває адресу й виводить, що вона відповіла.

Відповідь — 404, бо в quickstart немає маршруту на /, лише /ping. Ваш власний API часто відповість так само, і це означає, що програма запущена й відповідає. Відкрийте маршрут, який існує:

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

Файл .pethost каже, який проєкт відповідає цій папці. Закомітьте його разом із Dockerfile, і наступний деплой нічого не питатиме.

Dockerfile, який pethost пише для програми на Go

Ось файл повністю, таким, яким його записано в папку quickstart:

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

Його перший рядок каже, що pethost прочитав у вашій папці. Звідти береться три речі:

Два монтування кешу зберігають модулі Go та кеш збірки на вашій машині між деплоями. Саме тому другий деплой зайняв 2 секунди. Якщо машина не може зібрати чи запустити Dockerfile, який написав pethost, pethost забирає цей файл із вашої папки й каже, що не вдалося.

Задайте GIN_MODE та інші змінні середовища

Gin запускається в режимі debug: його рядки логу починаються з [GIN-debug]. Лог також каже, який порт він зайняв:

$ 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

Змінна — це одна команда. Вона потрапляє у файл .env проєкту на машині, який зберігають усі наступні деплої, і застосунок перезапускається вже з нею:

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

Якщо вказати лише назву, команда спитає значення, не показуючи його: так задають секрет, pethost env set DATABASE_URL. Задавати PORT не треба: з router.Run() Gin бере 8080, а з router.Run(":3000") машина так само знайде 3000.

Змініть код і задеплойте знову

Відредагуйте обробник і запустіть ту саму команду. Машина зберігає шари збірки та кеші 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

Щоб натомість деплоїти на кожен пуш, один раз підключіть репозиторій:

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

Pethost читає лише ті репозиторії, які ви надали його GitHub App. Якщо деплой пішов не так, pethost rollback повертає попередню версію, а ваша машина зберігає три версії перед поточною. ШІ-агент може зробити все це за вас через MCP-сервер Pethost: як агент деплоїть проєкт і доглядає за ним. Та сама команда деплоїть і застосунок на Fiber.

Власний домен для API

Будь-яке ім’я в домені вашого акаунта одразу стає адресою з HTTPS. Домен, яким ви володієте, потребує однієї команди й одного DNS-запису:

pethost domain add api.example.com

Команда виводить запис, який треба створити: CNAME з вашого імені на ім’я вашої машини. Сертифікат з’являється сам, щойно ім’я почне вказувати на машину, і сам поновлюється.

Що ви отримуєте за ці гроші

Pethost коштує 9,99 € на місяць за все, що ви хостите, на 2 vCPU, 3 GB пам’яті та 30 GB диска. Програма на Gin — це один невеликий бінарник, тож на машині лишається місце для її бази даних, воркера й інших ваших проєктів. Плати за проєкт немає, і нічого не тарифікується за використанням: другий API нічого не коштує додатково, а Postgres поруч із ним входить у ту саму ціну.

Що вже зроблено за вас: HTTPS із сертифікатами, які поновлюються самі, деплої з GitHub, щонічні бекапи, що зберігаються 14 днів, SSH у будь-який контейнер і облік кожного запиту. Панель показує найпопулярніші шляхи й частку помилок за останні 30 днів, а для API це і є список маршрутів, які люди справді викликають. Машина працює завжди, тож запит ніколи не чекає на холодний старт. Тарифи — у розділі ціни на головній сторінці.

Які маршрути викликають. Десять найпопулярніших шляхів проєкту з їхньою часткою та часом відповіді, і лог окремих запитів.
Панель Pethost: десять найпопулярніших шляхів проєкту з часткою, кількістю й часом відповіді, і лог окремих запитів.

Pethost — найкращий вибір для

  • Go-розробників із невеликим API: програма, її база даних і воркер на одній машині, з одним рахунком
  • Соло-розробників із кількома пет-проєктами, кожен за власною адресою
  • Тих, за кого деплоїть агент: Claude Code чи Codex викладає API онлайн і читає його логи
  • Ранніх стартапів, яким потрібні фіксовані щомісячні витрати, поки продукт невеликий

Шукайте інше, якщо

  • Вашому застосунку потрібні кілька регіонів або автомасштабування

Питання

Чи потрібен Dockerfile, щоб задеплоїти застосунок на Gin?

У Pethost проєкт запускається з Dockerfile або файлу Compose, і писати його самому не треба: у папці, де немає ні того, ні іншого, pethost deploy пише Dockerfile для програми на Go і деплоїть її. Файл лишається у вашій папці, і ви можете його змінювати.

Який порт має слухати застосунок на Gin?

Будь-який. З router.Run() Gin слухає 8080 або порт, названий у змінній PORT. Pethost знаходить порт, на якому слухає програма, і спрямовує туди адресу через HTTPS.

Як задати GIN_MODE=release у продакшні?

Запустіть pethost env set GIN_MODE=release у папці проєкту. Змінна потрапляє у файл .env проєкту на машині, застосунок перезапускається з нею, а наступні деплої її зберігають.

Чому pethost deploy пише «It answers 404» для мого API на Gin?

Після деплою pethost відкриває адресу / і виводить відповідь. API без маршруту на / відповідає там 404, і це все одно показує, що програма запущена. Відкрийте один зі своїх маршрутів, щоб побачити, що вона працює.

Чи можна деплоїти застосунок на Gin з GitHub на кожен пуш?

Так. Один раз задеплойте папку командою pethost deploy, потім запустіть pethost github owner/repository. Відтоді кожен пуш у репозиторій деплоїться сам, а pethost rollback повертає до попереднього коміту.

Скільки коштує хостинг API на Gin у Pethost?

9,99 € на місяць за Starter, з 2 vCPU, 3 GB і 30 GB і без плати за проєкт: там працюють і ваші інші API, сайти та бази даних. Безплатного тарифу немає. Ціни вказано без ПДВ.

На екранах — деплої застосунку, який пише quickstart Gin, з Gin 1.12.0, Go 1.25 і pethost 0.2.1, на нашій тестовій машині, яка раніше нічого не збирала. Акаунт на них — приклад, sam.

  1. Gin: швидкий старт
  2. Gin: деплой
  3. pethost, командний рядок Pethost

Запустіть свої проєкти вже сьогодні

Деплойте застосунки, ботів і бази даних з агента, з GitHub або в браузері, скільки поміститься, за однією фіксованою ціною. Нічого за лічильником, нічого зверху.

Хостити всі проєкти за 9,99 €/міс