Searched web: “Koyeb free tier limits 2024 OR 2025 OR 2026”

Доброе утро! ☀️

Koyeb — это отличная европейская альтернатива Heroku, которая специализируется на очень быстром развертывании приложений (Serverless).

У них есть шикарный план Free Tier (Eco), который предоставляется навсегда и без ограничения по времени.

Что входит в бесплатный тариф:

  1. 1 Web Service (Контейнер):
    • RAM: 512 MB
    • CPU: 0.1 vCPU (с возможностью кратковременного буста до 1 vCPU)
    • Диск: 2 GB SSD
    • Трафик: 100 ГБ исходящего трафика в месяц (хватит на миллионы запросов).
    • Локация: На выбор Франкфурт (Германия) или Вашингтон (США).
  2. База данных PostgreSQL: 1 ГБ памяти (но она “засыпает”, если к ней нет обращений дольше 5 часов, поэтому для продакшена не годится).
  3. Бесплатный SSL-сертификат и глобальный CDN (Edge Network).

Главные фишки Koyeb:

  • Не засыпает! В отличие от бесплатных тарифов многих других хостингов (типа Render или старого Heroku), ваш контейнер работает 24/7 и не уходит в “спячку”, если на него не заходили.
  • Идеально для Docker: Он умеет напрямую скачивать готовые образы.

Что туда можно закинуть?

Этот тариф идеально подходит для микросервисов:

  • Наш dicechess-observer залетит туда как родной! Для него 512 МБ ОЗУ — это даже много.
  • Боты для Telegram / Discord.
  • Простые API (FastAPI, Express.js).
  • Небольшие веб-приложения, которые не требуют тяжелых вычислений (базу данных при этом лучше держать у вас на сервере или в Supabase/Neon).

Как запустить там наш Observer?

Поскольку ваш Observer уже упакован в Docker-образ и лежит в GitHub Packages (ghcr.io/rabestro/dicechess-observer:latest), процесс займет ровно 1 минуту:

  1. Регистрируетесь на Koyeb.
  2. Нажимаете “Deploy”.
  3. Выбираете “Docker” и вставляете ссылку на образ.
  4. Прописываете наши переменные среды (INGEST_URL, POLL_INTERVAL_MS).
  5. Жмете “Deploy”. Всё! Сервер сам скачает образ, запустит его и будет держать в фоне.

Если решите поэкспериментировать с ним сегодня — пишите, можем прямо вместе его туда закинуть!


Отличный план! Давайте разберем всё по шагам.

Их официальный сайт: https://www.koyeb.com/

Шаг 1: Регистрация

  1. Перейдите по ссылке и нажмите кнопку Start for free (или Sign Up) в правом верхнем углу.
  2. Проще всего выбрать регистрацию через GitHub (Continue with GitHub) — это сэкономит время.
  3. Koyeb может попросить подтвердить профиль (иногда они просят ввести номер телефона или привязать карту для защиты от ботов, но для тарифа Eco списаний не будет).

Как только вы войдете внутрь и увидите пустую панель управления (Dashboard) с кнопкой Create Service, дайте мне знать, и мы перейдем к Шагу 2 — настройке нашего контейнера!


Виртуальная карта — это идеальное решение для таких сервисов!

Но тут есть один важный нюанс работы банковских систем: поскольку Koyeb делает реальную транзакцию “заморозки” (authorization hold) на 30** (или эквивалент в вашей валюте).

Если на карте сейчас 0 или, скажем, 5 долларов — их платежный шлюз (скорее всего, Stripe) выдаст ошибку “Недостаточно средств” (Insufficient funds), и регистрация не пройдет.

Если нужная сумма там есть:

  1. Смело вводите данные и жмите Continue.
  2. Как только вас пустит в основную панель, сразу же зайдите в раздел настроек вашего аккаунта (обычно это Settings Usage and billing или Organization Settings).
  3. Найдите там ваш текущий план (Pro) и нажмите кнопку понижения тарифа: Downgrade to Starter plan (или что-то похожее).

Дайте знать, как пройдет регистрация, и мы сразу запустим наш контейнер! Если карта не пройдет из-за баланса, тогда без раздумий бросаем эту затею и идем в Oracle.



План Starter на Koyeb — это базовый тариф с моделью оплаты pay-as-you-go (посекундная оплата за потребленные сверх лимита ресурсы). Его главная особенность — наличие так называемого Generous Free Tier (бесплатного уровня), который позволяет запустить небольшой проект, не привязывая карту для списаний, пока вы не превысите выделенные лимиты.

Ниже подробно разобрано, что конкретно вы получаете бесплатно и за что придется платить.

1. Бесплатные ресурсы (Free Tier)

В рамках тарифа Starter на один аккаунт (организацию) выделяется фиксированный набор бесплатных ресурсов.

Web Service (Вычислительный инстанс)

Вам доступен один бесплатный инстанс для запуска приложения. Вы можете развернуть веб-сервер, API, фонового воркера (Worker) или запустить Inference-модель.

  • Ресурсы: 512 MB RAM, 0.1 vCPU, 2 GB SSD.

  • Регионы: Бесплатный сервис можно разместить только в Washington, D.C. (США) или Frankfurt (Германия).

  • Доступность: В отличие от старых бесплатных тарифов Heroku, инстанс на Koyeb не “засыпает” принудительно через определенное время. Он может работать 24/7.

  • Деплой: Поддерживается автоматическая сборка прямо из GitHub (push-to-deploy) или запуск уже готового Docker-образа (например, из ghcr.io или Docker Hub).

Managed PostgreSQL (База данных)

Koyeb предоставляет управляемую базу данных прямо из коробки, так что вам не нужно искать сторонние решения вроде Supabase или Neon для pet-проектов.

  • Ресурсы БД: 1 GB RAM, 0.25 vCPU.

  • Хранилище: до 1 GB данных.

  • Ограничение по времени: Строгий лимит — 5 часов активного времени (active time) в месяц.

  • Как это работает: База данных работает в Serverless-режиме (масштабирование до нуля). Это значит, что если к ней нет запросов, она полностью “засыпает” и не расходует лимит времени. 5 часов — это чистое время процессорных вычислений при обработке ваших запросов. Если проект небольшой или это тестовая среда, этих 5 часов чистой активности хватает на месяц.

  • Нюанс: При выходе БД из спящего режима первый запрос к вашему приложению может обрабатываться с небольшой задержкой (Cold Start).

Сеть и инфраструктура

  • Пользовательские домены: До 5 доменов (Custom Domains) можно привязать бесплатно. Koyeb автоматически выпишет и будет продлевать SSL/TLS сертификаты для них.

  • Исходящий трафик (Egress): 100 GB исходящего трафика в месяц бесплатно. Сверх этого объема стоимость составит 0.04 за каждый гигабайт.

2. Ключевые механизмы платформы

В описании тарифа упоминаются технологии, которые Koyeb использует для управления ресурсами.

Scale-to-Zero и Autoscaling

  • Scale-to-Zero (Масштабирование до нуля): Вы можете настроить свой Web Service так же, как и базу данных — если на ваш сайт/API никто не заходит, приложение выключается. Как только поступает новый HTTP-запрос, Koyeb моментально поднимает микровиртуалку. Это позволяет кардинально экономить деньги, если вы выйдете за рамки бесплатного тарифа.

  • Autoscaling: При увеличении трафика платформа может автоматически поднять дополнительные инстансы вашего приложения (на платном уровне).

Доступ к GPU

Фраза CPU and GPU access означает, что технически тариф Starter не блокирует вам доступ к мощному железу. Если вам нужно запустить AI-модель, вы можете развернуть инстанс с видеокартами (Nvidia RTX 4000, L4, A100 и т.д.).

  • Это не бесплатно. За запуск GPU вы будете платить по секундам (цены начинаются от ~$0.50 в час за базовые карты).

Итог: кому это подходит?

Koyeb Starter идеально подходит для запуска MVP (Minimum Viable Product), Telegram-ботов, небольших API или пет-проектов. У вас будет полноценная связка Backend (Docker/Git) + PostgreSQL, которая будет работать бесплатно, пока проект не генерирует стабильный непрерывный трафик, заставляющий базу данных превышать лимит в 5 часов чистой активности в месяц.



Отлично! Вижу, что вы успешно находитесь на тарифе Starter ($0). Самое страшное позади!

Теперь давайте запустим наш Observer. Это займет ровно одну минуту:

  1. Нажмите большую зеленую кнопку Create Service (слева вверху).
  2. В разделе Deployment method выберите Docker.
  3. В поле Docker image вставьте ссылку на наш образ: ghcr.io/rabestro/dicechess-observer:latest
  4. Ниже найдите раздел Environment variables (Переменные среды) и нажмите Add variable. Нам нужно добавить конфигурацию:
    • Key: INGEST_URL
    • Value: Сюда нужно вписать публичный адрес вашего бэкенда (тот самый единственный Endpoint, который мы выставляли наружу для удаленных обсерверов в прошлых беседах). Обратите внимание: локальный IP http://192.168.10.3:8020 здесь не сработает, так как Koyeb находится в облаке и не видит вашу домашнюю сеть.
    • (Опционально) Можете добавить еще одну переменную Key: POLL_INTERVAL_MS со значением, например, 15000.
  5. В разделе Regions выберите Frankfurt, Germany (fra) — это ближе всего к Латвии, задержки будут минимальными.
  6. Выберите тип инстанса (Instance): убедитесь, что выбран бесплатный Eco (он должен стоить $0/mo).
  7. Можете задать имя сервису в самом низу (например, dicechess-observer) и нажать Deploy.

Как только нажмете Deploy, Koyeb сам скачает образ, запустит его и покажет вам консоль с логами. Дайте знать, как пойдет процесс!



Ах, точно! Ваш пакет в GitHub Container Registry (GHCR) по умолчанию приватный, поэтому Koyeb не может его просто так скачать.

Нам нужно сгенерировать токен (пароль) в GitHub и отдать его Koyeb.

Шаг 1: Создаем токен в GitHub

  1. Откройте GitHub и перейдите в Settings (Настройки профиля) Самый низ левого меню Developer settings Personal access tokens Tokens (classic).
  2. Нажмите Generate new token (classic).
  3. В поле Note напишите, например, Koyeb Registry.
  4. В списке галочек найдите и отметьте только одну: read:packages (Download packages from GitHub Package Registry).
  5. Нажмите зеленую кнопку Generate token в самом низу.
  6. Скопируйте длинный токен (он начинается с ghp_...). Больше вы его не увидите!

Шаг 2: Добавляем токен в Koyeb

  1. Вернитесь на вкладку с Koyeb.
  2. Под полем ввода образа есть выпадающий список Registry (где сейчас написано No credential). Кликните на него и выберите Create new secret (или что-то похожее на добавление).
  3. В появившемся окне выберите провайдера: GitHub Container Registry (если его нет в списке, выберите Custom Registry и введите адрес ghcr.io).
  4. Username: ваш логин на GitHub (например, rabestro или jcemisovs, смотря на ком опубликован пакет).
  5. Password: вставьте тот самый длинный токен ghp_..., который вы скопировали.
  6. Назовите этот секрет (например, ghcr-secret) и сохраните.

После этого Koyeb автоматически подтянет ваш образ, ошибка исчезнет, и вы сможете нажать зеленую кнопку Next!


Ура, авторизация прошла успешно, и образ подтянулся!

Сейчас мы находимся на втором шаге (выбор мощности сервера). Будьте внимательны:

  1. Прямо сейчас у вас выбрана вкладка CPU Standard ✨, и там инстанс “Nano” стоит $2.68/month.
  2. Обязательно переключитесь на соседнюю вкладку левее — CPU Eco 🌱.
  3. Внутри вкладки Eco выберите инстанс, который помечается как бесплатный (обычно он называется Eco Free, имеет 512MB RAM и стоит $0).
  4. Регион Frankfurt выбран правильно (он отмечен зеленой галочкой).

Как только выберете бесплатный Eco-инстанс, смело жмите зеленую кнопку Next!

На следующем (последнем) шаге нам нужно будет добавить ту самую переменную INGEST_URL и указать правильный порт. Покажите скриншот следующего шага, и мы всё пропишем.

![[Pasted image 20260617102211.png]


Viewed config.ts:1-26

Вы просто супер! Всё заполнено идеально. Вы даже прописали AUTO_START=1 и ANALYTICS_BASE_URL (простите, в прошлом сообщении я назвал его INGEST_URL по старой памяти, но вы сами заглянули в код и сделали всё правильно!).

Осталась всего одна крошечная, но критически важная деталь, прежде чем нажать Deploy.

Прокрутите эту страничку чуть ниже, до раздела Ports (или Expose your service). Наш Observer по умолчанию запускается на порту 8040. Убедитесь, что там указан именно Port: 8040 (Koyeb по умолчанию иногда ставит 8000, 8080 или 3000, и если оставить неправильный, он не сможет достучаться до веб-интерфейса Обсервера).

Альтернативный вариант: вы можете прямо здесь же, в переменных среды, добавить еще одну строчку: PORT=8000, и тогда Koyeb точно всё поймет.

Как только проверите/установите порт — жмите Deploy! 🚀



Ага, вот и разгадка! Ошибка 403 Forbidden, а в подписи сервера значится openresty.

OpenResty — это модифицированный Nginx. Если вы используете дома Nginx Proxy Manager (NPM) для проброса домена sync.jc.id.lv в вашу домашнюю сеть, то это именно его рук дело!

Запрос от облачного Observer’а успешно дошел до вашего домашнего роутера, дошел до вашего Nginx Proxy Manager, но сам прокси-сервер заблокировал запрос и не пустил его дальше к бэкенду dicechess-analytics.

Почему это могло произойти:

  1. Access Lists (Списки доступа): Помните, мы обсуждали безопасный проброс единственного эндпоинта наружу? Возможно, в настройках Nginx Proxy Manager для этого домена включен Access List, который разрешает доступ только локальным IP-адресам (192.168.x.x), а всех “чужаков” из интернета отбивает с ошибкой 403.
  2. Web Application Firewall (WAF) / Cloudflare: Если sync.jc.id.lv проксируется через Cloudflare, их система защиты от ботов могла увидеть, что запрос идет из дата-центра Koyeb (Германия) от какого-то скрипта, и заблокировала его. Но обычно Cloudflare отдает свою брендированную страницу, а чистый openresty — это 99% именно локальный Nginx Proxy Manager.
  3. Блокировка по User-Agent: Иногда прокси настроены так, чтобы отбивать нестандартные User-Agent.

Хорошая новость: Ваш бэкенд в безопасности! Прокси-сервер выполнил свою работу и защитил периметр от “неизвестного” облачного сервера.

Если вы захотите, чтобы Koyeb (или другой внешний сервер) всё-таки мог отправлять вам партии, вам нужно будет зайти в настройки Nginx Proxy Manager и немного ослабить правила Access List для этого конкретного адреса (или эндпоинта).

А пока можете смело останавливать или удалять сервис в Koyeb. Эксперимент удался блестяще: мы проверили весь цикл развертывания!