2.4 KiB
Второй стенд рядом с основным
Как поднять ещё один экземпляр проекта (например, для проверки правок в таблице на отдельном домене): свой каталог, свои порты, своя ссылка на таблицу. Основной стенд при этом не трогаем.
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