Diun is a CLI application written in Go to receive notifications when a Docker image is updated on a Docker registry.

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! 🙏

License

MIT. See LICENSE for more details.

Owner
CrazyMax
Software Engineer, DevOps, Open Source, Go, Containers
CrazyMax
Comments
  • Notification for unupdated image

    Notification for unupdated image

    Behaviour

    Getting notification for updated image of docker.io/library/mongo:3 but when I go to update the container no new image to pull is available.

    Steps to reproduce this issue

    1. Have Diun
    2. Have docker.io/library/mongo:3 container
    3. ???

    Expected behaviour

    No notification for un-updated container

    Actual behaviour

    Getting notification for image that is not updated.

    Configuration

    • Diun version : 4.13.0
    • Platform (windows/linux) : linux
    • System info (type uname -a) : Linux vm-docker 5.4.0-66-generic #74-Ubuntu SMP Wed Jan 27 22:54:38 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

    relevant docker-compose:

    version: '2'
    
    services:
      # MongoDB: https://hub.docker.com/_/mongo/
      mongodb:
        image: mongo:3
        container_name: graylog_db
        volumes:
          - ./mongo_data:/data/db
        restart: unless-stopped
    
      # Elasticsearch: https://www.elastic.co/guide/en/elasticsearch/reference/6.x/docker.html
      elasticsearch:
        image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.8.10
        container_name: graylog_es
        volumes:
          - ./es_data:/usr/share/elasticsearch/data
        environment:
          - http.host=0.0.0.0
          - transport.host=localhost
          - network.host=0.0.0.0
          - "ES_JAVA_OPTS=-Xms2048m -Xmx2048m"
        ulimits:
          memlock:
            soft: -1
            hard: -1
        mem_limit: 2048m
        restart: unless-stopped
    
      # Graylog: https://hub.docker.com/r/graylog/graylog/
      graylog:
        image: graylog/graylog:4.0
        container_name: graylog
        volumes:
          - ./graylog_data:/usr/share/graylog/data
        environment:
          - GRAYLOG_PASSWORD_SECRET=somethingsomethingredacted
          # Password hash from: echo -n "Enter Password: " && head -1 </dev/stdin | tr -d '\n' | sha256sum | cut -d" " -f1
          - GRAYLOG_ROOT_PASSWORD_SHA2=somethingsomethingredacted
          - GRAYLOG_HTTP_EXTERNAL_URI=http://192.168.1.249:9000/
        links:
          - mongodb:mongo
          - elasticsearch
        depends_on:
          - mongodb
          - elasticsearch
        ports:
          # Graylog web interface and REST API
          - 9000:9000
          # windows syslog TCP
          - 5044:5044
          # Syslog UDP
          - 5140:5140/udp
          # GELF TCP
          - 12201:12201
          # GELF UDP
          - 12201:12201/udp
        restart: unless-stopped
    
    

    Logs

    diun    | Wed, 10 Mar 2021 15:30:52 UTC INF Starting Diun version=4.13.0
    diun    | Wed, 10 Mar 2021 15:30:52 UTC INF Configuration loaded from 8 environment variable(s)
    diun    | Wed, 10 Mar 2021 15:30:52 UTC INF Cron triggered
    diun    | Wed, 10 Mar 2021 15:30:54 UTC INF Found 15 image(s) to analyze provider=docker
    diun    | Wed, 10 Mar 2021 15:30:57 UTC INF Jobs completed added=0 failed=0 skipped=0 unchanged=15 updated=0
    diun    | Wed, 10 Mar 2021 15:30:57 UTC INF Cron initialized with schedule 0 12 * * *
    diun    | Wed, 10 Mar 2021 15:30:57 UTC INF Next run in 20 hours (2021-03-11 12:00:00 +0000 GMT)
    diun    | Thu, 11 Mar 2021 12:00:00 UTC INF Cron triggered
    diun    | Thu, 11 Mar 2021 12:00:00 UTC INF Found 15 image(s) to analyze provider=docker
    diun    | Thu, 11 Mar 2021 12:00:04 UTC INF New image found image=docker.io/linuxserver/sonarr:latest provider=docker
    diun    | Thu, 11 Mar 2021 12:00:04 UTC INF Image update found image=docker.io/linuxserver/jackett:latest provider=docker
    diun    | Thu, 11 Mar 2021 12:00:04 UTC INF Image update found image=docker.io/library/mongo:3 provider=docker
    diun    | Thu, 11 Mar 2021 12:00:04 UTC INF Jobs completed added=1 failed=0 skipped=0 unchanged=12 updated=2
    diun    | Thu, 11 Mar 2021 12:00:04 UTC INF Next run in 23 hours (2021-03-12 12:00:00 +0000 GMT)
    

    I know they're not debug logs, but this happens like once a month only and I always forget about enabling the debug logs. Let me know if you need those and I'll enable them and wait another month or so.

  • upgrade to 4.17 - diun does not start when installed as a portainer stack

    upgrade to 4.17 - diun does not start when installed as a portainer stack

    Behaviour

    Steps to reproduce this issue

    1. Install diun with docker-compose or upgrade from previous version to 4.17

    Expected behaviour

    diun should run

    Actual behaviour

    diun throws error about missing "serve" command and does not run

    Configuration

    • Diun version : 4.17
    • Platform (windows/linux) : linux
    • System info (type uname -a) : Linux (redacted) 5.4.114-1-pve #1 SMP PVE 5.4.114-1 (Sun, 09 May 2021 17:13:05 +0200) x86_64 GNU/Linux

    Paste your configuration files here

    version: "2.1"
    
    services:
      diun:
        image: ghcr.io/crazy-max/diun:latest
        container_name: diun
        volumes:
          - /tempdata/appcache/diun/data:/data
          - /var/run/docker.sock:/var/run/docker.sock:ro
        environment:
          - PUID=1001  # docker
          - PGID=100   # users
          - TZ=Europe/Copenhagen
          - LOG_LEVEL=info
          - DIUN_WATCH_SCHEDULE=20 4 * * *
          - DIUN_WATCH_FIRSTCHECKNOTIF=true
          - DIUN_PROVIDERS_DOCKER=true
          - DIUN_PROVIDERS_DOCKER_WATCHBYDEFAULT=true
          - DIUN_NOTIF_MAIL_HOST=(redacted)
          - DIUN_NOTIF_MAIL_PORT=25
          - DIUN_NOTIF_MAIL_SSL=false
          - DIUN_NOTIF_MAIL_FROM=(redacted)
          - DIUN_NOTIF_MAIL_TO=(redacted)
        labels:
          - diun.enable=true
        restart: unless-stopped
    

    Logs

    diun: error: expected one of "serve",  "image",  "notif"
    Usage: diun <command>
    
    Docker image update notifier. More info: https://github.com/crazy-max/diun
    
    Flags:
      -h, --help       Show context-sensitive help.
          --version
    
    :
      serve            Starts Diun server.
      image list       List images in database.
      image remove     Remove an image manifest from database.
      notif test       Test notification settings.
      image inspect    Display information of an image in database.
      
    Run "diun <command> --help" for more information on a command.
    
  • Error choosing image instance: no image found in manifest

    Error choosing image instance: no image found in manifest

    Behaviour

    After updating to 2.6.0 diun started to show this error in the logs. Running on a 2 node swarm on Raspberry ( 1 master, 1 slave)

    Configuration

    • Diun version : 2.6.0
    • Platform (windows/linux) : linux arm
    • System info (type uname -a) : Linux raspi02 4.19.97-v7l+ #1294 SMP Thu Jan 30 13:21:14 GMT 2020 armv7l GNU/Linux
    watch:
      workers: 20
      schedule: "*/30 * * * *"
    
    providers:
      swarm:
       myswarm:
         watch_by_default: true
    
    notif:
      slack:
        enable: true
        webhook: webhook
    

    Logs

    Logs
    Thu, 26 Mar 2020 08:54:48 -03 INF app/cmd/main.go:46 > Starting Diun 2.6.0
    Thu, 26 Mar 2020 08:54:48 -03 DBG app/internal/config/config.go:198 > {
      "Flags": {
        "Cfgfile": "/diun.yml",
        "Timezone": "America/Argentina/Buenos_Aires",
        "LogLevel": "debug",
        "LogJSON": false,
        "LogCaller": true
      },
      "App": {
        "ID": "diun",
        "Name": "Diun",
        "Desc": "Docker image update notifier",
        "URL": "https://github.com/crazy-max/diun",
        "Author": "CrazyMax",
        "Version": "2.6.0"
      },
      "Db": {
        "Path": "/data/diun.db"
      },
      "Watch": {
        "Workers": 20,
        "Schedule": "*/30 * * * *",
        "FirstCheckNotif": false
      },
      "Notif": {
        "Gotify": {
          "Enable": false,
          "Endpoint": "",
          "Token": "",
          "Priority": 0,
          "Timeout": 10
        },
        "Mail": {
          "Enable": false,
          "Host": "localhost",
          "Port": 25,
          "SSL": false,
          "InsecureSkipVerify": false,
          "Username": "",
          "UsernameFile": "",
          "Password": "",
          "PasswordFile": "",
          "From": "",
          "To": ""
        },
        "RocketChat": {
          "Enable": false,
          "Endpoint": "",
          "Channel": "",
          "UserID": "",
          "Token": "",
          "Timeout": 10
        },
        "Slack": {
          "Enable": true,
          "WebhookURL": ""
        },
        "Telegram": {
          "Enable": false,
          "BotToken": "",
          "ChatIDs": null
        },
        "Webhook": {
          "Enable": false,
          "Endpoint": "",
          "Method": "GET",
          "Headers": null,
          "Timeout": 10
        }
      },
      "RegOpts": null,
      "Providers": {
        "Swarm": {
          "myswarm": {
            "TLSVerify": true,
            "WatchByDefault": true
          }
        }
      }
    }
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/db/client.go:42 > 436 entries found in database
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/notif/client.go:50 > 1 notifier(s) created
    Thu, 26 Mar 2020 08:54:49 -03 INF app/internal/app/diun.go:101 > Cron triggered
    Thu, 26 Mar 2020 08:54:49 -03 INF app/internal/provider/swarm/swarm.go:30 > Found 1 swarm provider(s) to analyze...
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/provider/swarm/service.go:40 > Skip locally built image for service ldap_openldap_exporter provider=swarm-myswarm
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Loading registries configuration "/etc/containers/registries.conf"
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Trying to access "docker.io/portainer/agent:latest"
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Returning credentials from DockerAuthConfig
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Using registries.d directory /etc/containers/registries.d for sigstore configuration
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image]  No signature storage configuration found for docker.io/portainer/agent:latest
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Looking for TLS certificates and private keys in /etc/docker/certs.d/docker.io
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://registry-1.docker.io/v2/
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Trying to access "docker.io/jessestuart/caddy:latest"
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Returning credentials from DockerAuthConfig
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Using registries.d directory /etc/containers/registries.d for sigstore configuration
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Trying to access "docker.io/portainer/portainer:latest"
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Returning credentials from DockerAuthConfig
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Using registries.d directory /etc/containers/registries.d for sigstore configuration
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image]  No signature storage configuration found for docker.io/portainer/portainer:latest
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Trying to access "docker.io/grafana/grafana:6.7.1"
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Returning credentials from DockerAuthConfig
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Using registries.d directory /etc/containers/registries.d for sigstore configuration
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Looking for TLS certificates and private keys in /etc/docker/certs.d/docker.io
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://registry-1.docker.io/v2/
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image]  No signature storage configuration found for docker.io/grafana/grafana:6.7.1
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Looking for TLS certificates and private keys in /etc/docker/certs.d/docker.io
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://registry-1.docker.io/v2/
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Trying to access "docker.io/pestotoast/cadvisor-arm:latest"
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Returning credentials from DockerAuthConfig
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Using registries.d directory /etc/containers/registries.d for sigstore configuration
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image]  No signature storage configuration found for docker.io/pestotoast/cadvisor-arm:latest
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Looking for TLS certificates and private keys in /etc/docker/certs.d/docker.io
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://registry-1.docker.io/v2/
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Trying to access "docker.io/prom/alertmanager:latest"
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Returning credentials from DockerAuthConfig
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Using registries.d directory /etc/containers/registries.d for sigstore configuration
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image]  No signature storage configuration found for docker.io/prom/alertmanager:latest
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Trying to access "docker.io/osixia/phpldapadmin:latest"
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Returning credentials from DockerAuthConfig
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Using registries.d directory /etc/containers/registries.d for sigstore configuration
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image]  No signature storage configuration found for docker.io/osixia/phpldapadmin:latest
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Looking for TLS certificates and private keys in /etc/docker/certs.d/docker.io
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Looking for TLS certificates and private keys in /etc/docker/certs.d/docker.io
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://registry-1.docker.io/v2/
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://registry-1.docker.io/v2/
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image]  No signature storage configuration found for docker.io/jessestuart/caddy:latest
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Looking for TLS certificates and private keys in /etc/docker/certs.d/docker.io
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://registry-1.docker.io/v2/
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Trying to access "docker.io/grafana/grafana:6.7.1"
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Returning credentials from DockerAuthConfig
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Using registries.d directory /etc/containers/registries.d for sigstore configuration
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image]  No signature storage configuration found for docker.io/grafana/grafana:6.7.1
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Looking for TLS certificates and private keys in /etc/docker/certs.d/docker.io
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://registry-1.docker.io/v2/
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Trying to access "docker.io/crazymax/diun:latest"
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Returning credentials from DockerAuthConfig
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Using registries.d directory /etc/containers/registries.d for sigstore configuration
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Trying to access "docker.io/osixia/openldap:latest"
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Returning credentials from DockerAuthConfig
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Using registries.d directory /etc/containers/registries.d for sigstore configuration
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image]  No signature storage configuration found for docker.io/crazymax/diun:latest
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Looking for TLS certificates and private keys in /etc/docker/certs.d/docker.io
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://registry-1.docker.io/v2/
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image]  No signature storage configuration found for docker.io/osixia/openldap:latest
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Looking for TLS certificates and private keys in /etc/docker/certs.d/docker.io
    Thu, 26 Mar 2020 08:54:49 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://registry-1.docker.io/v2/
    Thu, 26 Mar 2020 08:54:51 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Ping https://registry-1.docker.io/v2/ status 401
    Thu, 26 Mar 2020 08:54:51 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://auth.docker.io/token?scope=repository%3Aosixia%2Fphpldapadmin%3Apull&service=registry.docker.io
    Thu, 26 Mar 2020 08:54:51 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Ping https://registry-1.docker.io/v2/ status 401
    Thu, 26 Mar 2020 08:54:51 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://auth.docker.io/token?scope=repository%3Acrazymax%2Fdiun%3Apull&service=registry.docker.io
    Thu, 26 Mar 2020 08:54:51 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Ping https://registry-1.docker.io/v2/ status 401
    Thu, 26 Mar 2020 08:54:51 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Ping https://registry-1.docker.io/v2/ status 401
    Thu, 26 Mar 2020 08:54:51 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://auth.docker.io/token?scope=repository%3Ajessestuart%2Fcaddy%3Apull&service=registry.docker.io
    Thu, 26 Mar 2020 08:54:51 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://auth.docker.io/token?scope=repository%3Agrafana%2Fgrafana%3Apull&service=registry.docker.io
    Thu, 26 Mar 2020 08:54:51 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Ping https://registry-1.docker.io/v2/ status 401
    Thu, 26 Mar 2020 08:54:51 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://auth.docker.io/token?scope=repository%3Aosixia%2Fopenldap%3Apull&service=registry.docker.io
    Thu, 26 Mar 2020 08:54:51 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Ping https://registry-1.docker.io/v2/ status 401
    Thu, 26 Mar 2020 08:54:51 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://auth.docker.io/token?scope=repository%3Aportainer%2Fportainer%3Apull&service=registry.docker.io
    Thu, 26 Mar 2020 08:54:51 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Ping https://registry-1.docker.io/v2/ status 401
    Thu, 26 Mar 2020 08:54:51 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Ping https://registry-1.docker.io/v2/ status 401
    Thu, 26 Mar 2020 08:54:51 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://auth.docker.io/token?scope=repository%3Aportainer%2Fagent%3Apull&service=registry.docker.io
    Thu, 26 Mar 2020 08:54:51 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://auth.docker.io/token?scope=repository%3Aprom%2Falertmanager%3Apull&service=registry.docker.io
    Thu, 26 Mar 2020 08:54:51 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Ping https://registry-1.docker.io/v2/ status 401
    Thu, 26 Mar 2020 08:54:51 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://auth.docker.io/token?scope=repository%3Agrafana%2Fgrafana%3Apull&service=registry.docker.io
    Thu, 26 Mar 2020 08:54:51 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Ping https://registry-1.docker.io/v2/ status 401
    Thu, 26 Mar 2020 08:54:51 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://auth.docker.io/token?scope=repository%3Apestotoast%2Fcadvisor-arm%3Apull&service=registry.docker.io
    Thu, 26 Mar 2020 08:54:52 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://registry-1.docker.io/v2/osixia/phpldapadmin/manifests/latest
    Thu, 26 Mar 2020 08:54:52 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://registry-1.docker.io/v2/jessestuart/caddy/manifests/latest
    Thu, 26 Mar 2020 08:54:52 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://registry-1.docker.io/v2/crazymax/diun/manifests/latest
    Thu, 26 Mar 2020 08:54:52 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://registry-1.docker.io/v2/grafana/grafana/manifests/6.7.1
    Thu, 26 Mar 2020 08:54:52 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://registry-1.docker.io/v2/portainer/portainer/manifests/latest
    Thu, 26 Mar 2020 08:54:52 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://registry-1.docker.io/v2/prom/alertmanager/manifests/latest
    Thu, 26 Mar 2020 08:54:52 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://registry-1.docker.io/v2/portainer/agent/manifests/latest
    Thu, 26 Mar 2020 08:54:52 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://registry-1.docker.io/v2/pestotoast/cadvisor-arm/manifests/latest
    Thu, 26 Mar 2020 08:54:52 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://registry-1.docker.io/v2/grafana/grafana/manifests/6.7.1
    Thu, 26 Mar 2020 08:54:52 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://registry-1.docker.io/v2/osixia/openldap/manifests/latest
    Thu, 26 Mar 2020 08:54:52 -03 ERR app/internal/app/diun.go:108 > Cannot run job error="Error choosing image instance: no image found in manifest list for architecture amd64, variant v7, OS linux" provider=swarm-myswarm
    Thu, 26 Mar 2020 08:54:52 -03 ERR app/internal/app/diun.go:108 > Cannot run job error="Error choosing image instance: no image found in manifest list for architecture amd64, variant v7, OS linux" provider=swarm-myswarm
    Thu, 26 Mar 2020 08:54:52 -03 ERR app/internal/app/diun.go:108 > Cannot run job error="Error choosing image instance: no image found in manifest list for architecture amd64, variant v7, OS linux" provider=swarm-myswarm
    Thu, 26 Mar 2020 08:54:52 -03 ERR app/internal/app/diun.go:108 > Cannot run job error="Error choosing image instance: no image found in manifest list for architecture amd64, variant v7, OS linux" provider=swarm-myswarm
    Thu, 26 Mar 2020 08:54:52 -03 ERR app/internal/app/diun.go:108 > Cannot run job error="Error choosing image instance: no image found in manifest list for architecture amd64, variant v7, OS linux" provider=swarm-myswarm
    Thu, 26 Mar 2020 08:54:52 -03 ERR app/internal/app/diun.go:108 > Cannot run job error="Error choosing image instance: no image found in manifest list for architecture amd64, variant v7, OS linux" provider=swarm-myswarm
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Downloading /v2/pestotoast/cadvisor-arm/blobs/sha256:b5f7921d966f50aae9e4151d270a0aac2b9cf1bc54f6c576395619dfd847f518
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://registry-1.docker.io/v2/pestotoast/cadvisor-arm/blobs/sha256:b5f7921d966f50aae9e4151d270a0aac2b9cf1bc54f6c576395619dfd847f518
    Thu, 26 Mar 2020 08:54:53 -03 ERR app/internal/app/diun.go:108 > Cannot run job error="Error choosing image instance: no image found in manifest list for architecture amd64, variant v7, OS linux" provider=swarm-myswarm
    Thu, 26 Mar 2020 08:54:53 -03 ERR app/internal/app/job.go:108 > Cannot list tags from registry error="Error choosing image instance: no image found in manifest list for architecture amd64, variant v7, OS linux" image=grafana/grafana:6.7.1 provider=swarm-myswarm
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Trying to access "docker.io/prom/node-exporter:latest"
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Returning credentials from DockerAuthConfig
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Trying to access "docker.io/linuxserver/plex:latest"
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Returning credentials from DockerAuthConfig
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Using registries.d directory /etc/containers/registries.d for sigstore configuration
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image]  No signature storage configuration found for docker.io/linuxserver/plex:latest
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Trying to access "docker.io/linuxserver/ombi:latest"
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Returning credentials from DockerAuthConfig
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Trying to access "docker.io/onedr0p/sonarr-exporter:master"
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Returning credentials from DockerAuthConfig
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Using registries.d directory /etc/containers/registries.d for sigstore configuration
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Looking for TLS certificates and private keys in /etc/docker/certs.d/docker.io
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image]  No signature storage configuration found for docker.io/onedr0p/sonarr-exporter:master
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Looking for TLS certificates and private keys in /etc/docker/certs.d/docker.io
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://registry-1.docker.io/v2/
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Trying to access "docker.io/oliver006/redis_exporter:latest-arm"
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Returning credentials from DockerAuthConfig
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Using registries.d directory /etc/containers/registries.d for sigstore configuration
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Using registries.d directory /etc/containers/registries.d for sigstore configuration
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Trying to access "docker.io/library/traefik:v2.2"
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Returning credentials from DockerAuthConfig
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Trying to access "docker.io/linuxserver/radarr:preview"
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Trying to access "docker.io/onedr0p/radarr-exporter:master"
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Trying to access "docker.io/linuxserver/sonarr:preview"
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Using registries.d directory /etc/containers/registries.d for sigstore configuration
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Trying to access "docker.io/prom/prometheus:latest"
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Trying to access "docker.io/authelia/authelia:4"
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Trying to access "docker.io/linuxserver/tautulli:latest"
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Trying to access "docker.io/linuxserver/lidarr:preview"
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Trying to access "docker.io/library/redis:5-alpine"
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Trying to access "docker.io/linuxserver/jackett:latest"
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://registry-1.docker.io/v2/
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Returning credentials from DockerAuthConfig
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Using registries.d directory /etc/containers/registries.d for sigstore configuration
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image]  No signature storage configuration found for docker.io/linuxserver/lidarr:preview
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Looking for TLS certificates and private keys in /etc/docker/certs.d/docker.io
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image]  No signature storage configuration found for docker.io/oliver006/redis_exporter:latest-arm
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image]  No signature storage configuration found for docker.io/prom/node-exporter:latest
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Using registries.d directory /etc/containers/registries.d for sigstore configuration
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Looking for TLS certificates and private keys in /etc/docker/certs.d/docker.io
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://registry-1.docker.io/v2/
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Returning credentials from DockerAuthConfig
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Using registries.d directory /etc/containers/registries.d for sigstore configuration
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Returning credentials from DockerAuthConfig
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Returning credentials from DockerAuthConfig
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image]  No signature storage configuration found for docker.io/linuxserver/ombi:latest
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Returning credentials from DockerAuthConfig
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Returning credentials from DockerAuthConfig
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Returning credentials from DockerAuthConfig
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Returning credentials from DockerAuthConfig
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Returning credentials from DockerAuthConfig
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Using registries.d directory /etc/containers/registries.d for sigstore configuration
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image]  No signature storage configuration found for docker.io/prom/prometheus:latest
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Looking for TLS certificates and private keys in /etc/docker/certs.d/docker.io
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Using registries.d directory /etc/containers/registries.d for sigstore configuration
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image]  No signature storage configuration found for docker.io/linuxserver/tautulli:latest
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://registry-1.docker.io/v2/
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://registry-1.docker.io/v2/
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Using registries.d directory /etc/containers/registries.d for sigstore configuration
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image]  No signature storage configuration found for docker.io/library/redis:5-alpine
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Looking for TLS certificates and private keys in /etc/docker/certs.d/docker.io
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://registry-1.docker.io/v2/
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Using registries.d directory /etc/containers/registries.d for sigstore configuration
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Looking for TLS certificates and private keys in /etc/docker/certs.d/docker.io
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image]  No signature storage configuration found for docker.io/linuxserver/jackett:latest
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Looking for TLS certificates and private keys in /etc/docker/certs.d/docker.io
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://registry-1.docker.io/v2/
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image]  No signature storage configuration found for docker.io/library/traefik:v2.2
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Looking for TLS certificates and private keys in /etc/docker/certs.d/docker.io
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://registry-1.docker.io/v2/
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image]  No signature storage configuration found for docker.io/linuxserver/radarr:preview
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Looking for TLS certificates and private keys in /etc/docker/certs.d/docker.io
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://registry-1.docker.io/v2/
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Using registries.d directory /etc/containers/registries.d for sigstore configuration
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image]  No signature storage configuration found for docker.io/onedr0p/radarr-exporter:master
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Looking for TLS certificates and private keys in /etc/docker/certs.d/docker.io
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://registry-1.docker.io/v2/
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Using registries.d directory /etc/containers/registries.d for sigstore configuration
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image]  No signature storage configuration found for docker.io/linuxserver/sonarr:preview
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Looking for TLS certificates and private keys in /etc/docker/certs.d/docker.io
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://registry-1.docker.io/v2/
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Looking for TLS certificates and private keys in /etc/docker/certs.d/docker.io
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Using registries.d directory /etc/containers/registries.d for sigstore configuration
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://registry-1.docker.io/v2/
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image]  No signature storage configuration found for docker.io/authelia/authelia:4
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Looking for TLS certificates and private keys in /etc/docker/certs.d/docker.io
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://registry-1.docker.io/v2/
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Looking for TLS certificates and private keys in /etc/docker/certs.d/docker.io
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://registry-1.docker.io/v2/
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://registry-1.docker.io/v2/
    Thu, 26 Mar 2020 08:54:53 -03 ERR app/internal/app/diun.go:108 > Cannot run job error="Error choosing image instance: no image found in manifest list for architecture amd64, variant v7, OS linux" provider=swarm-myswarm
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Ping https://registry-1.docker.io/v2/ status 401
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://auth.docker.io/token?scope=repository%3Alinuxserver%2Fplex%3Apull&service=registry.docker.io
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Ping https://registry-1.docker.io/v2/ status 401
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://auth.docker.io/token?scope=repository%3Aonedr0p%2Fradarr-exporter%3Apull&service=registry.docker.io
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Ping https://registry-1.docker.io/v2/ status 401
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://auth.docker.io/token?scope=repository%3Alinuxserver%2Fombi%3Apull&service=registry.docker.io
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Ping https://registry-1.docker.io/v2/ status 401
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://auth.docker.io/token?scope=repository%3Alinuxserver%2Fradarr%3Apull&service=registry.docker.io
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Ping https://registry-1.docker.io/v2/ status 401
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://auth.docker.io/token?scope=repository%3Aauthelia%2Fauthelia%3Apull&service=registry.docker.io
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Ping https://registry-1.docker.io/v2/ status 401
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://auth.docker.io/token?scope=repository%3Alinuxserver%2Flidarr%3Apull&service=registry.docker.io
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Ping https://registry-1.docker.io/v2/ status 401
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://auth.docker.io/token?scope=repository%3Aoliver006%2Fredis_exporter%3Apull&service=registry.docker.io
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Ping https://registry-1.docker.io/v2/ status 401
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Ping https://registry-1.docker.io/v2/ status 401
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://auth.docker.io/token?scope=repository%3Aprom%2Fnode-exporter%3Apull&service=registry.docker.io
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://auth.docker.io/token?scope=repository%3Alinuxserver%2Fsonarr%3Apull&service=registry.docker.io
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Ping https://registry-1.docker.io/v2/ status 401
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://auth.docker.io/token?scope=repository%3Aprom%2Fprometheus%3Apull&service=registry.docker.io
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Ping https://registry-1.docker.io/v2/ status 401
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://auth.docker.io/token?scope=repository%3Alinuxserver%2Ftautulli%3Apull&service=registry.docker.io
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Ping https://registry-1.docker.io/v2/ status 401
    Thu, 26 Mar 2020 08:54:53 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://auth.docker.io/token?scope=repository%3Aonedr0p%2Fsonarr-exporter%3Apull&service=registry.docker.io
    Thu, 26 Mar 2020 08:54:54 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Ping https://registry-1.docker.io/v2/ status 401
    Thu, 26 Mar 2020 08:54:54 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://auth.docker.io/token?scope=repository%3Alinuxserver%2Fjackett%3Apull&service=registry.docker.io
    Thu, 26 Mar 2020 08:54:54 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Ping https://registry-1.docker.io/v2/ status 401
    Thu, 26 Mar 2020 08:54:54 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://auth.docker.io/token?scope=repository%3Alibrary%2Ftraefik%3Apull&service=registry.docker.io
    Thu, 26 Mar 2020 08:54:54 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Ping https://registry-1.docker.io/v2/ status 401
    Thu, 26 Mar 2020 08:54:54 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://auth.docker.io/token?scope=repository%3Alibrary%2Fredis%3Apull&service=registry.docker.io
    Thu, 26 Mar 2020 08:54:54 -03 DBG app/internal/app/job.go:167 > No changes image=docker.io/pestotoast/cadvisor-arm:latest provider=swarm-myswarm
    Thu, 26 Mar 2020 08:54:54 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://registry-1.docker.io/v2/linuxserver/ombi/manifests/latest
    Thu, 26 Mar 2020 08:54:54 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://registry-1.docker.io/v2/onedr0p/radarr-exporter/manifests/master
    Thu, 26 Mar 2020 08:54:54 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://registry-1.docker.io/v2/oliver006/redis_exporter/manifests/latest-arm
    Thu, 26 Mar 2020 08:54:54 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://registry-1.docker.io/v2/linuxserver/plex/manifests/latest
    Thu, 26 Mar 2020 08:54:54 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://registry-1.docker.io/v2/linuxserver/lidarr/manifests/preview
    Thu, 26 Mar 2020 08:54:54 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://registry-1.docker.io/v2/linuxserver/tautulli/manifests/latest
    Thu, 26 Mar 2020 08:54:54 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://registry-1.docker.io/v2/authelia/authelia/manifests/4
    Thu, 26 Mar 2020 08:54:54 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://registry-1.docker.io/v2/linuxserver/radarr/manifests/preview
    Thu, 26 Mar 2020 08:54:54 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://registry-1.docker.io/v2/onedr0p/sonarr-exporter/manifests/master
    Thu, 26 Mar 2020 08:54:54 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://registry-1.docker.io/v2/prom/prometheus/manifests/latest
    Thu, 26 Mar 2020 08:54:54 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://registry-1.docker.io/v2/linuxserver/sonarr/manifests/preview
    Thu, 26 Mar 2020 08:54:54 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://registry-1.docker.io/v2/prom/node-exporter/manifests/latest
    Thu, 26 Mar 2020 08:54:54 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://registry-1.docker.io/v2/linuxserver/jackett/manifests/latest
    Thu, 26 Mar 2020 08:54:54 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://registry-1.docker.io/v2/library/traefik/manifests/v2.2
    Thu, 26 Mar 2020 08:54:54 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://registry-1.docker.io/v2/library/redis/manifests/5-alpine
    Thu, 26 Mar 2020 08:54:55 -03 ERR app/internal/app/diun.go:108 > Cannot run job error="Error choosing image instance: no image found in manifest list for architecture amd64, variant v7, OS linux" provider=swarm-myswarm
    Thu, 26 Mar 2020 08:54:55 -03 ERR app/internal/app/diun.go:108 > Cannot run job error="Error choosing image instance: no image found in manifest list for architecture amd64, variant v7, OS linux" provider=swarm-myswarm
    Thu, 26 Mar 2020 08:54:55 -03 ERR app/internal/app/diun.go:108 > Cannot run job error="Error choosing image instance: no image found in manifest list for architecture amd64, variant v7, OS linux" provider=swarm-myswarm
    Thu, 26 Mar 2020 08:54:55 -03 ERR app/internal/app/diun.go:108 > Cannot run job error="Error choosing image instance: no image found in manifest list for architecture amd64, variant v7, OS linux" provider=swarm-myswarm
    Thu, 26 Mar 2020 08:54:55 -03 ERR app/internal/app/diun.go:108 > Cannot run job error="Error choosing image instance: no image found in manifest list for architecture amd64, variant v7, OS linux" provider=swarm-myswarm
    Thu, 26 Mar 2020 08:54:55 -03 ERR app/internal/app/diun.go:108 > Cannot run job error="Error choosing image instance: no image found in manifest list for architecture amd64, variant v7, OS linux" provider=swarm-myswarm
    Thu, 26 Mar 2020 08:54:55 -03 ERR app/internal/app/diun.go:108 > Cannot run job error="Error choosing image instance: no image found in manifest list for architecture amd64, variant v7, OS linux" provider=swarm-myswarm
    Thu, 26 Mar 2020 08:54:55 -03 ERR app/internal/app/diun.go:108 > Cannot run job error="Error choosing image instance: no image found in manifest list for architecture amd64, variant v7, OS linux" provider=swarm-myswarm
    Thu, 26 Mar 2020 08:54:55 -03 ERR app/internal/app/diun.go:108 > Cannot run job error="Error choosing image instance: no image found in manifest list for architecture amd64, variant v7, OS linux" provider=swarm-myswarm
    Thu, 26 Mar 2020 08:54:55 -03 ERR app/internal/app/diun.go:108 > Cannot run job error="Error choosing image instance: no image found in manifest list for architecture amd64, variant v7, OS linux" provider=swarm-myswarm
    Thu, 26 Mar 2020 08:54:55 -03 ERR app/internal/app/diun.go:108 > Cannot run job error="Error choosing image instance: no image found in manifest list for architecture amd64, variant v7, OS linux" provider=swarm-myswarm
    Thu, 26 Mar 2020 08:54:55 -03 DBG app/internal/logging/logger.go:68 > [containers/image] Downloading /v2/oliver006/redis_exporter/blobs/sha256:5f5bacaac2a051554b45cfb83695e886cdce1374f12a9e1c5e9353b413fdfa73
    Thu, 26 Mar 2020 08:54:55 -03 DBG app/internal/logging/logger.go:68 > [containers/image] GET https://registry-1.docker.io/v2/oliver006/redis_exporter/blobs/sha256:5f5bacaac2a051554b45cfb83695e886cdce1374f12a9e1c5e9353b413fdfa73
    Thu, 26 Mar 2020 08:54:55 -03 ERR app/internal/app/diun.go:108 > Cannot run job error="Error choosing image instance: no image found in manifest list for architecture amd64, variant v7, OS linux" provider=swarm-myswarm
    Thu, 26 Mar 2020 08:54:55 -03 ERR app/internal/app/diun.go:108 > Cannot run job error="Error choosing image instance: no image found in manifest list for architecture amd64, variant v7, OS linux" provider=swarm-myswarm
    Thu, 26 Mar 2020 08:54:55 -03 ERR app/internal/app/diun.go:108 > Cannot run job error="Error choosing image instance: no image found in manifest list for architecture amd64, variant v7, OS linux" provider=swarm-myswarm
    Thu, 26 Mar 2020 08:54:56 -03 DBG app/internal/app/job.go:167 > No changes image=docker.io/oliver006/redis_exporter:latest-arm provider=swarm-myswarm
    Thu, 26 Mar 2020 08:54:56 -03 INF app/internal/app/diun.go:77 > Cron initialized with schedule */30 * * * *
    Thu, 26 Mar 2020 08:54:56 -03 INF app/internal/app/diun.go:81 > Next run in 5 minutes (2020-03-26 09:00:00 -0300 -03)
    
  • Link to dockerhub or the respective hub in notification mail

    Link to dockerhub or the respective hub in notification mail

    Hi,

    would it be possible to add a link to the tag page of docker hub (maybe other repos too).

    I don't know if the url can always be deferred from the info like "docker.io/library/mariadb:latest" -> https://hub.docker.com/_/mariadb?tab=tags

    Thanks!

    Peter

  • Provide custom URL for inclusion in notifications

    Provide custom URL for inclusion in notifications

    I would like to be able to include an image specific custom URL that can be sent as part of a notification.

    The use case is that at the moment when I get a notification, it points me to the container registry, however this typically does not include a change log / release notes of what has changed. If I could also provide a link to the vendors public change log / release notes then it will help me to determine if I should update the container at the current time, and any breaking changes to look out for.

    For example when I monitor the diun image, I would like the notification to also include a link to https://github.com/crazy-max/diun/releases.

  • ERR Cannot inspect image from service

    ERR Cannot inspect image from service

    Behaviour

    Using a swarm with 2 nodes, one master and one slave both running on a raspberry. When te cron task is executed there is an error in the logs.

    Steps to reproduce this issue

    1. Install diun
    2. Run it with default config

    Expected behaviour

    It should inspect the registry and notificate if there is a new version

    Actual behaviour

    I see an error saying the service cannot be inspected

    Configuration

    • Diun version : 2.5.0
    • Platform (windows/linux) : linux arm
    • System info (type uname -a) : Linux raspi02 4.19.97-v7l+ #1294 SMP Thu Jan 30 13:21:14 GMT 2020 armv7l GNU/Linux
    
       diun:
        image: crazymax/diun
        environment:
          - "TZ=America/Argentina/Buenos_Aires"
          - "LOG_LEVEL=debug"
          - "LOG_JSON=false"
          - "LOG_CALLER=true"
        volumes:
          - "/mnt/myvol1/diun/data:/data"
          - "/mnt/myvol1/diun/config/diun.yml:/diun.yml:ro"
          - "/var/run/docker.sock:/var/run/docker.sock"
        deploy:
          placement:
            constraints:
              - node.role == manager
    
    # paste your YAML configuration file here and remove sensitive data
    watch:
      workers: 20
      schedule: "*/30 * * * *"
    
    providers:
      swarm:
       myswarm:
         watch_by_default: true
    
    notif:
      slack:
        enable: true
        webhook: webhoolk
    

    Logs

    # paste logs here (set log-level to debug and enable log-caller)
    ^[[90mWed, 25 Mar 2020 09:28:58 -03^[[0m ^[[33mDBG^[[0m ^[[1mapp/internal/db/client.go:42^[[0m^[[36m >^[[0m 435 entries found in database
    ^[[90mWed, 25 Mar 2020 09:28:58 -03^[[0m ^[[33mDBG^[[0m ^[[1mapp/internal/notif/client.go:50^[[0m^[[36m >^[[0m 1 notifier(s) created
    ^[[90mWed, 25 Mar 2020 09:28:58 -03^[[0m ^[[32mINF^[[0m ^[[1mapp/internal/app/diun.go:101^[[0m^[[36m >^[[0m Cron triggered
    ^[[90mWed, 25 Mar 2020 09:28:58 -03^[[0m ^[[32mINF^[[0m ^[[1mapp/internal/provider/swarm/swarm.go:30^[[0m^[[36m >^[[0m Found 1 swarm provider(s) to analyze...
    ^[[90mWed, 25 Mar 2020 09:28:58 -03^[[0m ^[[33mDBG^[[0m ^[[1mapp/internal/provider/swarm/service.go:43^[[0m^[[36m >^[[0m Skip locally built image for service ojkg5dtq3vgbsvwmfqccsvs4z ^[[36mprovider=^[[0mswarm-myswarm
    ^[[90mWed, 25 Mar 2020 09:28:58 -03^[[0m ^[[1m^[[31mERR^[[0m^[[0m ^[[1mapp/internal/provider/swarm/service.go:40^[[0m^[[36m >^[[0m Cannot inspect image from service go8rtrp70eoq19fi334fq1j3w ^[[31merror=^[[0m^[[31m"Error: No such image: authelia/authelia:4@sha256:ac141ef823a4a220d90d4e920fc6725141d1a1793a1aa33d82d2c555afd70a31"^[[0m ^[[36mprovider=^[[0mswarm-myswarm
    ^[[90mWed, 25 Mar 2020 09:28:58 -03^[[0m ^[[1m^[[31mERR^[[0m^[[0m ^[[1mapp/internal/provider/swarm/service.go:40^[[0m^[[36m >^[[0m Cannot inspect image from service lw4bkkllwqfp1r3f1e3vnzje4 ^[[31merror=^[[0m^[[31m"Error: No such image: oliver006/redis_exporter:latest-arm@sha256:aeafc14acc840675efecb1404d644ca936b10f6c5e1884bb1ea8359fbb75d3c6"^[[0m ^[[36mprovider=^[[0mswarm-myswarm
    ^[[90mWed, 25 Mar 2020 09:28:58 -03^[[0m ^[[33mDBG^[[0m ^[[1mapp/internal/logging/logger.go:68^[[0m^[[36m >^[[0m [containers/image] reference rewritten from 'docker.io/portainer/agent:latest' to 'doc
    
  • Tag sorting option

    Tag sorting option

    Hi there,

    Do you know if Github Container Registry sends out tags sorted in chronological order? Or is it like Docker Hub which sends lexically sorted tags, as discussed here : https://github.com/crazy-max/diun/issues/43

    I tried reading the API documentation, but I'm not sure I understand what is written 😄

    Cheers

  • Docker.io - Requested access to the resource is denied

    Docker.io - Requested access to the resource is denied

    Behaviour

    Access denied to docker.io. HTTP 401 Error when trying to check for image updates (getting image digest).

    Steps to reproduce this issue

    1. Use docker-compose.yml pasted below
    2. Run command: docker-compose run --rm diun --log-level="debug" --log-caller --log-nocolor

    Expected behaviour

    Diun successfully checks for any updates in my running containers labeled diun.enable=true and notifies me via email of any update

    Actual behaviour

    Multiple error messages like this returned:

    WRN Cannot get remote manifest error="Cannot get image digest from HEAD request: Error reading digest d45cf22646bd0077faf2a603bafda13d438a8b45aa69a11d39456e5bd73131e8 in docker.io/library/sha256: errors:\ndenied: requested access to the resource is denied\nerror parsing HTTP 401 response body: unexpected end of JSON input: \"\"\n" image=docker.io/library/sha256:d45cf22646bd0077faf2a603bafda13d438a8b45aa69a11d39456e5bd73131e8 provider=docker

    Also running echo $? after that returns 0 instead of non-zero.

    Configuration

    • Diun version : 4.14.0
    • Platform (windows/linux) : Linux/Synology Diskstation Manager 6.2.4-25556
    • System info (type uname -a) : Linux MyNAS 3.10.105 #25556 SMP Thu Mar 18 12:57:19 CST 2021 x86_64 GNU/Linux synology_braswell_916+

    Paste your configuration files here

    version: "3.5"
    
    networks:
      diun:
        name: diun
    
    services:
      diun:
        image: crazymax/diun:latest
        container_name: diun
    
        labels:
          com.centurylinklabs.watchtower.enable: true
          diun.enable: true
          
        networks:
          - diun
        
        volumes:
          - "${HOST_DOCKER_DIR}/${COMPOSE_PROJECT_NAME}/data:/data"
          - "/var/run/docker.sock:/var/run/docker.sock"
          
        environment:
           TZ="Europe/Rome"
           DIUN_NOTIF_MAIL_HOST=mailhost.mydomain.com
           DIUN_NOTIF_MAIL_PORT=587
           DIUN_NOTIF_MAIL_LOCALNAME=diun.mydomain.com
           DIUN_NOTIF_MAIL_USERNAME=mailuser
           DIUN_NOTIF_MAIL_PASSWORD=mailpwd
           [email protected]
           [email protected]
           DIUN_PROVIDERS_DOCKER=true
    
        restart: unless-stopped
    

    Logs

    Fri, 23 Apr 2021 22:45:22 UTC INF src/cmd/main.go:59 > Starting Diun version=4.14.0
    Fri, 23 Apr 2021 22:45:22 UTC DBG src/internal/config/config.go:41 > No configuration file found
    Fri, 23 Apr 2021 22:45:22 UTC INF src/internal/config/config.go:54 > Configuration loaded from 9 environment variable(s)
    Fri, 23 Apr 2021 22:45:23 UTC DBG src/cmd/main.go:76 > {
      "db": {
        "path": "/data/diun.db"
      },
      "watch": {
        "workers": 10,
        "firstCheckNotif": false,
        "compareDigest": true
      },
      "notif": {
        "mail": {
          "host": "mailhost.mydomain.com",
          "port": 587,
          "ssl": false,
          "insecureSkipVerify": false,
          "localName": "diun.mydomain.com",
          "username": "mailuser",
          "password": "mailpwd",
          "from": "[email protected]",
          "to": "[email protected]"
        }
      },
      "providers": {
        "docker": {
          "tlsVerify": true,
          "watchByDefault": false,
          "watchStopped": false
        }
      }
    }
    Fri, 23 Apr 2021 22:45:23 UTC DBG src/internal/notif/client.go:85 > 1 notifier(s) created
    Fri, 23 Apr 2021 22:45:23 UTC DBG src/internal/db/client.go:52 > 6 entries found in manifest bucket
    Fri, 23 Apr 2021 22:45:23 UTC DBG src/internal/db/client.go:73 > Current database version: 2
    Fri, 23 Apr 2021 22:45:23 UTC INF src/internal/app/diun.go:126 > Cron triggered
    Fri, 23 Apr 2021 22:45:23 UTC DBG src/internal/provider/common.go:14 > Validating bash
    Fri, 23 Apr 2021 22:45:23 UTC DBG src/internal/provider/docker/container.go:58 > Watch disabled for container bf64afe363f9d751370b451ed36ae0b11845914200ede765ce2913071368365f provider=docker
    Fri, 23 Apr 2021 22:45:23 UTC DBG src/internal/provider/common.go:14 > Validating containrrr/watchtower
    Fri, 23 Apr 2021 22:45:23 UTC DBG src/internal/provider/common.go:14 > Validating crazymax/diun:latest
    Fri, 23 Apr 2021 22:45:23 UTC DBG src/internal/provider/common.go:14 > Validating sha256:5bb9814f6a74816c662ff5da72110417d6d3b003d2ce42aa516a40ec8714e8e4
    Fri, 23 Apr 2021 22:45:23 UTC DBG src/internal/provider/common.go:14 > Validating sha256:b5e70be6d562db75c19e964f8f3c81c5fdc58ccd04b497e6838a0dc6514afc79
    Fri, 23 Apr 2021 22:45:23 UTC DBG src/internal/provider/common.go:14 > Validating sha256:d45cf22646bd0077faf2a603bafda13d438a8b45aa69a11d39456e5bd73131e8
    Fri, 23 Apr 2021 22:45:23 UTC DBG src/internal/provider/docker/container.go:45 > Skip locally built image from container e03303b83682a42f9747cbe5d4c1dd50534ecf6b0218d90a3e958027ed338f77 provider=docker
    Fri, 23 Apr 2021 22:45:23 UTC DBG src/internal/provider/docker/container.go:45 > Skip locally built image from container de4f05e44ed2e29758e9ef6ad9f1aa7092f8cf751ec4e5015b812bc0193ed4c7 provider=docker
    Fri, 23 Apr 2021 22:45:23 UTC INF src/internal/provider/docker/docker.go:39 > Found 5 image(s) to analyze provider=docker
    Fri, 23 Apr 2021 22:45:23 UTC DBG src/internal/logging/logger.go:65 > [containers/image] Returning credentials from DockerAuthConfig
    Fri, 23 Apr 2021 22:45:23 UTC DBG src/internal/logging/logger.go:65 > [containers/image] Using registries.d directory /etc/containers/registries.d for sigstore configuration
    Fri, 23 Apr 2021 22:45:23 UTC DBG src/internal/logging/logger.go:65 > [containers/image]  No signature storage configuration found for docker.io/library/sha256:d45cf22646bd0077faf2a603bafda13d438a8b45aa69a11d39456e5bd73131e8, using built-in default file:///var/lib/containers/sigstore
    Fri, 23 Apr 2021 22:45:23 UTC DBG src/internal/logging/logger.go:65 > [containers/image] Looking for TLS certificates and private keys in /etc/docker/certs.d/docker.io
    Fri, 23 Apr 2021 22:45:23 UTC DBG src/internal/logging/logger.go:65 > [containers/image] Loading registries configuration "/etc/containers/registries.conf"
    Fri, 23 Apr 2021 22:45:23 UTC DBG src/internal/logging/logger.go:65 > [containers/image] GET https://registry-1.docker.io/v2/
    Fri, 23 Apr 2021 22:45:23 UTC DBG src/internal/logging/logger.go:65 > [containers/image] Returning credentials from DockerAuthConfig
    Fri, 23 Apr 2021 22:45:23 UTC DBG src/internal/logging/logger.go:65 > [containers/image] Using registries.d directory /etc/containers/registries.d for sigstore configuration
    Fri, 23 Apr 2021 22:45:23 UTC DBG src/internal/logging/logger.go:65 > [containers/image]  No signature storage configuration found for docker.io/library/sha256:b5e70be6d562db75c19e964f8f3c81c5fdc58ccd04b497e6838a0dc6514afc79, using built-in default file:///var/lib/containers/sigstore
    Fri, 23 Apr 2021 22:45:23 UTC DBG src/internal/logging/logger.go:65 > [containers/image] Returning credentials from DockerAuthConfig
    Fri, 23 Apr 2021 22:45:23 UTC DBG src/internal/logging/logger.go:65 > [containers/image] Looking for TLS certificates and private keys in /etc/docker/certs.d/docker.io
    Fri, 23 Apr 2021 22:45:23 UTC DBG src/internal/logging/logger.go:65 > [containers/image] GET https://registry-1.docker.io/v2/
    Fri, 23 Apr 2021 22:45:23 UTC DBG src/internal/logging/logger.go:65 > [containers/image] Using registries.d directory /etc/containers/registries.d for sigstore configuration
    Fri, 23 Apr 2021 22:45:23 UTC DBG src/internal/logging/logger.go:65 > [containers/image]  No signature storage configuration found for docker.io/containrrr/watchtower:latest, using built-in default file:///var/lib/containers/sigstore
    Fri, 23 Apr 2021 22:45:23 UTC DBG src/internal/logging/logger.go:65 > [containers/image] Looking for TLS certificates and private keys in /etc/docker/certs.d/docker.io
    Fri, 23 Apr 2021 22:45:23 UTC DBG src/internal/logging/logger.go:65 > [containers/image] GET https://registry-1.docker.io/v2/
    Fri, 23 Apr 2021 22:45:23 UTC DBG src/internal/logging/logger.go:65 > [containers/image] Returning credentials from DockerAuthConfig
    Fri, 23 Apr 2021 22:45:23 UTC DBG src/internal/logging/logger.go:65 > [containers/image] Using registries.d directory /etc/containers/registries.d for sigstore configuration
    Fri, 23 Apr 2021 22:45:23 UTC DBG src/internal/logging/logger.go:65 > [containers/image]  No signature storage configuration found for docker.io/crazymax/diun:latest, using built-in default file:///var/lib/containers/sigstore
    Fri, 23 Apr 2021 22:45:23 UTC DBG src/internal/logging/logger.go:65 > [containers/image] Looking for TLS certificates and private keys in /etc/docker/certs.d/docker.io
    Fri, 23 Apr 2021 22:45:23 UTC DBG src/internal/logging/logger.go:65 > [containers/image] GET https://registry-1.docker.io/v2/
    Fri, 23 Apr 2021 22:45:23 UTC DBG src/internal/logging/logger.go:65 > [containers/image] Returning credentials from DockerAuthConfig
    Fri, 23 Apr 2021 22:45:23 UTC DBG src/internal/logging/logger.go:65 > [containers/image] Using registries.d directory /etc/containers/registries.d for sigstore configuration
    Fri, 23 Apr 2021 22:45:23 UTC DBG src/internal/logging/logger.go:65 > [containers/image]  No signature storage configuration found for docker.io/library/sha256:5bb9814f6a74816c662ff5da72110417d6d3b003d2ce42aa516a40ec8714e8e4, using built-in default file:///var/lib/containers/sigstore
    Fri, 23 Apr 2021 22:45:23 UTC DBG src/internal/logging/logger.go:65 > [containers/image] Looking for TLS certificates and private keys in /etc/docker/certs.d/docker.io
    Fri, 23 Apr 2021 22:45:23 UTC DBG src/internal/logging/logger.go:65 > [containers/image] GET https://registry-1.docker.io/v2/
    Fri, 23 Apr 2021 22:45:24 UTC DBG src/internal/logging/logger.go:65 > [containers/image] Ping https://registry-1.docker.io/v2/ status 401
    Fri, 23 Apr 2021 22:45:24 UTC DBG src/internal/logging/logger.go:65 > [containers/image] Ping https://registry-1.docker.io/v2/ status 401
    Fri, 23 Apr 2021 22:45:24 UTC DBG src/internal/logging/logger.go:65 > [containers/image] GET https://auth.docker.io/token?scope=repository%3Alibrary%2Fsha256%3Apull&service=registry.docker.io
    Fri, 23 Apr 2021 22:45:24 UTC DBG src/internal/logging/logger.go:65 > [containers/image] GET https://auth.docker.io/token?scope=repository%3Alibrary%2Fsha256%3Apull&service=registry.docker.io
    Fri, 23 Apr 2021 22:45:24 UTC DBG src/internal/logging/logger.go:65 > [containers/image] Ping https://registry-1.docker.io/v2/ status 401
    Fri, 23 Apr 2021 22:45:24 UTC DBG src/internal/logging/logger.go:65 > [containers/image] Ping https://registry-1.docker.io/v2/ status 401
    Fri, 23 Apr 2021 22:45:24 UTC DBG src/internal/logging/logger.go:65 > [containers/image] GET https://auth.docker.io/token?scope=repository%3Acontainrrr%2Fwatchtower%3Apull&service=registry.docker.io
    Fri, 23 Apr 2021 22:45:24 UTC DBG src/internal/logging/logger.go:65 > [containers/image] GET https://auth.docker.io/token?scope=repository%3Acrazymax%2Fdiun%3Apull&service=registry.docker.io
    Fri, 23 Apr 2021 22:45:24 UTC DBG src/internal/logging/logger.go:65 > [containers/image] Ping https://registry-1.docker.io/v2/ status 401
    Fri, 23 Apr 2021 22:45:24 UTC DBG src/internal/logging/logger.go:65 > [containers/image] GET https://auth.docker.io/token?scope=repository%3Alibrary%2Fsha256%3Apull&service=registry.docker.io
    Fri, 23 Apr 2021 22:45:24 UTC DBG src/internal/logging/logger.go:65 > [containers/image] HEAD https://registry-1.docker.io/v2/library/sha256/manifests/b5e70be6d562db75c19e964f8f3c81c5fdc58ccd04b497e6838a0dc6514afc79
    Fri, 23 Apr 2021 22:45:24 UTC DBG src/internal/logging/logger.go:65 > [containers/image] HEAD https://registry-1.docker.io/v2/containrrr/watchtower/manifests/latest
    Fri, 23 Apr 2021 22:45:24 UTC DBG src/internal/logging/logger.go:65 > [containers/image] HEAD https://registry-1.docker.io/v2/library/sha256/manifests/5bb9814f6a74816c662ff5da72110417d6d3b003d2ce42aa516a40ec8714e8e4
    Fri, 23 Apr 2021 22:45:24 UTC DBG src/internal/logging/logger.go:65 > [containers/image] HEAD https://registry-1.docker.io/v2/crazymax/diun/manifests/latest
    Fri, 23 Apr 2021 22:45:24 UTC DBG src/internal/logging/logger.go:65 > [containers/image] HEAD https://registry-1.docker.io/v2/library/sha256/manifests/d45cf22646bd0077faf2a603bafda13d438a8b45aa69a11d39456e5bd73131e8
    Fri, 23 Apr 2021 22:45:25 UTC WRN src/internal/app/job.go:181 > Cannot get remote manifest error="Cannot get image digest from HEAD request: Error reading digest 5bb9814f6a74816c662ff5da72110417d6d3b003d2ce42aa516a40ec8714e8e4 in docker.io/library/sha256: errors:\ndenied: requested access to the resource is denied\nerror parsing HTTP 401 response body: unexpected end of JSON input: \"\"\n" image=docker.io/library/sha256:5bb9814f6a74816c662ff5da72110417d6d3b003d2ce42aa516a40ec8714e8e4 provider=docker
    Fri, 23 Apr 2021 22:45:25 UTC WRN src/internal/app/job.go:181 > Cannot get remote manifest error="Cannot get image digest from HEAD request: Error reading digest b5e70be6d562db75c19e964f8f3c81c5fdc58ccd04b497e6838a0dc6514afc79 in docker.io/library/sha256: errors:\ndenied: requested access to the resource is denied\nerror parsing HTTP 401 response body: unexpected end of JSON input: \"\"\n" image=docker.io/library/sha256:b5e70be6d562db75c19e964f8f3c81c5fdc58ccd04b497e6838a0dc6514afc79 provider=docker
    Fri, 23 Apr 2021 22:45:25 UTC WRN src/internal/app/job.go:181 > Cannot get remote manifest error="Cannot get image digest from HEAD request: Error reading digest d45cf22646bd0077faf2a603bafda13d438a8b45aa69a11d39456e5bd73131e8 in docker.io/library/sha256: errors:\ndenied: requested access to the resource is denied\nerror parsing HTTP 401 response body: unexpected end of JSON input: \"\"\n" image=docker.io/library/sha256:d45cf22646bd0077faf2a603bafda13d438a8b45aa69a11d39456e5bd73131e8 provider=docker
    Fri, 23 Apr 2021 22:45:25 UTC DBG src/internal/app/job.go:193 > No changes image=docker.io/crazymax/diun:latest provider=docker
    Fri, 23 Apr 2021 22:45:26 UTC DBG src/internal/app/job.go:193 > No changes image=docker.io/containrrr/watchtower:latest provider=docker
    Fri, 23 Apr 2021 22:45:26 UTC INF src/internal/app/diun.go:166 > Jobs completed added=0 failed=3 skipped=0 unchanged=2 updated=0
    
    
  • Pushover notification failed error=

    Pushover notification failed error="invalid character '<'

    Behaviour

    Pushover notification failed for some images that are found. Example:

    Pushover notification failed error="invalid character '<' looking for beginning of value" image=ghcr.io/linuxserver/sabnzbd:latest

    • Diun version : 4.12.0
    • Platform (windows/linux) : linux
  • [Request] Discord Notifier - Customize Ping

    [Request] Discord Notifier - Customize Ping

    Right now, the discord notifier seems to ping @here, which is less than ideal because it either pings everyone in a channel, or you can suppress that so that it pings no one. There are ways to mitigate this issue such as creating a specific channel where only one user would get the @here ping, but that seems less than ideal.

    Suggestion: Allow the input of a specific user's discord ID to override who gets pinged. Also give an option to not ping at all in case the user wants to throw the notifications into a notification channel.

    EDIT: I also think it is worth noting that there does not seem to be anyway to disable a webhook from using things like @here or @everyone, so even throwing them into their own channel does not seem to work.

  • unable to spin diun:latest on raspberry pi zero W

    unable to spin diun:latest on raspberry pi zero W

    I run diun without problems on several raspberry's 3 and 4, recently I came into possession of raspberry pi zero W but diun won't run there. Container gets created, seemingly starts but actually doesn't. The only thing in container log is:

    Attaching to diun
    diun exited with code 132
    

    docker-compose.yml:

    version: "3.5"
    
    services:
      diun:
        image: crazymax/diun:latest
        container_name: diun
        hostname: bedroom_diun
        volumes:
          - "./data:/data"
          - "/var/run/docker.sock:/var/run/docker.sock"
        environment:
          - "TZ=Europe/London"
          - "LOG_LEVEL=info"
          - "LOG_JSON=false"
          - "DIUN_WATCH_WORKERS=5"
          - "DIUN_WATCH_SCHEDULE=0 12 * * *"
          - "DIUN_PROVIDERS_DOCKER=true"
          - "DIUN_PROVIDERS_DOCKER_WATCHSTOPPED=true"
          - "DIUN_PROVIDERS_DOCKER_WATCHBYDEFAULT=true"
          - "DIUN_NOTIF_TELEGRAM_TOKEN=<redacted>"
          - "DIUN_NOTIF_TELEGRAM_CHATIDS=<redacted>"
    

    Docker version 20.10.0, build 7287ab3 docker-compose version 1.27.4, build unknown (same on all raspberrys)

    uname -a on the rpi0 W Linux bedroom 5.4.79+ #1373 Mon Nov 23 13:18:15 GMT 2020 armv6l GNU/Linux

  • Support semver sorting method for tags with a prefix

    Support semver sorting method for tags with a prefix

    Behaviour

    (Previously mentioned in https://github.com/crazy-max/diun/pull/680#issuecomment-1318597960)

    Some Docker images use tag names with a prefix in front of the version number for different variants of the image, e.g. gitlab-runner.

    The current semver sorting method for sort_tags doesn't support this pattern.

    Steps to reproduce this issue

    Add the following config to a file provider:

    - name: gitlab/gitlab-runner
      watch_repo: true
      max_tags: 5
      sort_tags: semver
      include_tags:
        - ^alpine-v\d+\.\d+\.\d+$
    

    Expected behaviour

    Tags should be sorted by the version number, and a notification should be generated for the 5 newest versions, e.g.:

    alpine-v15.7.1 alpine-v15.7.0 alpine-v15.6.1 alpine-v15.6.0 alpine-v15.5.1
    

    Actual behaviour

    Notifications are generated for 5 random old tags:

    alpine-v1.0.0 alpine-v1.1.4 alpine-v1.1.3 alpine-v1.1.1 alpine-v1.1.0
    

    Workaround

    The semver sort currently supports plain version numbers, and versions with a v prefix as a special case. Suffixes separated by a - are also supported as these will be parsed as the "prerelease" part of a semver.

    Most Docker images will have one of these patterns available as an alternative that you can watch instead. This only has the disadvantage that the tags you are watching are not exactly the same as the tags that you are using for your containers, which might or might not be a problem.

    Configuration

    • Diun version : 4.24.0
    • Platform : Linux
    • System info : Linux my-server 5.4.0-107-generic #121-Ubuntu SMP Thu Mar 24 16:04:27 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux

    DIUN_PROVIDERS_FILE_FILENAME=/file-provider-config.yml (see above for contents)

    Suggested improvement

    The semver sorting method should be extended to support the somewhat common tag naming pattern of variant-v1.2.3. Possible solutions are:

    • As mentioned in #680, add some syntax to include_tags to explicitly extract the part of the tag that should be used for sorting. This could potentially also be useful for other sorting methods in some edge cases. To avoid breaking existing configurations, a named capture group could be used instead of just the first capture group.
    • Use a fixed regex on the whole tag to extract the version number. I currently use the regex (\d+)\.(\d+)\.(\d+)(?:-(.*\d))? in a script to extract version numbers from Docker image tags, which works for my case. This is less flexible than the first solution, but you don't need special syntax for your include_tags which might be unintuitive. It also doesn't support semvers with less than 3 parts, but you usually wouldn't want to mix full versions with partial versions anyways.
    • Add a special case just for the variant-v1.2.3 and variant-1.2.3 pattern, just like there is currently a special case for including or excluding the v before the version number. This would not support all use cases, but probably the majority. Least difference to the current behavior, but least flexible.
  • Bump github.com/containerd/containerd from 1.6.14 to 1.6.15

    Bump github.com/containerd/containerd from 1.6.14 to 1.6.15

    Bumps github.com/containerd/containerd from 1.6.14 to 1.6.15.

    Release notes

    Sourced from github.com/containerd/containerd's releases.

    containerd 1.6.15

    Welcome to the v1.6.15 release of containerd!

    The fifteenth patch release for containerd 1.6 fixes an issue with CNI in the CRI plugin

    Notable Updates

    • Fix no CNI info for pod sandbox on restart in CRI plugin (#7848)

    See the changelog for complete list of changes

    Please try out the release binaries and report any issues at https://github.com/containerd/containerd/issues.

    Contributors

    • Derek McGowan
    • Akihiro Suda
    • Danny Canter
    • Kevin Parsons
    • Samuel Karp
    • Wei Fu

    Changes

    • [release/1.6] Prepare release notes for v1.6.15 (#7924)
      • 883899eae Prepare release notes for v1.6.15
    • [release/1.6] CI: Pass GITHUB_TOKEN to containerd/project-checks (#7919)
      • b57367020 CI: Pass GITHUB_TOKEN to containerd/project-checks
    • [release/1.6] integration/images: switch away from Docker Hub to avoid rate limit (#7900)
      • 0f4062c9b integration/images: switch away from Docker Hub to avoid rate limit
    • [release/1.6] CRI: Fix no CNI info for pod sandbox on restart (#7848)
      • f16447e2d CRI: Fix no CNI info for pod sandbox on restart

    Dependency Changes

    This release has no dependency changes

    Previous release can be found at v1.6.14

    Commits
    • 5b842e5 Merge pull request #7924 from dmcgowan/prepare-1.6.15
    • 883899e Prepare release notes for v1.6.15
    • ba6af25 Merge pull request #7919 from dmcgowan/backport-1.6-gh-rate-limit
    • b573670 CI: Pass GITHUB_TOKEN to containerd/project-checks
    • f28bb76 Merge pull request #7900 from dmcgowan/backport-1.6-integration-tests-ghcr
    • 0f4062c integration/images: switch away from Docker Hub to avoid rate limit
    • 686c3f3 Merge pull request #7848 from dcantah/fix-noip-1.6
    • f16447e CRI: Fix no CNI info for pod sandbox on restart
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Bump golang.org/x/sys from 0.3.0 to 0.4.0

    Bump golang.org/x/sys from 0.3.0 to 0.4.0

    Bumps golang.org/x/sys from 0.3.0 to 0.4.0.

    Commits
    • b60007c unix: add Uvmexp and SysctlUvmexp for NetBSD
    • b751db5 unix: gofmt hurd files after CL 459895
    • b360406 unix: support TIOCGETA on GNU/Hurd
    • 3086868 unix: regen on OpenBSD 7.2
    • 2b11e6b unix: remove Mclpool from openbsd types
    • 7c6badc unix: convert openbsd/mips64 to direct libc calls
    • 3b1fc93 unix: avoid allocations for common uses of Readv, Writev, etc.
    • 2204b66 cpu: parse /proc/cpuinfo on linux/arm64 on old kernels when needed
    • 72f772c unix: offs2lohi should shift by bits, not bytes
    • cffae8e unix: add ClockGettime on *bsd and solaris
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
  • Shoutrrr integration

    Shoutrrr integration

    It would be nice if we could integrate a dedicated notification library like shoutrrr as it offers quite a bit more services.

    https://github.com/containrrr/shoutrrr

  • Bump k8s.io/client-go from 0.25.4 to 0.26.0

    Bump k8s.io/client-go from 0.25.4 to 0.26.0

    Bumps k8s.io/client-go from 0.25.4 to 0.26.0.

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
Node is where client will send data to, create block send to miner, create block send to parent and receive tick from validator and do validate

Node Receive Tick from validator Validate POH of tick send result to validator Receive confirm block from validator Send Checked block to validator Ho

Dec 31, 2021
Declarative CLI Version manager. Support Lazy Install and Sharable configuration mechanism named Registry. Switch versions seamlessly

aqua Declarative CLI Version manager. Support Lazy Install and Sharable configuration mechanism named Registry. Switch versions seamlessly. Index Slid

Dec 29, 2022
A CLI application that allows you to run a complete ToDo app from your terminal application

todo-cli This is a CLI application that allows you to run a complete ToDo app from your terminal application. As a user you can: Create a list of todo

Oct 11, 2021
A tool for exploring each layer in a docker image
A tool for exploring each layer in a docker image

dive A tool for exploring a docker image, layer contents, and discovering ways to shrink the size of your Docker/OCI image. To analyze a Docker image

Jan 9, 2023
Gobby-cli - CLI application to debug gobby applications

go(bby) Interactive debugging tool for gobby applications Usage Coming soon™ Ins

Feb 8, 2022
CLI application written on Go.

Introduction Hello! This is my pet project. I am learning to use Cobra lib for Golang (https://github.com/spf13/cobra). This project is an CLI app whi

Oct 1, 2021
A terminal image renderer written in Go.

TermPic An image renderer for the terminal. Written in Go. Usage You need Golang to build the binary. # Build it $ go build -o termpic main.go # Run

Aug 19, 2022
A command line tool that builds and (re)starts your web application everytime you save a Go or template fileA command line tool that builds and (re)starts your web application everytime you save a Go or template file

# Fresh Fresh is a command line tool that builds and (re)starts your web application everytime you save a Go or template file. If the web framework yo

Nov 22, 2021
Restful services on a Go application integrated with mongodb. Articles demo application.

article-app Restful Go services demo integrated with MongoDB by Cahit Ünver article-app is a GO application integrated with MongoDB. Application is a

Jan 17, 2022
contaiNERD CTL - Docker-compatible CLI for containerd, with support for Compose, Rootless, eStargz, OCIcrypt, IPFS, ...

contaiNERD CTL - Docker-compatible CLI for containerd, with support for Compose, Rootless, eStargz, OCIcrypt, IPFS, ...

Jan 4, 2023
BDIX Tester is a small CLI application for testing connectivity BDIX connected servers

BDIX Tester is a small CLI application for testing connectivity BDIX connected servers. It's primary purpose is to check whether a BDIX connected server is accessible from your current ISP or not.

May 17, 2021
Build an interactive CLI application with Go, Cobra and promptui. Video tutorial available on the Div Rhino YouTube channel.

Build an interactive CLI app with Go, Cobra and promptui Text tutorial: https://divrhino.com/articles/build-interactive-cli-app-with-go-cobra-promptui

Dec 8, 2022
An extension for the GitHub Cli application that displays your current contribution graph
An extension for the GitHub Cli application that displays your current contribution graph

gh-graph An extension for the GitHub Cli application that displays your current contribution graph in the terminal (logged out contribution graph) Ins

Sep 29, 2021
Yikes is a cli-application to simplify the process to maintaining a list of tasks to complete.

yikes Yikes is a cli-application to simplify the process to maintaining a list of tasks to complete. It also has commands to help store random notes a

Oct 7, 2021
remindme is a simple application to set reminders from the CLI that integrates with your system's notification system.
remindme is a simple application to set reminders from the CLI that integrates with your system's notification system.

remindme remindme is a simple application to set reminders from the CLI that integrates with your system's notification system. Examples Once the serv

Nov 24, 2022
Telkom CLI application

Telkom App Aplikasi ini merupakan aplikasi CLI (Command Line Tools) menggunakan bahasa pemrograman go yang digunakan untuk mengambil log file linux, d

Nov 30, 2021
An unofficial command line interface (CLI) for ASPEN's Oneliner application

Overview OlxCLI is an unofficial command line interface (CLI) for ASPEN's Oneliner application. The CLI provides commands for running common fault sim

Jan 3, 2022
A CLI application to extract the top customers, and their favourite snacks.

zimpler.candystore An assignment which written as a CLI application in Golang for Zimpler interview process. Getting Started This repository includes

Dec 24, 2021
Go-ticket-booking-app - Simple CLI application which books tickets for a Go conference made to learn the fundamentals of Go programming language.

go-ticket-booking-app Simple CLI application which books ticket for a Go conference made to learn the fundamentals of Go programming language. Gorouti

Jan 2, 2022