Files
schedule/deploy/README-dev.md

2.4 KiB
Raw Blame History

Второй стенд рядом с основным

Как поднять ещё один экземпляр проекта (например, для проверки правок в таблице на отдельном домене): свой каталог, свои порты, своя ссылка на таблицу. Основной стенд при этом не трогаем.

1. Код

sudo mkdir -p /opt/schedule-dev && sudo chown "$USER" /opt/schedule-dev
git clone <адрес репозитория> /opt/schedule-dev

2. .env

Скопировать .env.example в /opt/schedule-dev/.env и заполнить:

SCHEDULE_LINK=https://disk.yandex.ru/i/...
SCHEDULE_INTERVAL_MINUTES=15
SCHEDULE_RETRY_AFTER=60
API_PORT=8001
FRONTEND_PORT=8091

Порты 8001/8091 выбраны, чтобы не пересечься с основным стендом (8000/8090). В docker-compose.yml оба порта публикуются на 127.0.0.1 — API и фронт не смотрят в интернет напрямую, наружу их отдаёт nginx.

3. Запуск

cd /opt/schedule-dev
sudo docker compose up -d --build
sudo docker compose ps

4. nginx и сертификат

Конфиг генерирует deploy/nginx-site.sh: порт фронта возьмёт из .env, сертификат — родительского домена (wildcard), затем включит сайт, проверит nginx -t и перечитает nginx:

sudo deploy/nginx-site.sh --domain dev.schedule.our-place.ru --cert our-place.ru

Если у родительского домена нет wildcard-сертификата — выпустите свой (конфиг-заготовка для ручного пути: deploy/nginx-dev.conf):

sudo cp deploy/nginx-dev.conf /etc/nginx/sites-available/dev.schedule.our-place.ru
sudo ln -sf /etc/nginx/sites-available/dev.schedule.our-place.ru /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
sudo certbot --nginx -d dev.schedule.our-place.ru

5. Проверка

curl -s http://127.0.0.1:8091/healthz                    # {"ok":true}
curl -sI https://dev.schedule.our-place.ru/ | head -3    # 200

Обновление

cd /opt/schedule-dev && git pull && sudo docker compose up -d --build