feat: добавить поддержку множественных проектов Docker Compose

- Добавлен API эндпоинт /api/projects для получения списка проектов
- Обновлен API /api/services для поддержки фильтрации по множественным проектам
- Добавлен селектор проектов в веб-интерфейс
- Добавлена переменная окружения LOGBOARD_PROJECTS
- Обновлен HTML шаблон с JavaScript функциональностью
- Добавлена функция fetchProjects() для загрузки списка проектов
- Обновлена функция fetchServices() для работы с выбранными проектами

Автор: Сергей Антропов
Сайт: https://devops.org.ru
This commit is contained in:
Сергей Антропов
2025-08-16 12:29:19 +03:00
parent 05a7a45b45
commit 04d1ae9a96
4 changed files with 157 additions and 14 deletions

42
test_ws.py Normal file
View File

@@ -0,0 +1,42 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Простой тест WebSocket соединения
Автор: Сергей Антропов
Сайт: https://devops.org.ru
"""
import asyncio
import websockets
import base64
async def test_websocket():
"""Тестирует WebSocket соединение"""
# Параметры подключения
uri = "ws://localhost:9001/ws/logs/c90f6c8bfbb6?tail=10&token=YWRtaW46YWRtaW4%3D"
print(f"🔍 Тестирование WebSocket соединения...")
print(f"URI: {uri}")
print("-" * 50)
try:
async with websockets.connect(uri) as websocket:
print("✅ WebSocket соединение установлено")
# Ждем сообщения
try:
async for message in websocket:
print(f"📨 Получено сообщение: {message[:200]}...")
break # Получаем только первое сообщение
except websockets.exceptions.ConnectionClosed:
print("❌ WebSocket соединение закрыто")
except Exception as e:
print(f"❌ Ошибка WebSocket: {e}")
return False
return True
if __name__ == "__main__":
asyncio.run(test_websocket())