feat: Добавлена новая система авторизации с JWT токенами

- Удален Basic Auth, заменен на современную JWT авторизацию
- Добавлена страница входа с красивым интерфейсом
- Обновлен фронтенд для работы с JWT токенами
- Добавлены новые зависимости: PyJWT, passlib[bcrypt], jinja2
- Создан тестовый скрипт для проверки авторизации
- Добавлено руководство по миграции
- Обновлена документация и README
- Улучшен дизайн поля ввода пароля на странице входа

Автор: Сергей Антропов
Сайт: https://devops.org.ru
This commit is contained in:
Сергей Антропов
2025-08-17 18:29:06 +03:00
parent 3126ff4eb6
commit a979dd2838
10 changed files with 1238 additions and 98 deletions

View File

@@ -1,7 +1,34 @@
# LogBoard+
Веб-интерфейс для просмотра логов Docker контейнеров в реальном времени.
Веб-интерфейс для просмотра логов Docker контейнеров в реальном времени с современной системой авторизации.
## 🔐 Новая система авторизации
LogBoard+ теперь использует современную систему авторизации на основе JWT токенов вместо Basic Auth:
### Основные изменения:
- **JWT токены** вместо Basic Auth
- **Страница входа** с красивым интерфейсом
- **Безопасные сессии** с автоматическим истечением
- **Защищенные API** эндпоинты
- **Автоматическое перенаправление** на страницу входа при отсутствии авторизации
### Как использовать:
1. **Откройте LogBoard+** в браузере
2. **Автоматически перенаправление** на страницу входа
3. **Введите логин и пароль** (по умолчанию: admin/admin123)
4. **Получите доступ** к панели управления логами
5. **Используйте кнопку "Выйти"** для завершения сессии
### Настройка пользователей:
В файле `.env` или `docker-compose.yml`:
```bash
LOGBOARD_USER=admin # Имя пользователя
LOGBOARD_PASS=admin123 # Пароль
SECRET_KEY=your-secret-key # Секретный ключ для JWT
SESSION_TIMEOUT=3600 # Время жизни сессии в секундах
```
## Исправления дублирования строк и правильных переносов строк в режимах Single View и MultiView
@@ -153,8 +180,8 @@ http://localhost:9001
| Переменная | Описание | Значение по умолчанию |
|------------|----------|----------------------|
| `LOGBOARD_PORT` | Порт веб-интерфейса | `9001` |
| `LOGBOARD_USER` | Имя пользователя для Basic Auth | `admin` |
| `LOGBOARD_PASS` | Пароль для Basic Auth | `s3cret-change-me` |
| `LOGBOARD_USER` | Имя пользователя для авторизации | `admin` |
| `LOGBOARD_PASS` | Пароль для авторизации | `admin123` |
| `LOGBOARD_TAIL` | Количество строк истории | `500` |
| `LOGBOARD_SNAPSHOT_DIR` | Директория для снимков | `/app/snapshots` |
| `LOGBOARD_INDEX_HTML` | Путь к HTML шаблону | `./templates/index.html` |
@@ -169,7 +196,7 @@ http://localhost:9001
| `SECRET_KEY` | Секретный ключ для шифрования | `your-secret-key-here` |
| `ENCRYPTION_KEY` | Ключ шифрования | `your-encryption-key-here` |
**⚠️ Важно:** Измените значения `LOGBOARD_PASS`, `SECRET_KEY` и `ENCRYPTION_KEY` в продакшене!
**⚠️ Важно:** Измените значения `LOGBOARD_PASS`, `SECRET_KEY` и `ENCRYPTION_KEY` в продакшене! Для безопасности используйте сложные пароли и уникальные секретные ключи.
### Работа с множественными проектами
@@ -265,11 +292,11 @@ docker compose up --build -d
http://localhost:9001
```
По умолчанию логин/пароль для Basic Auth задаются в `docker-compose.yml`:
По умолчанию логин/пароль для авторизации задаются в `docker-compose.yml`:
```yaml
environment:
- LB_USER=admin
- LB_PASS=admin
- LOGBOARD_USER=admin
- LOGBOARD_PASS=admin123
```
---