·2 хв читання·fluxLab.dev

Деплой SaaS-продуктів з Docker на Hetzner Cloud

Практичний гайд з розгортання контейнеризованих SaaS-додатків на Hetzner Cloud з Docker Compose, автоматизованим CI/CD та деплоєм без даунтайму.

DockerDevOpsHetznerCI/CD

Вступ

У fluxLab.dev всі шість наших продакшн SaaS-продуктів працюють на Hetzner Cloud. Ми обрали Hetzner замість AWS з простої причини: вартість. Інстанс CX31 (4 vCPU, 8ГБ RAM) коштує €8.50/місяць — приблизно в 5 разів дешевше за еквівалент на AWS.

Наш стек

Кожен продукт використовує однаковий патерн деплою:

  • Docker Compose для оркестрації контейнерів
  • Caddy як реверс-проксі з автоматичним HTTPS
  • GitHub Actions для CI/CD
  • Hetzner Object Storage для файлів (S3-сумісний)

Чому Caddy замість Nginx

Caddy надає автоматичний HTTPS з Let's Encrypt — без налаштування certbot, без крон-задач оновлення сертифікатів. Конфігурація читабельна:

jobber.fluxlab.dev {
    reverse_proxy app:3000
}

Це все. HTTPS просто працює.

CI/CD пайплайн

GitHub Actions білдить Docker-образ з кешуванням шарів через Buildx, пушить у реєстр та деплоїть через SSH.

Для zero-downtime деплою ми покладаємось на поведінку Docker Compose з health checks. Новий контейнер стартує, проходить health check, і лише тоді старий контейнер зупиняється.

Моніторинг

Кожен сервіс виставляє ендпоінт /health, що перевіряє підключення до PostgreSQL та Redis. Всі сервіси виводять структуровані JSON-логи.

Вартість

Запуск Jobber на продакшні на Hetzner:

  • CX31 сервер: €8.50/місяць
  • 100ГБ volume для PostgreSQL: €4.40/місяць
  • Object Storage: ~€2/місяць
  • Всього: ~€15/місяць

Порівняйте з AWS (t3.medium + RDS + S3): ~€80/місяць мінімум. Для бутстреп SaaS-продукту ця різниця в 5 разів значуща.

Уроки

  1. Health checks обов'язкові — без них Docker миттєво перезапускає зламані контейнери
  2. Завжди використовуй volumes для баз даних — втрата даних PostgreSQL невідновна
  3. Фіксуй версії образівpostgres:16-alpine, а не postgres:latest
  4. Автоматизуй все — ручні деплої — джерело №1 інцидентів на продакшні

Висновок

Docker на Hetzner Cloud дає fluxLab.dev інфраструктуру продакшн-класу за частину вартості хмарних провайдерів. Для SaaS-продуктів з передбачуваними навантаженнями виділені сервери з Docker Compose простіші та дешевші за Kubernetes.