No AI! bash GPLv3 release Buy me a Coffee LiberaPay Github Sponsor

A script checking updates for docker images without pulling
Then selectively auto-update containers.

Now with a simple Apprise integration!

With features like excluding specific containers, filter by name, auto-prune dangling images and more.

___ ## :bell: Changelog - **v0.3.5**: Added a simple progress bar for the registry checkup. - **v0.3.4**: Added ntfy.sh template and error message on registry fail. - **v0.3.3**: Added Apprise template and the option `-i` inform - to send notifications. - **v0.3.2**: Added a notify function to wrap a notify-script, currently DSM/Ssmtp + template script. - **v0.3.1**: Addded option `-m` , monochrome mode - no printf color codes. - **v0.3.0**: Added option `-d N`, age (days) new images have to be before being pulled and updated. ___ ## :nut_and_bolt: Dependencies - Running docker (duh) and compose, either standalone or plugin. - [regclient/regctl](https://github.com/regclient/regclient) (Licensed under [Apache-2.0 License](http://www.apache.org/licenses/LICENSE-2.0)) - User will be prompted to download `regctl` if not in `PATH` or `PWD`. - regctl requires `amd64/arm64` - see [workaround](#workaround-for-non-amd64--arm64) if other architecture is used. ___ ![](extras/example.gif) ## :mag_right: `dockcheck.sh` ``` $ ./dockcheck.sh -h Syntax: dockcheck.sh [OPTION] [part of name to filter] Example: dockcheck.sh -y -d 10 -e nextcloud,heimdall Options: -a|y Automatic updates, without interaction. -d N Only update to new images that are N+ days old. Lists too recent with +prefix and age. 2xSlower. -e X Exclude containers, separated by comma. -h Print this Help. -i Inform - send a preconfigured notification. -m Monochrome mode, no printf color codes. -n No updates, only checking availability. -p Auto-Prune dangling images after update. -r Allow updating images for docker run, wont update the container. -s Include stopped containers in the check. (Logic: docker ps -a) ``` ### Basic example: ``` $ ./dockcheck.sh . . . Containers on latest version: glances homer Containers with updates available: 1) adguardhome 2) syncthing 3) whoogle-search Choose what containers to update: Enter number(s) separated by comma, [a] for all - [q] to quit: ``` Then it proceedes to run `pull` and `up -d` on every container with updates. After the updates are complete, you'll get prompted if you'd like to prune dangling images. ## :loudspeaker: Notifications Trigger with the `-i` flag. Run it scheduled with `-ni` to only get notified when there's updates available! Use a `notify_X.sh` template file, copy it to `notify.sh`, modify it to your needs! Current templates: - Synology [DSM](https://www.synology.com/en-global/dsm) - Email with [sSMTP](https://wiki.debian.org/sSMTP) - Apprise (with it's [multitude](https://github.com/caronc/apprise#supported-notifications) of notifications) - both native [caronc/apprise](https://github.com/caronc/apprise) and the standalone [linuxserver/docker-apprise-api](https://github.com/linuxserver/docker-apprise-api) - Read the [QuickStart](extras/apprise_quickstart.md) - [ntfy.sh](https://ntfy.sh/) - HTTP-based pub-sub notifications. - [Pushbullet](https://www.pushbullet.com/) - connecting different devices with cross-platform features. Further additions are welcome - suggestions or PR! Initiated and first contributed by [yoyoma2](https://github.com/yoyoma2). ## :roller_coaster: Workaround for non **amd64** / **arm64** `regctl` provides binaries for amd64/arm64, to use on other architecture you could try this workaround. Run regctl in a container wrapped in a shell script. Copied from [regclient/docs/install.md](https://github.com/regclient/regclient/blob/main/docs/install.md): ```sh cat >regctl <