88 lines
3.2 KiB
Markdown
88 lines
3.2 KiB
Markdown
# Тестовый стенд (dev.schedule.our-place.ru)
|
||
|
||
Отдельный стенд для обкатки админки: свой каталог, свои порты, своя база
|
||
настроек. Прод (`/opt/schedule`, `schedule.our-place.ru`) не трогаем — он
|
||
продолжает работать как раньше.
|
||
|
||
Ветка: `admin-panel`.
|
||
|
||
## 1. Код
|
||
|
||
```bash
|
||
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-адрес с токеном:
|
||
|
||
```bash
|
||
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` и заполнить:
|
||
|
||
```ini
|
||
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. Запуск
|
||
|
||
```bash
|
||
cd /opt/schedule-dev
|
||
sudo docker compose up -d --build
|
||
sudo docker compose ps
|
||
```
|
||
|
||
Настройки админки лежат в томе `schedule-dev_schedule_data` и переживают
|
||
пересборку; посмотреть можно так:
|
||
|
||
```bash
|
||
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; если порт меняли — поправьте и в конфиге).
|
||
|
||
```bash
|
||
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. Проверка
|
||
|
||
```bash
|
||
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` и проверить: смена ссылки, интервал,
|
||
«Обновить сейчас».
|
||
|
||
## Обновление стенда
|
||
|
||
```bash
|
||
cd /opt/schedule-dev && git pull && sudo docker compose up -d --build
|
||
```
|