105 lines
4.8 KiB
Markdown
105 lines
4.8 KiB
Markdown
# Логи
|
||
|
||
Логи - главный источник диагностики при проблемах запуска, платежей, вебхуков и синхронизации с Remnawave Panel.
|
||
|
||
## Основные команды
|
||
|
||
```bash
|
||
docker compose logs -f backend
|
||
docker compose logs -f worker
|
||
docker compose logs -f frontend
|
||
docker compose logs migrate
|
||
```
|
||
|
||
## Что искать
|
||
|
||
- ошибки миграций в `migrate`;
|
||
- ошибки вебхука Telegram и платежных вебхуков в `backend`;
|
||
- проблемы очереди вебхуков и фоновых задач в `worker`;
|
||
- ошибки проксирования `/api`, `/auth` и ассетов тем во `frontend`;
|
||
- ошибки авторизации Mini App и Telegram OAuth.
|
||
|
||
## Проксирование frontend, `/api`, `/auth` и ассеты тем
|
||
|
||
`frontend` - это nginx-контейнер Mini App. Он отдает статику и проксирует маршруты Web App во внутренний WebApp-сервер backend на `backend:8081`.
|
||
|
||
Сначала смотрите nginx-логи:
|
||
|
||
```bash
|
||
docker compose logs -f frontend
|
||
```
|
||
|
||
Если видите `404`, `502`, `upstream` или `connect() failed`, проверьте маршруты:
|
||
|
||
- `/api/*` и `/auth/*` должны попадать в `frontend:80`, а уже frontend проксирует их в `backend:8081`;
|
||
- `/webapp-logo`, `/webapp-uploaded-logo/*`, `/webapp-favicon/*`, `/webapp-theme-css/*` и `/webapp-theme-assets/*` тоже проксируются через frontend;
|
||
- внешний обратный прокси не должен отдельно уводить `/api` или `/auth` на webhook-сервер `backend:8080`.
|
||
|
||
Быстрые проверки снаружи:
|
||
|
||
```bash
|
||
curl -i https://app.domain.com/health
|
||
curl -i https://app.domain.com/api/bootstrap
|
||
curl -i https://app.domain.com/auth/telegram/start
|
||
curl -i https://app.domain.com/webapp-theme-css/dark/style.css
|
||
```
|
||
|
||
Если `/health` отвечает, а `/api/bootstrap` или ассеты тем падают, смотрите одновременно frontend и backend:
|
||
|
||
```bash
|
||
docker compose logs -f frontend backend
|
||
```
|
||
|
||
Где проверять конфигурацию:
|
||
|
||
- frontend nginx: `deploy/docker/frontend/nginx.conf`;
|
||
- внешний Caddy/Nginx: `deploy/examples/caddy/Caddyfile` или `deploy/examples/nginx/nginx.conf.template`;
|
||
- домен Web App: `SUBSCRIPTION_MINI_APP_URL`, он должен быть публичным HTTPS URL frontend, без `/api`, `/auth` или webhook-пути;
|
||
- WebApp-сервер backend: `WEBAPP_ENABLED=True`, `WEBAPP_SERVER_HOST=0.0.0.0`, `WEBAPP_SERVER_PORT=8081`.
|
||
|
||
## Авторизация Mini App и Telegram OAuth
|
||
|
||
Ошибки авторизации почти всегда видны в `backend`, потому что проверка Telegram Mini Apps `initData`, Telegram OAuth `id_token`, nonce/state и сессий выполняется на WebApp-сервере backend.
|
||
|
||
```bash
|
||
docker compose logs -f backend
|
||
```
|
||
|
||
Ищите сообщения:
|
||
|
||
- `Telegram WebApp initData hash mismatch`;
|
||
- `Telegram WebApp initData auth_date is stale`;
|
||
- `Failed to validate Telegram WebApp initData`;
|
||
- `Telegram OAuth nonce mismatch`;
|
||
- `Telegram OAuth ID token is stale`;
|
||
- `Failed to validate Telegram OAuth ID token`;
|
||
- `Telegram OAuth token exchange failed`;
|
||
- `Telegram OAuth callback failed`;
|
||
- `WebApp auth failed`.
|
||
|
||
Для Mini App внутри Telegram проверьте:
|
||
|
||
- `SUBSCRIPTION_MINI_APP_URL` совпадает с доменом, указанным в BotFather Mini Apps;
|
||
- открывается именно HTTPS frontend-домен, а не backend webhook-домен;
|
||
- время на сервере синхронизировано, иначе `auth_date is stale`;
|
||
- `WEBAPP_AUTH_MAX_AGE_SECONDS` не слишком маленький;
|
||
- `WEBAPP_SESSION_SECRET` постоянный между рестартами.
|
||
|
||
Для Telegram OAuth вне Mini App проверьте:
|
||
|
||
- `TELEGRAM_OAUTH_CLIENT_ID` и `TELEGRAM_OAUTH_CLIENT_SECRET`;
|
||
- callback в Telegram OAuth/BotFather: `https://app.domain.com/auth/telegram/callback`;
|
||
- `/auth/telegram/start` и `/auth/telegram/callback` проходят через frontend nginx в `backend:8081`;
|
||
- в браузере после callback нет статуса `telegram_auth=invalid_state`, `invalid_token`, `not_configured`, `unauthorized` или `failed`.
|
||
|
||
Подробности по маршрутам и настройке OAuth: [веб-приложение / Mini App](../features/web-app.md).
|
||
|
||
## После изменения конфигурации
|
||
|
||
```bash
|
||
docker compose up -d
|
||
docker compose logs -f backend worker frontend
|
||
```
|
||
|
||
См. также [проблемы](issues.md) и [развертывание](../deployment.md).
|