Convert Figma logo to code with AI

crazy-max logodiun

Receive notifications when an image is updated on a Docker registry

3,015
114
3,015
81

Top Related Projects

A process for automating Docker container base image updates.

Automatically update running docker containers with newest available image

Monitor and restart unhealthy docker containers.

The lazier way to manage everything docker

30,364

Making Docker and Kubernetes management easy.

Quick Overview

Diun (Docker Image Update Notifier) is a CLI application that automatically monitors Docker registries for image updates. It can send notifications through various services when new image versions are detected, helping users keep their Docker environments up-to-date and secure.

Pros

  • Supports multiple Docker registries, including Docker Hub, Quay, and private registries
  • Offers a wide range of notification options, including email, Slack, Telegram, and more
  • Highly configurable with support for custom schedules and filtering options
  • Can be run as a standalone binary or as a Docker container

Cons

  • Requires careful configuration to avoid excessive notifications or API rate limiting
  • May have a learning curve for users new to Docker and container management
  • Limited to Docker images; doesn't support other container formats or package managers

Getting Started

  1. Install Diun using Docker:
docker run -d --name diun \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /path/to/data:/data \
  -v /path/to/diun.yml:/diun.yml \
  crazymax/diun:latest
  1. Create a diun.yml configuration file:
watch:
  schedule: "0 */6 * * *"
  firstCheckNotif: false

providers:
  docker:
    watchByDefault: true

notif:
  slack:
    webhook: https://hooks.slack.com/services/XXXXXX/XXXXXX/XXXXXX
    channelName: docker-updates
  1. Customize the configuration to suit your needs, including which images to watch and notification preferences.

  2. Start the Diun container, and it will begin monitoring your Docker images for updates according to the specified schedule.

Competitor Comparisons

A process for automating Docker container base image updates.

Pros of Watchtower

  • Simpler setup and configuration, with fewer options to manage
  • Built-in support for automatic container updates without additional configuration
  • Integrates well with Docker Swarm for orchestrated environments

Cons of Watchtower

  • Less granular control over update notifications and schedules
  • Limited support for custom registries and authentication methods
  • Fewer notification options compared to Diun's extensive integrations

Code Comparison

Watchtower configuration (docker-compose.yml):

watchtower:
  image: containrrr/watchtower
  volumes:
    - /var/run/docker.sock:/var/run/docker.sock
  command: --interval 30

Diun configuration (docker-compose.yml):

diun:
  image: crazymax/diun:latest
  volumes:
    - ./data:/data
    - /var/run/docker.sock:/var/run/docker.sock:ro
  environment:
    - TZ=Europe/Paris
    - DIUN_WATCH_SCHEDULE=0 */6 * * *

Both Watchtower and Diun are tools for monitoring and updating Docker containers, but they have different focuses. Watchtower is designed for simplicity and automatic updates, making it easier to set up and use out of the box. Diun, on the other hand, offers more advanced features and granular control over notifications and update schedules, making it suitable for more complex environments or those requiring detailed monitoring without automatic updates.

Automatically update running docker containers with newest available image

Pros of Ouroboros

  • Simpler setup and configuration process
  • Built-in support for Docker Swarm mode
  • Ability to update itself automatically

Cons of Ouroboros

  • Less flexible notification options
  • Limited filtering capabilities for container updates
  • Fewer supported container runtimes (primarily focused on Docker)

Code Comparison

Ouroboros configuration example:

version: "3"
services:
  ouroboros:
    image: pyouroboros/ouroboros
    environment:
      - INTERVAL=300
      - CLEANUP=true
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

Diun configuration example:

watch:
  schedule: "0 */6 * * *"
  providers:
    docker:
      watchByDefault: true
notif:
  telegram:
    token: "xxxxx"
    chatIDs:
      - "123456789"

Both projects aim to automate container updates, but Diun offers more advanced features and flexibility in terms of providers, notifications, and filtering options. Ouroboros is simpler to set up and use, making it a good choice for basic Docker environments. Diun, on the other hand, provides a more comprehensive solution for complex container ecosystems with diverse runtime environments and notification requirements.

Monitor and restart unhealthy docker containers.

Pros of docker-autoheal

  • Simpler setup and configuration
  • Focuses specifically on container health checks and automatic restarts
  • Lightweight and minimal resource usage

Cons of docker-autoheal

  • Limited functionality compared to Diun's comprehensive monitoring features
  • Less active development and community support
  • Lacks advanced notification options and integrations

Code Comparison

docker-autoheal:

docker run -d \
    --name docker-autoheal \
    -v /var/run/docker.sock:/var/run/docker.sock \
    willfarrell/docker-autoheal

Diun:

version: "3.5"
services:
  diun:
    image: crazymax/diun:latest
    volumes:
      - "./data:/data"
      - "/var/run/docker.sock:/var/run/docker.sock"
    environment:
      - "TZ=Europe/Paris"
      - "LOG_LEVEL=info"
      - "LOG_JSON=false"

Summary

docker-autoheal is a lightweight solution focused on container health checks and automatic restarts. It's simpler to set up but has limited functionality compared to Diun. Diun offers more comprehensive monitoring features, active development, and advanced notification options. While docker-autoheal is suitable for basic container health management, Diun provides a more robust solution for monitoring Docker image updates and container health across multiple registries and platforms.

The lazier way to manage everything docker

Pros of lazydocker

  • Interactive terminal UI for managing Docker containers, images, and volumes
  • Provides a more user-friendly and visual approach to Docker management
  • Offers real-time monitoring and logs viewing capabilities

Cons of lazydocker

  • Focused solely on Docker management, lacking image update notifications
  • Requires manual intervention for container updates and management
  • May have a steeper learning curve for users new to terminal-based interfaces

Code comparison

lazydocker:

func (gui *Gui) renderMain() error {
    mainView := gui.getMainView()
    mainView.Clear()
    return gui.renderPanelOptions()
}

diun:

func (d *Diun) Check(ctx context.Context) error {
    for _, provider := range d.providers {
        if err := provider.Check(ctx); err != nil {
            return err
        }
    }
    return nil
}

Summary

lazydocker is an interactive terminal UI for Docker management, offering a visual approach to container, image, and volume management. It provides real-time monitoring and log viewing but lacks automated image update notifications.

diun, on the other hand, focuses on Docker image update notifications, automatically checking for updates and notifying users. It's more specialized in its functionality but doesn't offer the comprehensive Docker management features of lazydocker.

The choice between the two depends on the user's specific needs: lazydocker for interactive Docker management or diun for automated image update notifications.

30,364

Making Docker and Kubernetes management easy.

Pros of Portainer

  • Comprehensive container management with a user-friendly web interface
  • Supports multiple container orchestration platforms (Docker, Kubernetes, etc.)
  • Offers team management and role-based access control

Cons of Portainer

  • More resource-intensive due to its extensive feature set
  • Steeper learning curve for users new to container management
  • May be overkill for simple container monitoring needs

Code Comparison

Diun configuration (YAML):

watch:
  schedule: "0 */6 * * *"
  providers:
    - docker:
        watchByDefault: true

Portainer deployment (Docker Compose):

version: '3'
services:
  portainer:
    image: portainer/portainer-ce:latest
    ports:
      - "9000:9000"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - portainer_data:/data

Summary

Diun is a lightweight Docker image update notifier, while Portainer is a comprehensive container management platform. Diun excels in simplicity and focused functionality, making it ideal for users primarily interested in image update notifications. Portainer offers a broader range of features for container orchestration and management, suitable for more complex environments but potentially overwhelming for simpler use cases.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Documentation GitHub release Total downloads Build Status Docker Stars Docker Pulls
Go Report Codecov Become a sponsor Donate Paypal

About

Diun is a CLI application written in Go and delivered as a single executable (and a Docker image) to receive notifications when a Docker image is updated on a Docker registry.

Documentation

Documentation can be found on https://crazymax.dev/diun/

Contributing

Want to contribute? Awesome! The most basic way to show your support is to star the project, or to raise issues. If you want to open a pull request, please read the contributing guidelines.

You can also support this project by becoming a sponsor on GitHub or by making a Paypal donation to ensure this journey continues indefinitely!

Thanks again for your support, it is much appreciated! :pray:

License

MIT. See LICENSE for more details.