Lightweight, secure Docker container to monitor corporate Domain WHOIS & SSL expiration.
180
Данный релиз является глобальным архитектурным обновлением сервиса, полностью устраняющим проблемы изоляции Docker-контейнеров прошлых версий:
Database is locked: База данных SQLite переведена на многопоточный отказоустойчивый режим WAL. Процессы Flask-бэкенда и чекера больше не блокируют друг друга..PRO и .SITE: Реализован гибридный метод опроса. Логика полностью отвязана от нестабильных веб-шлюзов и переведена на прямой опрос мировых реестров через встроенную утилиту whois по порту 43, что исключает ошибки 404.touch monitor.db) и выдачей прав chmod 777. При первом запуске Python сам создаст подпапку data/ на хосте и развернет структуры таблиц с правильными правами доступа./save_settings. Кнопки сохранения параметров и проверки SMTP-почты теперь работают без сбоев.Современный, быстрый и полностью автономный (Local-Only) сервис мониторинга сроков действия доменов и SSL-сертификатов. Написан на Flask + SQLite (WAL) и упакован в легковесный Docker-контейнер.
Идеально подходит для развертывания в изолированных корпоративных контурах (закрытых локальных сетях) и на публичных серверах. Не требует внешних CDN, тяжелых баз данных и сторонних API-зависимостей.
.RU / .SU / .РФ опрашиваются по защищенному HTTPS-каналу (порт 443) через веб-зеркала с подменой полноценного User-Agent..SITE / .SPACE / .COM / .NET / .PRO) опрашиваются напрямую из первоисточников — мировых реестров через нативную утилиту whois (порт 43).network_mode: host): Контейнер полностью выведен из изоляции NAT/Bridge, что решает проблемы с DNS-петлями внутри локальных сетей (например, .local зон) и гарантирует стабильный исходящий трафик.touch и конфликтов прав chmod 777..PRO: Встроенный парсер умеет корректировать архивный кэш шлюзов, автоматически выставляя актуальные даты продления доменов.Для развертывания сервиса на абсолютно чистом сервере создайте файл docker-compose.yml в любой директории:
version: '3.8'
services:
domain-monitor:
image: sequephonic/domain-monitor:latest
container_name: domain-monitor-app
# Работа напрямую с сетевой картой хоста для обхода блокировок WHOIS
network_mode: host
# Стабильные DNS-серверы для разрешения имен реестров
dns:
- 8.8.8.8
- 1.1.1.1
# Постоянное хранение базы данных на диске хост-машины
volumes:
- ./data:/app/data
restart: always
environment:
- FLASK_APP=app.py
- FLASK_ENV=production
# 🔐 НАСТРОЙКИ АВТОРИЗАЦИИ ДЛЯ ВХОДА НА САЙТ (Измените на свои)
- MONITOR_USER=admin
- MONITOR_PASSWORD=secret-password
- FLASK_SECRET_KEY=super-secure-fixed-key-12345
Запустите контейнер:
docker compose up -d
Панель автоматически станет доступна по адресу: http://IP_ВАШЕГО_СЕРВЕРА:5000
После успешного входа на сайт перейдите во вкладку ⚙️ Настройки в шапке панели. Сервис поддерживает:
Bot Token и Chat ID вашего канала/чата.465 SSL / 587 TLS), логина и пароля приложения.Чтобы сервис автоматически проверял всю инфраструктуру каждую ночь и высылал алерты в Telegram/Email, добавьте задачу в планировщик Cron на хост-машине:
crontab -e0 3 * * * /usr/bin/docker exec -w /app domain-monitor-app python checker.py >> /tmp/docker_cron_checker.log 2>&1
/tmp/docker_cron_checker.log.sudo docker exec domain-monitor-app python -c "import checker; checker.main()"
Разработано для системных администраторов и DevOps-инженеров, ценящих чистоту кода, безопасность данных и мгновенный отклик интерфейса.
Content type
Image
Digest
sha256:200055102…
Size
55 MB
Last updated
2 months ago
docker pull sequephonic/domain-monitor