Infrastructure2025

Docker Image Update Notify

A lightweight Go service that watches containers and sends useful update alerts.

  • Go
  • Docker API
  • Cron
  • Telegram
View repository

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 glance

Key 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
Notifications in action

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 detection
  • registry/ — registry API clients
  • version/ — semantic version comparison
  • notify/ — email and Telegram channels
  • scheduler/ — cron-based task manager
  • cmd/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

Next project · 01Shiori
Image viewer