Docker Image Update Notify is a lightweight service that watches running containers and alerts you when a newer image is available. It is designed to drop into Coolify and other containerized environments, with an emphasis on efficiency, modularity, and production readiness.
Purpose and Overview
The goal is straightforward: keep container images up to date without manual checks. It scans running containers, queries registries (DockerHub or private), and notifies you via Email or Telegram when updates are available.
That helps teams react quickly to releases, patches, and security fixes without unnecessary downtime.
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ Scheduler │───▶│ Docker Scanner │───▶│ Registry Client │
└─────────────────┘ └──────────────────┘ └─────────────────┘
│ │
▼ ▼
┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ Notification │◀───│ Controller │◀───│ Version Comp. │
│ System │ └──────────────────┘ └─────────────────┘
└─────────────────┘
Service architecture at a glanceKey Features
- Automatic Detection: Scans all running containers automatically
- Multiple Registries: Supports DockerHub and private registries
- Smart Filtering: Include/exclude patterns for fine-grained control
- Notifications: Email (SMTP) + Telegram bot integration
- Semantic Versioning: Smarter update checks beyond simple tags
- Scheduling: Cron-like intervals for periodic checks
- Resource Efficient: Minimal CPU/memory footprint
- Production Ready: Logging, health checks, and error handling baked in
Inside the System
The service is split into a few focused modules:
Core Modules
- Docker Scanner: Detects running containers and extracts image info
- Registry Client: Communicates with DockerHub and registries
- Version Comparator: Intelligent semantic version comparison
- Notification System: Sends alerts through email and/or Telegram
- Scheduler: Manages periodic checks and execution
Technology Stack
- Go 1.24+ (service implementation)
- Docker & Docker API (container scanning)
- Coolify / Kubernetes / Swarm (deployment ready)
- SMTP + Telegram Bot API (notifications)
- Logrus (structured logging)
- robfig/cron (scheduling)
Architecture at a Glance
scanner/— Docker container detectionregistry/— registry API clientsversion/— semantic version comparisonnotify/— email and Telegram channelsscheduler/— cron-based task managercmd/main.go— service entrypoint
Getting Started
Prerequisites
- Docker Engine
- Go 1.24+ (for local builds)
Install and Run
# Clone
git clone [email protected]:ponytojas/DIUN.git
cd docker-notify
# Run locally
make run-local-once
# Build local version
make build-local
# Run with Docker Compose
cp configs/config.yaml configs/config.local.yaml
docker-compose up -d
For more details on configuration and deployment options visit the repository