logboard/README.md
Сергей Антропов c6310ec359 feat: добавлен env.example и команда make setup
- Создан файл env.example с полным набором переменных окружения
- Добавлена команда make setup для копирования env.example в .env
- Обновлен docker-compose.yml для использования переменных из .env
- Добавлен .gitignore для исключения .env и временных файлов
- Обновлен README.md с инструкциями по настройке переменных окружения
- Добавлена таблица основных переменных окружения
- Автор: Сергей Антропов (https://devops.org.ru)
2025-08-16 11:19:00 +03:00

180 lines
7.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# LogBoard+
**Автор:** Сергей Антропов
**Сайт:** https://devops.org.ru
LogBoard+ — это веб-панель для просмотра логов микросервисов из `docker-compose` в **реальном времени** с поддержкой:
- Вкладок по сервисам и репликам
- Темная/светлая темы
- Подсветка ANSI-цветов из логов
- Фильтрация по уровням (`debug`, `info`, `warn`, `error`)
- Снимки логов в файл (`snapshot`)
- Объединение всех реплик сервиса в одну вкладку (**aggregate**)
- Fan-in группировка нескольких сервисов в одну панель (**group**)
- Цветовые теги по короткому ID контейнера
- Sticky-фильтры по репликам
- Пауза/возобновление стрима
- Basic Auth для доступа
- Автопереподключение вебсокетов
- Поддержка нескольких клиентов одновременно
---
## Установка и запуск
### Быстрый старт с Makefile (рекомендуется)
```bash
# Распаковать проект
unzip logboard_plus_fanin_groups.zip
cd logboard_plus
# Показать доступные команды
make help
# Настроить переменные окружения
make setup
# Отредактировать .env файл под свои нужды (опционально)
# nano .env
# Собрать и запустить проект
make build
make up
# Открыть в браузере
http://localhost:9001
```
### Команды Makefile
| Команда | Описание |
|---------|----------|
| `make help` | Показать справку по всем командам |
| `make setup` | Настроить переменные окружения (копировать env.example в .env) |
| `make build` | Собрать Docker образ |
| `make up` | Запустить сервисы в фоновом режиме |
| `make down` | Остановить и удалить сервисы |
| `make restart` | Перезапустить сервисы |
| `make logs` | Показать логи сервисов в реальном времени |
| `make logs-tail` | Показать последние 100 строк логов |
| `make status` | Показать статус сервисов |
| `make clean` | Остановить сервисы и удалить образы |
| `make shell` | Подключиться к контейнеру |
| `make dev` | Запуск в режиме разработки (с выводом логов) |
| `make rebuild` | Пересобрать и запустить сервисы |
### Настройка переменных окружения
Проект использует файл `.env` для хранения всех настроек. Для настройки:
1. **Автоматическая настройка:**
```bash
make setup
```
2. **Ручная настройка:**
```bash
cp env.example .env
nano .env # или любой другой редактор
```
#### Основные переменные окружения:
| Переменная | Описание | Значение по умолчанию |
|------------|----------|----------------------|
| `LOGBOARD_PORT` | Порт веб-интерфейса | `9001` |
| `LOGBOARD_USER` | Имя пользователя для Basic Auth | `admin` |
| `LOGBOARD_PASS` | Пароль для Basic Auth | `s3cret-change-me` |
| `LOGBOARD_TAIL` | Количество строк истории | `500` |
| `LOGBOARD_SNAPSHOT_DIR` | Директория для снимков | `/app/snapshots` |
| `COMPOSE_PROJECT_NAME` | Фильтр по проекту Docker Compose | (пусто) |
| `SECRET_KEY` | Секретный ключ для шифрования | `your-secret-key-here` |
| `ENCRYPTION_KEY` | Ключ шифрования | `your-encryption-key-here` |
**⚠️ Важно:** Измените значения `LOGBOARD_PASS`, `SECRET_KEY` и `ENCRYPTION_KEY` в продакшене!
### Классический способ
```bash
# Распаковать проект
unzip logboard_plus_fanin_groups.zip
cd logboard_plus
# Настроить переменные окружения
cp env.example .env
# Отредактировать .env файл
# Запуск через docker-compose
docker compose up --build -d
# Открыть в браузере
http://localhost:9001
```
По умолчанию логин/пароль для Basic Auth задаются в `docker-compose.yml`:
```yaml
environment:
- LB_USER=admin
- LB_PASS=admin
```
---
## Интерфейс
### Верхняя панель
- **Тема** — переключатель тёмной/светлой темы
- **aggregate** — собирает все реплики сервиса в одну вкладку
- **group** — собирает несколько сервисов в один поток логов
- **snapshot** — сохраняет текущие логи этой панели в файл
- **tail** — количество строк истории при подключении
### Панель вкладок
- Вкладки по сервисам и репликам
- Клик по вкладке — открыть поток логов
- Цветной чип `[id]` — уникальная реплика, цвет закреплён
- Чекбоксы под вкладками — фильтр по репликам
### Логи
- Цвета в логах из ANSI-кодов
- Фильтрация по уровню (`debug`, `info`, `warn`, `error`)
- Пауза/возобновление стрима
- При выделении текста появляется кнопка "Копировать"
---
## Fan-in группировка
Позволяет объединить несколько разных сервисов в один поток:
1. Нажмите кнопку **group** вверху
2. Введите имена сервисов через запятую (например: `api, worker, scheduler`)
3. Откроется панель с логами всех указанных сервисов, с префиксом `[id service]`
4. Можно фильтровать по конкретным репликам внизу
---
## Советы
- Если контейнер перезапустился — поток автоматически переподключается
- Можно открыть несколько вкладок браузера с разными сервисами — всё работает параллельно
- Для больших проектов удобно держать одну панель с `aggregate`, вторую — с `group` по критическим сервисам
---
## Лицензия
MIT
## Скриншоты
Тёмная тема:
![Dark](screenshots/dark.png)
Светлая тема:
![Light](screenshots/light.png)