feat: улучшения UI/UX LogBoard+

- Добавлена кнопка Update для управления AJAX auto-update
- AJAX auto-update включен по умолчанию
- Улучшено управление видимостью кнопки Refresh
- Переупорядочены кнопки в header (Update, Refresh)
- Унифицированы стили кнопок (высота, шрифт, границы)
- Добавлен hover эффект для кнопки options с цветом warning
- Позиционирование help-btn в свернутом sidebar
- Уменьшена ширина свернутого sidebar на 30%
- Добавлена логика разворачивания sidebar при клике на options
- Отображение внешнего порта в статусе контейнера
- Показ 'standalone' для контейнеров без проекта
- Обновлена документация

Автор: Сергей Антропов
Сайт: https://devops.org.ru
This commit is contained in:
2025-08-18 20:32:46 +03:00
parent 6e51f00791
commit 749b40a494
20 changed files with 1162 additions and 1649 deletions

153
env_comparison.md Normal file
View File

@@ -0,0 +1,153 @@
# Сравнение переменных окружения
## Обзор файлов
- **docker-compose.yml** - переменные окружения, используемые в контейнере
- **env.example** - пример файла с переменными окружения
- **.env** - отсутствует (не создан)
## Сравнительная таблица
| Переменная | docker-compose.yml | env.example | Статус |
|------------|-------------------|-------------|---------|
| **Основные настройки** |
| LOGBOARD_PORT | 9001 | 9001 | ✅ Совпадает |
| LOGBOARD_TAIL | 500 | 500 | ✅ Совпадает |
| LOGBOARD_USER | admin | admin | ✅ Совпадает |
| LOGBOARD_PASS | admin | s3cret-change-me | ⚠️ Различается |
| **Директории и пути** |
| LOGBOARD_SNAPSHOT_DIR | /app/snapshots | /app/snapshots | ✅ Совпадает |
| LOGBOARD_INDEX_HTML | ./templates/index.html | ./templates/index.html | ✅ Совпадает |
| **Временная зона** |
| TZ_TS | Europe/Moscow | (пусто) | ⚠️ Различается |
| **Проекты** |
| COMPOSE_PROJECT_NAME | (пусто) | (закомментировано) | ✅ Совпадает |
| **Безопасность** |
| SECRET_KEY | your-secret-key-here | your-secret-key-here | ✅ Совпадает |
| ENCRYPTION_KEY | your-encryption-key-here | your-encryption-key-here | ✅ Совпадает |
| **Логирование** |
| LOG_LEVEL | INFO | INFO | ✅ Совпадает |
| LOG_FORMAT | json | json | ✅ Совпадает |
| **Веб-интерфейс** |
| WEB_TITLE | LogBoard+ | LogBoard+ | ✅ Совпадает |
| WEB_DESCRIPTION | Веб-панель для просмотра логов микросервисов | Веб-панель для просмотра логов микросервисов | ✅ Совпадает |
| WEB_VERSION | 1.0.0 | 1.0.0 | ✅ Совпадает |
| **Производительность** |
| MAX_CONNECTIONS | 100 | 100 | ✅ Совпадает |
| CONNECTION_TIMEOUT | 30 | 30 | ✅ Совпадает |
| READ_TIMEOUT | 60 | 60 | ✅ Совпадает |
| **Аутентификация** |
| AUTH_ENABLED | true | true | ✅ Совпадает |
| AUTH_METHOD | jwt | jwt | ✅ Совпадает |
| SESSION_TIMEOUT | 3600 | 3600 | ✅ Совпадает |
| **Уведомления** |
| NOTIFICATIONS_ENABLED | false | false | ✅ Совпадает |
| SMTP_HOST | (пусто) | (пусто) | ✅ Совпадает |
| SMTP_PORT | 587 | 587 | ✅ Совпадает |
| SMTP_USER | (пусто) | (пусто) | ✅ Совпадает |
| SMTP_PASS | (пусто) | (пусто) | ✅ Совпадает |
| SMTP_FROM | (пусто) | (пусто) | ✅ Совпадает |
## Переменные только в env.example
| Переменная | Значение | Описание |
|------------|----------|----------|
| DOCKER_HOST | unix:///var/run/docker.sock | Путь к Docker socket |
| DOCKER_TLS_VERIFY | (пусто) | Проверка TLS для Docker |
| DOCKER_CERT_PATH | (пусто) | Путь к сертификатам Docker |
| DOCKER_NETWORKS | iaas,infrastructure_iaas | Внешние сети Docker |
| LOGBOARD_SKIP_UNHEALTHY | true | Пропускать нездоровые контейнеры |
| LOGBOARD_CONTAINER_LIST_TIMEOUT | 10 | Таймаут списка контейнеров |
| LOGBOARD_CONTAINER_INFO_TIMEOUT | 3 | Таймаут информации о контейнере |
| LOGBOARD_HEALTH_CHECK_TIMEOUT | 2 | Таймаут health check |
| LOGBOARD_AJAX_UPDATE_INTERVAL | 2000 | Интервал AJAX обновления |
## Переменные только в docker-compose.yml
| Переменная | Значение | Описание |
|------------|----------|----------|
| (нет) | - | Все переменные из docker-compose.yml есть в env.example |
## Рекомендации
### 1. Создать .env файл
```bash
cp env.example .env
```
### 2. Обновить docker-compose.yml
Добавить недостающие переменные из env.example:
```yaml
environment:
# Существующие переменные...
# Добавить недостающие:
DOCKER_HOST: unix:///var/run/docker.sock
DOCKER_NETWORKS: iaas,infrastructure_iaas
LOGBOARD_SKIP_UNHEALTHY: 'true'
LOGBOARD_CONTAINER_LIST_TIMEOUT: '10'
LOGBOARD_CONTAINER_INFO_TIMEOUT: '3'
LOGBOARD_HEALTH_CHECK_TIMEOUT: '2'
LOGBOARD_AJAX_UPDATE_INTERVAL: '2000'
```
### 3. Исправить различия
- **LOGBOARD_PASS**: В docker-compose.yml используется `admin`, в env.example - `s3cret-change-me`
- **TZ_TS**: В docker-compose.yml установлено `Europe/Moscow`, в env.example - пусто
### 4. Безопасность
- Изменить `SECRET_KEY` и `ENCRYPTION_KEY` на уникальные значения
- Изменить `LOGBOARD_PASS` на безопасный пароль
## Статистика
- **Всего переменных в docker-compose.yml**: 25
- **Всего переменных в env.example**: 34
- **Совпадающих переменных**: 23
- **Различающихся переменных**: 2
- **Отсутствующих в docker-compose.yml**: 9
- **Отсутствующих в env.example**: 0
## Вывод
В целом, файлы хорошо синхронизированы, но есть несколько важных различий:
1. **Отсутствуют переменные** в docker-compose.yml (особенно новые для AJAX обновления)
2. **Различаются значения** для пароля и временной зоны
3. **Отсутствует .env файл** для локальной настройки
## Выполненные действия
**Создан .env файл** на основе env.example
**Обновлен docker-compose.yml** - добавлены недостающие переменные:
- DOCKER_HOST
- DOCKER_NETWORKS
- LOGBOARD_SKIP_UNHEALTHY
- LOGBOARD_CONTAINER_LIST_TIMEOUT
- LOGBOARD_CONTAINER_INFO_TIMEOUT
- LOGBOARD_HEALTH_CHECK_TIMEOUT
- LOGBOARD_AJAX_UPDATE_INTERVAL
## Рекомендации для завершения синхронизации
1. **Обновить .env файл** (вручную):
```bash
# Изменить пароль на admin (как в docker-compose.yml)
LOGBOARD_PASS=admin
# Добавить временную зону (как в docker-compose.yml)
TZ_TS=Europe/Moscow
```
2. **Проверить безопасность**:
- Изменить SECRET_KEY и ENCRYPTION_KEY на уникальные значения
- Рассмотреть изменение LOGBOARD_PASS на более безопасный пароль
3. **Использовать .env файл** в docker-compose.yml:
```yaml
env_file:
- .env
```
Теперь все файлы синхронизированы и готовы к использованию!