# Второй стенд рядом с основным Как поднять ещё один экземпляр проекта (например, для проверки правок в таблице на отдельном домене): свой каталог, свои порты, своя ссылка на таблицу. Основной стенд при этом не трогаем. ## 1. Код ```bash 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` и заполнить: ```ini 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. Запуск ```bash 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: ```bash sudo deploy/nginx-site.sh --domain dev.schedule.our-place.ru --cert our-place.ru ``` Если у родительского домена нет wildcard-сертификата — выпустите свой (конфиг-заготовка для ручного пути: `deploy/nginx-dev.conf`): ```bash 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. Проверка ```bash curl -s http://127.0.0.1:8091/healthz # {"ok":true} curl -sI https://dev.schedule.our-place.ru/ | head -3 # 200 ``` ## Обновление ```bash cd /opt/schedule-dev && git pull && sudo docker compose up -d --build ```