Легковесная панель управления для 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-образа.
- Склонировать репозиторий.
docker-compose up -d --build
Если нет доступа к реестру, можно перенести образ архивом:
- На машине разработчика:
docker build -t docker-manager:latest . docker save -o docker-manager.tar docker-manager:latest - На целевом сервере:
# Копируем файл docker-manager.tar docker load -i docker-manager.tar docker-compose up -d
В docker-compose.yml:
ADMIN_USER: Логин администратора.ADMIN_PASS: Пароль администратора.SECRET_KEY: Секретный ключ для сессий.
Список улучшений для будущих версий (в порядке приоритета):
- Интерактивная консоль (Web Terminal)
- Суть: Реализовать
docker exec -it /bin/bashпрямо в браузере (xterm.js + WebSocket). Позволит заходить "внутрь" контейнера для отладки.
- Суть: Реализовать
- Управление ресурсами (CPU/RAM)
- Суть: Вывод Live-статистики (
docker stats). Проценты потребления CPU и памяти для каждого контейнера.
- Суть: Вывод Live-статистики (
- Управление Docker Networks и Volumes
- Суть: Отдельные страницы для просмотра и очистки (prune) сетей и томов, которые часто занимают место.
- Редактирование переменных (ENV)
- Суть: Интерфейс для просмотра и изменения переменных окружения с пересозданием контейнера.
- Алерты (Telegram/Slack)
- Суть: Фоновый воркер, проверяющий статусы. Уведомление, если контейнер упал (Exited с ошибкой).
- Healthcheck Status
- Суть: Отображение статуса Healthy/Unhealthy в таблице (если настроен в Dockerfile).
- Pull & Update
- Суть: Проверка обновлений образа на Registry и кнопка "Обновить контейнер" (аналог Watchtower).
- Массовые действия
- Суть: Чекбоксы в таблице для перезагрузки или остановки сразу нескольких контейнеров.