feat(proxy): add optional auth for dashboard and API

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Vadim Sobinin
2026-03-15 00:23:15 +03:00
parent f8df3ae14b
commit 6bd6a6c8c8
12 changed files with 445 additions and 20 deletions

View File

@@ -50,6 +50,18 @@ Proxy матчит сервисы по `Host` заголовку. Если PC on
В Docker volume монтируется: `./data/proxy:/app/data`.
## Аутентификация
Опциональная auth по логину/паролю через env-переменные `AUTH_USERNAME` и `AUTH_PASSWORD`. Если не заданы — auth отключена.
- `POST /api/auth/login` — возвращает `{ token }` (UUID v4)
- `POST /api/auth/logout` — удаляет сессию
- `GET /api/auth/check` — проверяет, нужна ли auth и валиден ли токен
- Сессии in-memory (`Map`), теряются при рестарте
- Auth middleware защищает `/api/*` кроме `/api/auth/*`
- WebSocket: токен через query `?token=...`
- Сервис-прокси (по Host) — без auth
## Деплой
Два приложения в Dokploy из одного git repo: