Skip to content

Latest commit

 

History

History
110 lines (89 loc) · 6.44 KB

File metadata and controls

110 lines (89 loc) · 6.44 KB

Docker Manager UI

Легковесная панель управления для Docker хостов. Позволяет управлять контейнерами на локальной и удаленных машинах (через SSH) из единого веб-интерфейса.

🚀 Реализованный Функционал

Управление Хостами

  • Мульти-хост: Добавление неограниченного количества хостов.
  • Типы подключения:
    • Local: Использование локального Docker Socket (/var/run/docker.sock).
    • SSH: Безопасное подключение к удаленным серверам (по паролю или ключу).

Управление Контейнерами

  • Общий список: Просмотр всех контейнеров со всех хостов в одной таблице.
  • Фильтрация: Быстрый фильтр по конкретному хосту.
  • Статусы:
    • Визуальная индикация (Running/Exited).
    • Uptime: Подсчет времени работы (даже если Docker API не отдает готовый статус).
  • Действия:
    • 🔄 Restart: Перезагрузка контейнера.
    • Stop: Остановка запущенного контейнера.
    • ▶️ Start: Запуск остановленного контейнера.
  • Docker Compose:
    • Автоматическое определение контейнеров, запущенных через Compose (локально и удаленно).
    • Кнопка RESTART PROJECT (⬇⬆) для перезапуска всего проекта (docker-compose down && docker-compose up -d).

Просмотр Логов

  • Модальное окно: Просмотр логов без ухода со страницы.
  • Фильтры:
    • Tail: Количество последних строк.
    • Time: Выбор диапазона времени (Since / Until).
    • Search: Поиск по тексту логов (grep).
  • Live Stream (WebSocket): Режим реального времени. Логи транслируются в браузер по мере поступления (как docker logs -f).
    • Отдельное черное окно терминала для стрима.
    • Поддержка как локальных, так и SSH-хостов.
  • Скачивание: Возможность скачать отфильтрованные логи в файл .txt.

Управление Образами

  • Список образов на каждом хосте.
  • Просмотр тегов, ID, размера и даты создания.
  • Удаление ненужных образов.

Безопасность

  • Аутентификация (Login/Password).
  • Сессии на базе Cookies.

🛠 Технический Стек

  • Backend: Python 3.11, FastAPI, SQLAlchemy (SQLite), aiosqlite, asyncssh/paramiko.
  • Frontend: HTML5, Jinja2, TailwindCSS (CDN), HTMX (для интерактивности без SPA).
  • Deployment: Docker.

📦 Установка и Запуск

Приложение распространяется в виде Docker-образа.

Вариант 1: Из исходников

  1. Склонировать репозиторий.
  2. docker-compose up -d --build

Вариант 2: Перенос через .tar (Offline)

Если нет доступа к реестру, можно перенести образ архивом:

  1. На машине разработчика:
    docker build -t docker-manager:latest .
    docker save -o docker-manager.tar docker-manager:latest
  2. На целевом сервере:
    # Копируем файл docker-manager.tar
    docker load -i docker-manager.tar
    docker-compose up -d

Конфигурация (Environment)

В docker-compose.yml:

  • ADMIN_USER: Логин администратора.
  • ADMIN_PASS: Пароль администратора.
  • SECRET_KEY: Секретный ключ для сессий.

🔮 Идеи для развития (Roadmap)

Список улучшений для будущих версий (в порядке приоритета):

1. Функциональность (Management)

  • Интерактивная консоль (Web Terminal)
    • Суть: Реализовать docker exec -it /bin/bash прямо в браузере (xterm.js + WebSocket). Позволит заходить "внутрь" контейнера для отладки.
  • Управление ресурсами (CPU/RAM)
    • Суть: Вывод Live-статистики (docker stats). Проценты потребления CPU и памяти для каждого контейнера.
  • Управление Docker Networks и Volumes
    • Суть: Отдельные страницы для просмотра и очистки (prune) сетей и томов, которые часто занимают место.
  • Редактирование переменных (ENV)
    • Суть: Интерфейс для просмотра и изменения переменных окружения с пересозданием контейнера.

2. Мониторинг и Уведомления

  • Алерты (Telegram/Slack)
    • Суть: Фоновый воркер, проверяющий статусы. Уведомление, если контейнер упал (Exited с ошибкой).
  • Healthcheck Status
    • Суть: Отображение статуса Healthy/Unhealthy в таблице (если настроен в Dockerfile).

3. Удобство (Quality of Life)

  • Pull & Update
    • Суть: Проверка обновлений образа на Registry и кнопка "Обновить контейнер" (аналог Watchtower).
  • Массовые действия
    • Суть: Чекбоксы в таблице для перезагрузки или остановки сразу нескольких контейнеров.