Disputa

Render

Как команде развернуть работу на Render из репозитория.

Render собирает приложение из репозитория и даёт ему публичный адрес вида имя.onrender.com. После каждого изменения в выбранной ветке он разворачивает новую версию сам. Есть бесплатный тариф.

Это способ для курсов на GitHub. Другие варианты — в разделе Развёртывание.

Актуальная документация Render: веб-сервисы, Docker, бесплатный тариф, подключение GitHub.

Что нужно заранее

В организации курса должно стоять приложение Render. Поставить его может только владелец организации: у команды прав администратора нет, с ними можно снять защиту ветки main. Если Render не видит ваш репозиторий, сначала проверьте раздел ниже, затем напишите организатору.

Как развернуть

  1. Примите приглашение в репозиторий команды: меню «Репозиторий» в Disputa.
  2. В панели Render нажмите New → Web Service.
  3. Выберите GitHub как источник, при первом входе подключите свой аккаунт и найдите репозиторий команды.
  4. Заполните форму:
    • Branch: main, если выкатываете принятую версию;
    • Language: ваш язык или Docker, если в репозитории есть Dockerfile;
    • Build Command и Start Command: команды сборки и запуска, для Docker они не нужны;
    • тариф: Free.
  5. Ключи и пароли задайте в разделе Advanced как переменные окружения. В репозиторий их не кладите.
  6. Нажмите Create Web Service. Ход сборки виден на странице Deploys.

Приложение должно слушать 0.0.0.0 и порт из PORT

Адрес 127.0.0.1 снаружи не виден. Значение PORT по умолчанию 10000. Если Render не найдёт открытый порт, развёртывание закончится ошибкой, причина будет в логах.

docker-compose.yml Render не запускает: каждый сервис из него заводится на Render отдельно, база тоже.

Когда сервис поднимется, укажите его адрес в Disputa.

Что учесть на бесплатном тарифе

  • Сервис засыпает после 15 минут без запросов и просыпается примерно за минуту. Перед защитой откройте адрес заранее.
  • Файлы не сохраняются. Загрузки и база SQLite пропадают при новом развёртывании, перезапуске и засыпании. Данные держите во внешней базе.
  • Бесплатная база Postgres одна, до 1 ГБ, без резервных копий. Через 30 дней она истекает, ещё через 14 удаляется вместе с данными, если не перейти на платный тариф.
  • Часы ограничены: 750 в месяц на рабочее пространство. Когда они кончатся, бесплатные сервисы остановятся до начала следующего месяца.
  • Сервис живёт в аккаунте того, кто его создал. Если этот человек потеряет доступ к репозиторию, развёртывания могут перестать работать. Подключение меняется в настройках сервиса, Settings.

Репозитория нет в списке

  1. Проверьте, что вы приняли приглашение в репозиторий.
  2. На Render откройте Account Settings → Account Security → Git Deployment Credentials и проверьте, что подключён тот аккаунт GitHub, который привязан к Disputa.
  3. Если репозиторий всё равно не виден, напишите организатору: Render, скорее всего, не поставлен на этот репозиторий.

На этой странице