docs: document panel dry-run development mode

This commit is contained in:
3252a8
2026-06-01 10:35:22 +03:00
parent 391487811b
commit 3e922d8edb
2 changed files with 38 additions and 0 deletions
+4
View File
@@ -117,6 +117,10 @@
| --- | --- | | --- | --- |
| `PANEL_API_URL` | URL API панели, например `https://panel.example.com/api`. | | `PANEL_API_URL` | URL API панели, например `https://panel.example.com/api`. |
| `PANEL_API_KEY` | API-ключ панели. | | `PANEL_API_KEY` | API-ключ панели. |
| `APP_RUNTIME_MODE` | Профиль запуска: `production`, `development`, `staging`, `test`. |
| `PANEL_WRITE_MODE` | `auto`, `live` или `dry_run`. В `dry_run` приложение читает живую Remnawave Panel, но мутации пользователей только валидируются и логируются. `auto` включает dry-run для `development`/`test`, а в production остается live. |
| `PANEL_DRY_RUN_VALIDATE_REMOTE` | При dry-run проверять ссылки на panel users/internal squads через live `GET`. |
| `PANEL_DRY_RUN_SYNTHETIC_CREATE` | При dry-run возвращать синтетического panel user на попытку `POST /users`, чтобы dev-цепочки могли завершиться в локальной БД. |
| `PANEL_WEBHOOK_SECRET` | Секрет проверки Remnawave webhook. Задайте его в Remnawave Panel и вставьте то же значение сюда или в админку. | | `PANEL_WEBHOOK_SECRET` | Секрет проверки Remnawave webhook. Задайте его в Remnawave Panel и вставьте то же значение сюда или в админку. |
| `USER_SQUAD_UUIDS` | Internal Squads по умолчанию для legacy-режима без JSON-каталога. | | `USER_SQUAD_UUIDS` | Internal Squads по умолчанию для legacy-режима без JSON-каталога. |
| `USER_EXTERNAL_SQUAD_UUID` | Необязательный External Squad. | | `USER_EXTERNAL_SQUAD_UUID` | Необязательный External Squad. |
+34
View File
@@ -409,3 +409,37 @@ app.example.com {
```bash ```bash
APP_ENV_FILE=.env.staging docker compose --env-file .env.staging up -d --build APP_ENV_FILE=.env.staging docker compose --env-file .env.staging up -d --build
``` ```
## Dev dry-run рядом с production
Для проверки фичей на той же Remnawave Panel поднимайте dev-стек с отдельным
env-файлом, отдельным Telegram-ботом и локальной БД.
В dev-режиме приложение продолжает читать пользователей, squads, devices и
статистику из живой панели, но записи в пользователей Remnawave не отправляет:
payload валидируется, а в логах появляется строка вида
`[PANEL DRY-RUN OK] would PATCH /users ...`.
Минимальный фрагмент `.env.dev`:
```env
APP_RUNTIME_MODE=development
PANEL_WRITE_MODE=dry_run
PANEL_DRY_RUN_VALIDATE_REMOTE=True
PANEL_DRY_RUN_SYNTHETIC_CREATE=True
REDIS_KEY_PREFIX=remnawave-tg-shop-dev
BACKUP_ENABLED=False
```
Запуск:
```bash
APP_ENV_FILE=.env.dev docker compose --env-file .env.dev up -d --build
```
`PANEL_WRITE_MODE=live` можно поставить только для отдельной тестовой Remnawave
Panel, потому что этот режим реально меняет пользователей панели.
Если второй стек запускается на том же хосте, дополнительно разведите
`WEB_SERVER_PORT` и `FRONTEND_PORT`. Если production на другом сервере, локальные
порты можно оставить стандартными.