Render
Как команде развернуть работу на Render из репозитория.
Render собирает приложение из репозитория и даёт ему публичный адрес вида имя.onrender.com. После каждого изменения в выбранной ветке он разворачивает новую версию сам. Есть бесплатный тариф.
Это способ для курсов на GitHub. Другие варианты — в разделе Развёртывание.
Актуальная документация Render: веб-сервисы, Docker, бесплатный тариф, подключение GitHub.
Что нужно заранее
В организации курса должно стоять приложение Render. Поставить его может только владелец организации: у команды прав администратора нет, с ними можно снять защиту ветки main. Если Render не видит ваш репозиторий, сначала проверьте раздел ниже, затем напишите организатору.
Как развернуть
- Примите приглашение в репозиторий команды: меню «Репозиторий» в Disputa.
- В панели Render нажмите New → Web Service.
- Выберите GitHub как источник, при первом входе подключите свой аккаунт и найдите репозиторий команды.
- Заполните форму:
- Branch:
main, если выкатываете принятую версию; - Language: ваш язык или Docker, если в репозитории есть
Dockerfile; - Build Command и Start Command: команды сборки и запуска, для Docker они не нужны;
- тариф: Free.
- Branch:
- Ключи и пароли задайте в разделе Advanced как переменные окружения. В репозиторий их не кладите.
- Нажмите 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.
Репозитория нет в списке
- Проверьте, что вы приняли приглашение в репозиторий.
- На Render откройте Account Settings → Account Security → Git Deployment Credentials и проверьте, что подключён тот аккаунт GitHub, который привязан к Disputa.
- Если репозиторий всё равно не виден, напишите организатору: Render, скорее всего, не поставлен на этот репозиторий.