docs: Полная переработка документации проекта

- Удалена старая документация с эмодзи
- Создана новая техническая документация на русском языке
- Добавлены подробные руководства:
  * README.md - обзор проекта
  * docs/installation.md - установка и настройка
  * docs/configuration.md - конфигурация
  * docs/api.md - API документация
  * docs/management.md - управление проектом
  * docs/security.md - безопасность
  * docs/troubleshooting.md - устранение неполадок
- Обновлены конфигурационные файлы
- Улучшена структура проекта

Автор: Сергей Антропов
Сайт: https://devops.org.ru
This commit is contained in:
2025-08-18 22:03:27 +03:00
parent 749b40a494
commit 86a2c44333
17 changed files with 1156 additions and 1940 deletions

View File

@@ -1,47 +0,0 @@
# Документация LogBoard+
## Обзор
LogBoard+ - это веб-приложение для мониторинга логов Docker контейнеров в реальном времени с поддержкой Single View и Multi View режимов.
## Основные функции
### Просмотр логов
- **Single View**: просмотр логов одного контейнера
- **Multi View**: одновременный просмотр логов нескольких контейнеров
- Фильтрация по уровням логирования (DEBUG, INFO, WARN, ERROR)
- Поиск по регулярным выражениям
- Автопрокрутка и перенос строк
### Горячие клавиши
- `Ctrl+R` / `Ctrl+K` - обновление логов
- `[` `]` - навигация между контейнерами
- `Ctrl+B` - сворачивание/разворачивание панели
### Управление интерфейсом
- Сворачивание sidebar для экономии места
- Переключение тем (светлая/темная)
- Настройка количества отображаемых строк
- Экспорт логов в файл
## Документация
- [Горячие клавиши](hotkeys.md) - подробное описание всех горячих клавиш
- [Новые функции интерфейса](features.md) - описание сворачивания панелей и других функций
- [API документация](../api/README.md) - описание API endpoints
- [Разработка](../dev/README.md) - руководство для разработчиков
## Технологии
- **Backend**: Python, FastAPI, WebSocket
- **Frontend**: HTML5, CSS3, JavaScript (Vanilla)
- **База данных**: PostgreSQL с asyncpg
- **Контейнеризация**: Docker, Docker Compose
## Автор
Сергей Антропов - https://devops.org.ru
## Лицензия
MIT License

View File

@@ -1,172 +0,0 @@
# AJAX Auto-update для LogBoard+
## Описание
AJAX Auto-update - это система автоматического обновления логов через AJAX запросы, которая позволяет получать новые логи без перезагрузки страницы.
## Основные возможности
- **Автоматическое обновление**: Логи обновляются с заданным интервалом
- **Умное управление кнопкой Refresh**: Кнопка refresh автоматически скрывается при включенном AJAX autoupdate и показывается при выключенном
- **Поддержка Multi-view**: Работает как в single-view, так и в multi-view режимах
- **Настраиваемый интервал**: Интервал обновления настраивается через API
- **Эффективное обновление**: Обновляются только новые логи с момента последнего запроса
## Управление кнопками
### Кнопка Refresh
Кнопка refresh в header автоматически управляется в зависимости от состояния AJAX autoupdate:
- **AJAX autoupdate включен** → Кнопка refresh **скрыта**
- **AJAX autoupdate выключен** → Кнопка refresh **показана**
### Кнопка Update
Кнопка update в header показывает состояние AJAX autoupdate и позволяет переключать его:
- **AJAX autoupdate включен** → Кнопка update **зеленая**
- **AJAX autoupdate выключен** → Кнопка update **красная**
- **Клик по кнопке** → Переключает состояние AJAX autoupdate
### Функции управления
```javascript
/**
* Обновить видимость кнопки refresh в header
*/
function updateRefreshButtonVisibility() {
const refreshButtons = document.querySelectorAll('.log-refresh-btn');
refreshButtons.forEach(btn => {
if (ajaxUpdateEnabled) {
// Если ajax autoupdate включен, скрываем кнопку refresh
btn.style.display = 'none';
} else {
// Если ajax autoupdate выключен, показываем кнопку refresh
btn.style.display = 'inline-flex';
}
});
}
```
### Автоматическое обновление видимости
Видимость кнопки refresh автоматически обновляется в следующих случаях:
1. **При инициализации AJAX update**
2. **При изменении состояния чекбокса "Auto-update logs"**
3. **При программном включении/выключении AJAX update**
4. **При переключении состояния через функцию toggleAjaxLogUpdate**
## Настройки
### Интервал обновления
Интервал обновления настраивается через API endpoint `/api/settings`:
```json
{
"ajax_update_interval": 2000
}
```
По умолчанию используется интервал 2000ms (2 секунды).
### Чекбокс управления
В sidebar есть чекбокс "Auto-update logs", который позволяет пользователю:
- Включить автоматическое обновление
- Выключить автоматическое обновление
- Автоматически управляет видимостью кнопки refresh
## API Endpoints
### Получение настроек
```
GET /api/settings
Authorization: Bearer <token>
```
Ответ:
```json
{
"ajax_update_interval": 2000
}
```
### Получение логов с поддержкой AJAX
```
GET /api/logs/{container_id}?tail={lines}&since={timestamp}
Authorization: Bearer <token>
```
Параметры:
- `tail`: количество строк для получения (или "all")
- `since`: временная метка последнего обновления (опционально)
## Переменные состояния
```javascript
let ajaxUpdateEnabled = true; // Состояние AJAX обновления (по умолчанию включен)
let ajaxUpdateIntervalMs = 2000; // Интервал обновления в миллисекундах
let ajaxUpdateInterval = null; // ID интервала
const containerStates = new Map(); // Состояние контейнеров для отслеживания обновлений
```
## Функции управления
### enableAjaxLogUpdate(intervalMs)
Включает AJAX обновление логов с заданным интервалом.
### disableAjaxLogUpdate()
Отключает AJAX обновление логов.
### toggleAjaxLogUpdate()
Переключает состояние AJAX обновления.
### performAjaxLogUpdate()
Выполняет одно обновление логов через AJAX.
### updateContainerLogs(containerId, tailLines, token)
Обновляет логи для конкретного контейнера.
### updateRefreshButtonVisibility()
Обновляет видимость кнопки refresh и состояние кнопки update в зависимости от состояния AJAX autoupdate.
### setAjaxUpdateState(enabled)
Обновляет визуальное состояние кнопки update (зеленая/красная) в зависимости от состояния AJAX autoupdate.
## Интеграция с существующим кодом
AJAX update интегрируется с существующими функциями:
- **switchToSingle**: Останавливает AJAX обновление при смене контейнера
- **switchToMultiView**: Останавливает AJAX обновление при переключении в multi-view
- **refreshLogsAndCounters**: Ручное обновление логов (кнопка refresh)
## Логирование
Все операции AJAX update логируются в консоль браузера:
```javascript
console.log('AJAX обновление логов включено с интервалом 2000ms');
console.log('AJAX обновление логов отключено');
console.log('AJAX Update: Обновляем 2 контейнеров: ["container1", "container2"]');
```
## Обработка ошибок
При ошибках AJAX запросов:
- Обновление не останавливается автоматически
- Ошибки логируются в консоль
- Пользователь может вручную отключить обновление через чекбокс
## Совместимость
- Работает с существующими WebSocket соединениями
- Поддерживает все режимы просмотра (single-view, multi-view)
- Совместимо с фильтрацией и настройками уровней логирования

View File

@@ -1,77 +0,0 @@
# Новые функции интерфейса LogBoard+
## Сворачивание панелей
### Sidebar (боковая панель)
- **Кнопка сворачивания**: <i class="fas fa-chevron-left"></i> на границе sidebar и основного контента
- **Горячая клавиша**: `Ctrl+B` / `Ctrl+И`
- **Свернутое состояние**: ширина 60px
- **Логотип**: показывает <i class="fas fa-terminal"></i> в свернутом состоянии
- **Кнопка помощи**: <i class="fas fa-question-circle"></i> между options и logout
## Управление
### Кнопка сворачивания
- **Кнопка на границе**: сворачивает боковую панель
- **Расположение**: посередине экрана по высоте на границе sidebar и основного контента
- **Состояние сохраняется** в localStorage
### Горячая клавиша
- **Ctrl+B** / **Ctrl+И**: сворачивает/разворачивает sidebar и header
- Удобно для быстрого освобождения места на экране
### Header (заголовок)
- **Сворачивается вместе с sidebar**
- **В свернутом состоянии**: тонкая полоска 40px высотой
- **Содержит**: фильтр логов, кнопки уровней логирования, кнопку обновления
- **Стили**: кнопки выглядят точно так же, как в развернутом состоянии
- **log-header**: полностью скрывается в свернутом режиме
- **log-content**: минимальный padding 2px в свернутом состоянии
- **multi-view-panel**: показывает название контейнера в Single View режиме
## Визуальные элементы
### Логотип в свернутом sidebar
```
<i class="fas fa-terminal"></i>
```
- Отображается только когда sidebar свернут
- Расположен в самом верху sidebar
- Стилизован в цвете акцента
- Занимает минимальное место
### Модальное окно с горячими клавишами
- **Открытие**: кнопка <i class="fas fa-question-circle"></i> в свернутом sidebar
- **Закрытие**: кнопка X, клик вне окна, или повторный клик на кнопку помощи
- **Содержит**: полный список всех горячих клавиш с описанием
- **Анимация**: плавное появление и исчезновение
### Анимации
- Плавные переходы при сворачивании/разворачивании
- Длительность анимации: 0.3 секунды
- CSS transitions для всех элементов
- Кнопка сворачивания остается на месте при наведении
## Сохранение настроек
### localStorage ключи
- `lb_sidebar_collapsed` - состояние sidebar
- `lb_hotkeys_shown` - показ уведомления о горячих клавишах
### Восстановление состояния
- При перезапуске приложения состояния восстанавливаются
- Кнопки показывают правильные иконки
- Tooltip обновляется в соответствии с состоянием
## Примеры использования
### Освобождение места
1. Нажать `Ctrl+B` или кнопку sidebar - сворачивается панель
2. Получаем больше места для просмотра логов
### Быстрое переключение
1. Использовать `Ctrl+B` для быстрого переключения
2. Использовать кнопку на границе для точного управления
## Автор
Сергей Антропов - https://devops.org.ru

View File

@@ -1,66 +0,0 @@
# Горячие клавиши LogBoard+
## Обновление логов
### Ctrl+R
Обновляет логи в текущем режиме просмотра:
- **Single View**: переподключается к WebSocket и получает свежие логи
- **Multi View**: переподключается ко всем выбранным контейнерам
### Ctrl+K
Альтернативная комбинация для обновления логов (аналогично Ctrl+R)
## Навигация
### [ (квадратная скобка)
Переход к предыдущему контейнеру в списке
### ] (квадратная скобка)
Переход к следующему контейнеру в списке
### Ctrl+← (стрелка влево)
Альтернативная комбинация для перехода к предыдущему контейнеру
### Ctrl+→ (стрелка вправо)
Альтернативная комбинация для перехода к следующему контейнеру
## Управление интерфейсом
### Ctrl+B
Сворачивание/разворачивание sidebar панели:
- Сворачивает sidebar до минимальной ширины (60px)
- Скрывает все элементы управления и список контейнеров
- Показывает логотип LogBoard+ в свернутом sidebar
- Состояние сохраняется в localStorage
### Кнопка сворачивания
- **Кнопка на границе** (<i class="fas fa-chevron-left"></i>) - сворачивание sidebar
- Расположена посередине экрана по высоте на границе sidebar и основного контента
- Состояние сохраняется в localStorage
## Особенности
### Проверка фокуса
Горячие клавиши не работают, когда фокус находится в полях ввода:
- Поле фильтра логов
- Поле добавления исключенных контейнеров
- Любые другие input/textarea элементы
### Визуальные подсказки
- Иконка клавиатуры в заголовке с подсказкой о горячих клавишах
- Уведомление о горячих клавишах при первом запуске
- Tooltip на кнопке сворачивания sidebar
### Сохранение настроек
- Состояние sidebar (свернут/развернут) сохраняется в localStorage
- При следующем запуске приложения состояние восстанавливается
## Примеры использования
1. **Быстрое обновление логов**: `Ctrl+R` для получения свежих данных
2. **Навигация по контейнерам**: `[` `]` для переключения между сервисами
3. **Освобождение места на экране**: `Ctrl+B` для сворачивания панели
4. **Работа в Multi View**: `Ctrl+R` обновляет все выбранные контейнеры одновременно
## Автор
Сергей Антропов - https://devops.org.ru