Simple UI driven way to manage updates & notifications for containers. As this is meant to be simple, there is no db container required or setup. This will save things it needs to files in the /config
mount instead.
- Notify when a container is added
- Notify when a container is removed
- Notify when a container changes state (running -> stopped)
- Nofity when an update is available
- Notify when an update is applied
- Notify when images/volumes have been pruned
- Notify if memory is > n%
- Notify if CPU is > n%
- Notifiarr
- Ignore
- Auto update
- Check for update
- Setup update schedules on a container by container basis
- Setup notify only or update on a container by container basis
- Mass prune/remove orphan images and volumes
- Mass select containers and generate
docker run
commands - Mass select containers and generate a
docker-compose
for them - Mass select containers and start/restart/stop/pull/update
- Memcached support (optional)
No matter how docker is installed (native, unraid, etc), it is required that the user running the container has permission to use the docker commands. View root/app/www/public/functions/docker.php
to see what is used
Unraid: This is built into the container with
addgroup -g 281 unraiddocker && \
usermod -aG unraiddocker abc
Ubuntu: This is an example to get the group id to use
grep docker /etc/group
This is an unraid example, adjust paths and settings for your setup
docker run \
-d \
--name='dockwatch' \
--net='custom-bridge' \
-e TZ="America/New_York" \
-e HOST_OS="Unraid" \
-e 'PUID'='1001' \
-e 'PGID'='999' \
-e 'UMASK'='022' \
-l net.unraid.docker.managed=dockerman \
-l net.unraid.docker.webui='http://[IP]:[PORT:9999]' \
-l net.unraid.docker.icon='https://golift.io/crontabs.png' \
-p '9999:80/tcp' \
-v '/mnt/disk1/appdata/dockwatch/config':'/config':'rw' \
-v '/proc':'/proc':'rw' \
-v '/var/run/docker.sock':'/var/run/docker.sock':'rw' 'ghcr.io/notifiarr/dockwatch:main'
This is an example, adjust paths and settings for your setup
dockwatch:
container_name: dockwatch
image: ghcr.io/notifiarr/dockwatch:main
ports:
- 9999:80/tcp
environment:
- PUID=1000
- PGID=999
- UMASK=022
- TZ=Etc/UTC
volumes:
- /appdata/dockwatch/config:/config
- /var/run/docker.sock:/var/run/docker.sock
- /proc:/proc
docker pull ghcr.io/notifiarr/dockwatch:main
These are my settings, adjust them to fit your setup!!
Volumes
Name | Host | Container |
---|---|---|
App Config | /mnt/disk1/appdata/dockwatch/config | /config |
Proc | /proc | /proc |
Docker sock | /var/run/docker.sock | /var/run/docker.sock |
Ports
Inside | Outside |
---|---|
80 | 9999 |
Variables
Name | Key | Value |
---|---|---|
PUID | PUID | 1001 |
PGID | PGID | 100 |
UMASK | UMASK | 022 |
There is support for a simple login mechanism but i would recomment using something like a reverse proxy with authentication
- Add a file
logins
to/config
- Add
admin:password
to the file and save it - Reload
- Multiple logins, drop a line and add another
admin:password
Firstly i am not a docker expert so there are likely other/better ways to do this. What i list below is just how i work on it without having to rebuild the container for every change and a reminder for me on what i did. Since this involves messing with the contents of the container, if an update is applied these steps will need re-applied
Option 1:
- Fork the repo
- Open the
Dockerfile
and comment out theCOPY root/ /
line at the bottom - Copy the files from
root/app/www/public/*
to/config/www/*
- Copy the cron feom
root/etc/crontabs/abc
to/config/crontabs/abc
(You'll need to add an ENV variable forDOCKER_MODS=linuxserver/mods:universal-cron
) - Copy the ini from
root/etc/php82/conf.d/dockwatch.ini
to/config/php/php-local.ini
- This should allow you to run the container while making changes to the files in
/config
and when done, just copy the files back into theroot/
directories and push your fork so it builds a new container
Option 2:
- SSH into the container as root
- Run
chown -R abc:abc /app/www
- Open the UI to Settings -> Development and change the environment from Internal to External & save
- Restart the container and it is now looking at
/config/www
for the working files so make sure you copy the files to there!
Unraid:
- Icons show up automatically using unraid labels
Non-Unraid:
- It tries to match the container image to an icon from https://github.com/Notifiarr/images (Feel free to add more icons to that repo for others to use)
- If the icon name is not the same as the official image or the app has multiple images then an alias would be used:
- Internal alias file: https://github.com/Notifiarr/dockwatch/blob/main/root/app/www/public/container-alias.json
- This can be modified to add more links to official images as needed
- If you have your own custom images that you want to point to an icon:
- Create
/config/container-alias.json
and use the same format as the internal file
- Create
- Internal alias file: https://github.com/Notifiarr/dockwatch/blob/main/root/app/www/public/container-alias.json
UI
Notifications