feat: major improvements and fixes

- Fixed Docker permissions issue by running as root user
- Added DEBUG_MODE support with conditional Swagger docs and auto-reload
- Created start.sh script for conditional Uvicorn execution
- Removed verbose debug logs from WebSocket status endpoint
- Added comprehensive screenshots to documentation
- Enhanced help tooltip with full-screen modal design
- Added theme switcher to error page
- Updated documentation with local development and Docker benefits
- Fixed WebSocket status display issues
- Improved hotkey functionality and documentation
- Added detailed project descriptions for local dev and Docker users

Technical improvements:
- Dockerfile: removed appuser switch, simplified permissions
- docker-compose.yml: kept user: 0:0 for Docker socket access
- app.py: removed debug prints, added DEBUG_MODE support
- templates: enhanced UI/UX with better tooltips and themes
- docs: comprehensive updates with new screenshots and descriptions
This commit is contained in:
Сергей Антропов
2025-08-19 13:01:32 +03:00
parent 5c8efe2644
commit e80f665470
26 changed files with 1017 additions and 148 deletions

View File

@@ -14,7 +14,14 @@
## Обзор API
LogBoard+ предоставляет REST API и WebSocket API для работы с логами Docker контейнеров.
LogBoard+ предоставляет REST API и WebSocket API для работы с логами Docker контейнеров. API разработан для интеграции с системами мониторинга и автоматизации, а также для создания собственных клиентов.
### 🎯 **Применение API**
- **Интеграция с CI/CD** - автоматический мониторинг логов в пайплайнах
- **Собственные дашборды** - создание кастомных интерфейсов мониторинга
- **Автоматизация** - скрипты для анализа логов и алертинга
- **Локальная разработка** - интеграция с IDE и инструментами разработки
### Базовый URL
@@ -322,6 +329,33 @@ curl -X GET "http://localhost:9001/api/logs/abc123def456?tail=100&since=2024-01-
}
```
#### GET /api/websocket/status
Получение статуса WebSocket соединений.
**Заголовки:**
```
Authorization: Bearer <token>
```
**Ответ:**
```json
{
"status": "available",
"message": "WebSocket соединения доступны",
"containers_count": 5,
"timestamp": "2024-01-15T10:30:15.123456"
}
```
**Возможные статусы:**
- `available` - WebSocket соединения доступны, есть активные контейнеры
- `no_containers` - Нет доступных контейнеров для подключения
- `error` - Ошибка проверки статуса
**Примечание:** Когда сервер возвращает статус `available`, клиент всегда показывает `ws: on`, независимо от наличия активных клиентских соединений.
### Системные
#### GET /healthz