3.2 KiB
Тестовый стенд (dev.schedule.our-place.ru)
Отдельный стенд для обкатки админки: свой каталог, свои порты, своя база
настроек. Прод (/opt/schedule, schedule.our-place.ru) не трогаем — он
продолжает работать как раньше.
Ветка: admin-panel.
1. Код
sudo mkdir -p /opt/schedule-dev && sudo chown "$USER" /opt/schedule-dev
git clone -b admin-panel <адрес репозитория> /opt/schedule-dev
Адрес — тот же, что у прода: если прод-клон забирает обновления по SSH,
берите SSH-адрес (ssh://git@git.our-place.ru:2222/Mermutef/schedule.git),
если по HTTPS — HTTPS-адрес с токеном:
git clone -b admin-panel https://Mermutef:<токен>@git.our-place.ru/Mermutef/schedule.git /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
ADMIN_PATH=/manage-<секретная-часть>
ADMIN_LOGIN=<логин>
ADMIN_PASSWORD=<пароль>
API_PORT=127.0.0.1:8001
FRONTEND_PORT=127.0.0.1:8091
SCHEDULE_API=http://api:8000
SETTINGS_FILE=/data/settings.json
Порты 8001/8091 выбраны, чтобы не пересечься с продом (8000/8090).
ADMIN_PATH — секретный путь страницы админки: его нужно знать, чтобы
попасть в панель; на сайте ссылки на него нет.
3. Запуск
cd /opt/schedule-dev
sudo docker compose up -d --build
sudo docker compose ps
Настройки админки лежат в томе schedule-dev_schedule_data и переживают
пересборку; посмотреть можно так:
sudo docker run --rm -v schedule-dev_schedule_data:/data alpine cat /data/settings.json
4. nginx и сертификат
В deploy/nginx-dev.conf порт proxy_pass должен совпадать с FRONTEND_PORT
из .env (по умолчанию 8091; если порт меняли — поправьте и в конфиге).
sudo cp /opt/schedule-dev/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/dev.schedule.our-place.ru
sudo nginx -t && sudo systemctl reload nginx
sudo certbot --nginx -d dev.schedule.our-place.ru
5. Проверка
curl -sI https://dev.schedule.our-place.ru/ | head -3 # 200
curl -s -o /dev/null -w '%{http_code}\n' https://dev.schedule.our-place.ru/api/admin/state # 401 (нужен вход)
Дальше — открыть https://dev.schedule.our-place.ru/<ADMIN_PATH> в браузере,
войти логином/паролем из .env и проверить: смена ссылки, интервал,
«Обновить сейчас».
Обновление стенда
cd /opt/schedule-dev && git pull && sudo docker compose up -d --build