- Добавлен параметр include_stopped в функцию get_remote_containers
- Исправлен вызов функции в list_containers_with_remote
- Добавлена документация для параметра include_stopped
- Ошибка больше не появляется в логах сервера
Теперь API и WebSocket работают корректно:
✅ API endpoints: 200 OK
✅ WebSocket соединения: устанавливаются
✅ Логи передаются через WebSocket
✅ Нет ошибок в логах сервера
Автор: Сергей Антропов
Сайт: https://devops.org.ru
- Добавлен CORSMiddleware в app.py для решения проблем с CORS
- Создан test_api.py для тестирования API endpoints
- Создан test_websocket.py для тестирования WebSocket соединений
- Создан test_browser.html для тестирования в браузере
- Все тесты показывают, что API и WebSocket работают корректно
Диагностика показала:
✅ API endpoints работают (health, auth, containers, logs)
✅ WebSocket соединения работают и передают логи
✅ Проблема может быть в браузере или localStorage
Для тестирования в браузере:
1. Откройте http://localhost:9001/test_browser.html
2. Выполните тесты по порядку
3. Проверьте консоль браузера на ошибки
Автор: Сергей Антропов
Сайт: https://devops.org.ru
- Добавлено запоминание состояния свернутых секций в localStorage
- Функции loadCollapsedSections(), saveCollapsedSections(), updateCollapsedSection()
- Применение сохраненного состояния при загрузке интерфейса
- Фильтрация остановленных удаленных контейнеров (неактивные более 5 минут)
- Обновлена функция get_remote_containers() для проверки активности
- Исправлен запуск контейнера (убрана зависимость от start.sh)
- Добавлена команда uvicorn в docker-compose.yml
Новые возможности:
✅ Состояние свернутых секций сохраняется между сессиями
✅ Остановленные удаленные контейнеры автоматически скрываются
✅ Контейнеры считаются неактивными после 5 минут без обновления логов
✅ Интерфейс стал более стабильным и удобным
Автор: Сергей Антропов
Сайт: https://devops.org.ru
- Добавлена подробная информация о контейнерах в tooltip
- Различение локальных и удаленных контейнеров с иконками
- Отображение хоста для всех контейнеров
- Время последнего обновления для удаленных контейнеров
- Ссылка 'Открыть сайт' для контейнеров с URL
- Ссылка 'Подключиться по SSH' для удаленных контейнеров
- Подсказка 'Кликните для просмотра логов'
- Добавлены CSS стили для новых элементов tooltip
Новая информация в tooltip:
✅ Тип контейнера (локальный/удаленный) с иконкой
✅ Имя контейнера и сервиса
✅ Хост (localhost или удаленный сервер)
✅ Статус с цветовым индикатором
✅ Порт для работающих контейнеров
✅ Время последнего обновления для удаленных
✅ Ссылки на сайт и SSH подключение
✅ Подсказка для просмотра логов
Автор: Сергей Антропов
Сайт: https://devops.org.ru
- Добавлена фильтрация demo и test контейнеров в list_containers_with_remote()
- Обновлен тестовый скрипт для исключения demo и test контейнеров
- Теперь в интерфейсе отображаются только рабочие контейнеры
- Убраны лишние тестовые контейнеры из статистики
Результат:
✅ Demo контейнеры убраны из интерфейса
✅ Test контейнеры убраны из интерфейса
✅ Остались только рабочие контейнеры
✅ Интерфейс стал чище и понятнее
Автор: Сергей Антропов
Сайт: https://devops.org.ru
- host-section теперь добавляется внутрь remote-content
- Исправлена иерархия DOM для корректного сворачивания
- Теперь структура полностью правильная:
remote-content -> host-section -> host-content -> container-item
Структура DOM теперь корректная:
✅ Локальные контейнеры: local-content -> container-item
✅ Удаленные контейнеры: remote-content -> host-section -> host-content -> container-item
✅ Сворачивание работает на всех уровнях
Автор: Сергей Антропов
Сайт: https://devops.org.ru
- Контейнеры теперь добавляются внутрь соответствующих section-content div'ов
- Локальные контейнеры добавляются в local-content
- Удаленные контейнеры добавляются в host-{hostname}-content
- Исправлена логика сворачивания секций - теперь контейнеры находятся внутри сворачиваемых блоков
- Убраны лишние строки закрытия секций
Теперь сворачивание секций работает корректно:
✅ Контейнеры находятся внутри своих секций
✅ Сворачивание секций работает правильно
✅ Структура DOM соответствует логике сворачивания
Автор: Сергей Антропов
Сайт: https://devops.org.ru
- Исправлено сворачивание секций в sidebar (убраны дублирующиеся обработчики)
- Добавлены tooltip для карточек контейнеров с информацией о сервере
- Исправлена функция switchToSingle для корректного отображения логов
- Исправлен healthcheck в docker-compose.yml (путь /healthz)
- Добавлены подробные tooltip для локальных и удаленных контейнеров
- Улучшена обработка событий для сворачивания секций
Теперь все функции работают корректно:
✅ Сворачивание секций работает
✅ Tooltip отображают информацию о сервере
✅ Логи отображаются при клике на карточки
✅ Healthcheck работает правильно
Автор: Сергей Антропов
Сайт: https://devops.org.ru
- Добавлена функция сворачивания/разворачивания секций локальных и удаленных контейнеров
- Реализовано периодическое обновление списка контейнеров каждые 30 секунд
- Добавлена автоматическая фильтрация остановленных контейнеров
- Обновлены обработчики событий для корректной работы в свернутом sidebar
- Добавлены функции обновления счетчиков контейнеров
- Обновлена документация с описанием новых функций
- Добавлены тестовые скрипты для проверки функциональности
Автор: Сергей Антропов
Сайт: https://devops.org.ru
- Создан LogBoard клиент для отправки логов с удаленных серверов
- Добавлен API эндпоинт /api/logs/remote с аутентификацией
- Реализована структурированная система сохранения логов
- Исправлена совместимость Docker client библиотеки
- Добавлена полная документация и тестирование
- Fix Jinja2Templates directory path to use absolute path /app/templates
- Fix INDEX_HTML path to use absolute path /app/templates/index.html
- Ensure templates are found correctly in Docker container
- Fix static files not loading due to volume mount conflict
- Remove problematic volume mount from docker-compose.yml
- Add __init__.py files to make Python packages
- Fix all import statements to use relative imports
- Update start.sh to use correct module name
- Update config.py with correct default paths and values
- Ensure all environment variables are properly loaded from .env file
- Replace environment section in docker-compose.yml with env_file directive
- Add all missing environment variables to config.py
- Update env.example with proper variable definitions
- Create .env file from env.example
- Ensure all variables are properly loaded from .env file
- Удалена старая документация с эмодзи
- Создана новая техническая документация на русском языке
- Добавлены подробные руководства:
* 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
- Добавлена кнопка 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
Основные изменения:
- Добавлено AJAX обновление логов с чекбоксом 'Auto-update logs'
- Добавлена опция 'All logs' в выпадающий список tail lines
- Исправлено отображение длинных названий контейнеров в multi-view режиме
- Восстановлена загрузка истории логов при включенном AJAX обновлении
Новые функции:
- Чекбокс 'Auto-update logs' в секции Options (включен по умолчанию)
- Настройка интервала обновления через LOGBOARD_AJAX_UPDATE_INTERVAL
- API эндпоинт /api/settings для получения настроек приложения
- Поддержка параметра tail=all для загрузки всех логов
- Автоматический запуск AJAX обновления при включении чекбокса
Исправления UI:
- Кнопки LogLevels не уезжают вправо при длинных названиях контейнеров
- Добавлено обрезание длинных названий с многоточием
- Фиксированная высота заголовков в multi-view режиме
- Защита от сжатия кнопок LogLevels
Тестирование:
- Добавлены тесты для AJAX обновления (test_ajax_update.py)
- Тест multi-view AJAX обновления (test_multi_view_ajax.py)
- Тест опции 'all logs' (test_all_logs.py)
- Тест отображения длинных названий (test_multi_view_layout.py)
- Команды make test-ajax, make test-multi-view-ajax, make test-all-logs, make test-multi-view-layout
Документация:
- Создана подробная документация AJAX обновления (app/docs/ajax-update.md)
- Обновлен CHANGELOG.md с версиями 1.3.0, 1.5.0, 1.6.0
- Обновлен README.md с описанием новых функций
Автор: Сергей Антропов
Сайт: https://devops.org.ru
- Универсальное исправление скролла для всех контейнеров в Multi View режиме
- Более специфичные CSS селекторы для предотвращения влияния на другие элементы
- Исправление проблемы с wrap text в options
- Добавление вызовов applyWrapSettings() в ключевых местах
- Обновление документации с описанием всех исправлений
- Добавление CHANGELOG.md и SCROLL_FIX_SUMMARY.md
- Добавление документации в app/docs/