Перейти к содержимому

Запуск на Render

render.yaml в корне репозитория — Blueprint для Render: Render собирает Dockerfile и запускает один веб-сервис с HTTPS на https://<имя>.onrender.com.

Blueprint как есть: бесплатный тариф, демо-данные и демо-учётные записи на странице входа.

  1. В панели Render: New → Blueprint, подключите GitHub и выберите репозиторий.
  2. Render прочитает render.yaml и покажет сервис tsmc; нажмите Deploy Blueprint.
  3. Первая сборка занимает несколько минут; затем откройте адрес сервиса.

Ограничения бесплатного тарифа: диска нет, поэтому данные живут, пока сервис не уснёт (через 15 минут без запросов) или не перезапустится; пробуждение занимает около минуты, демо создаётся заново. 750 бесплатных часов в месяц на рабочее пространство. Подходит, чтобы показать TSMC, но не для работы.

Рабочему серверу нужен диск, а диски есть только на платных тарифах (Starter: $7 в месяц плюс $0,25 за ГБ диска в месяц). В render.yaml:

  • plan: starter;
  • уберите TSMC_DEMO;
  • раскомментируйте disk (/data, 1 ГБ) и переменные TSMC_ADMIN_EMAIL и TSMC_ADMIN_PASSWORD. sync: false значит, что Render спросит их значения при создании Blueprint; администратор создаётся при первом запуске. Без них администратора настроит первый посетитель сайта.

Демо-стенд и рабочий сервер должны быть разными сервисами: демо-учётным записям не место на рабочем сервере, а демо-данные заполняют только пустую базу.

С диском сервис работает в одном экземпляре, а при развёртывании есть простой в несколько секунд (Render останавливает старый экземпляр, прежде чем запустить новый). Миграции схемы выполняются при старте, данные остаются на диске.

Публичный адрес для ссылок в отчётах и баг-репортах берётся из RENDER_EXTERNAL_URL, который задаёт Render; для своего домена задайте TSMC_PUBLIC_URL.

Render делает снимок диска ежедневно и хранит снимки 7 дней (раздел Disks сервиса). Согласованная копия своими силами — в Shell сервиса:

Окно терминала
tsmc-server backup # → /data/backups/tsmc-backup-…

tsmc-server check и tsmc-server restore работают так же; см. Эксплуатация.

Render монтирует диск с владельцем root. Образ стартует от root, передаёт папку данных пользователю node и запускает сервер от node (docker-entrypoint.sh). Тот же образ работает в Docker и compose.