Skip to content

Commit

Permalink
Add the wiki icon to the nav menu
Browse files Browse the repository at this point in the history
Move the github readme content to the wiki
  • Loading branch information
austinwbest committed Sep 24, 2024
1 parent 5e24c78 commit d26e2b1
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 229 deletions.
231 changes: 4 additions & 227 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,233 +4,10 @@

## Purpose

Simple UI driven way to manage updates & notifications for Docker containers.
No database required. All settings are stored locally in a volume mount.
Simple UI driven way to manage updates & notifications for Docker containers.

## Notification triggers
## Wiki

**Notify when:**
We used to keep most of the information here but it was not organized or pleasant having to do so much scrolling. Instead, there is a wiki available that explains everything in detail. If you need further assistance there is a Support link on the main page of the wiki to get you into the right Discord server for help.

- Container (re-)created/removed
- Container state changes (running -> stopped or healthy -> unhealthy)
- Update for container image tag is available
- Update for container image tag has been applied
- Orphan images, volumes & networks are pruned
- Memory and CPU usage is over a set limit

## Notification platforms

- Notifiarr

## Update options

- Ignore
- Auto update
- Check for updates

## Additional features

- Link and control multiple servers
- Automatically locate and match container icons for non Unraid usage\*
- Update schedules for container image tags by a container basis
- Notifications by a container basis
- Automatically try to restart unhealthy containers
- Mass prune orphan images, volumes & networks
- Mass actions for containers [(re-)start/stop, pull, update]\*\*
- Group containers in a table view for easier management

\*If icon is available at [Notifiarr/images](https://github.com/Notifiarr/images).
\*\*Also includes generating a `docker run` command, `docker-compose.yml` and comparing mounts.

## Icons

**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 container image or the app has multiple container 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 container images that you want to point to an icon:
- Create `/config/container-alias.json` and use the same format as the internal file
- Examples:
```
{
"pi-hole": ["pihole"],
"https://www.pgadmin.org/static/COMPILED/assets/img/postgres-alt.svg": ["pgadmin4"]
"/config/images/vaultwarden.png": ["vaultwarden/server"]
}
```
The key (left side) is where the image is:
- Notifiarr image repo file name (1st example)
- Full url (2nd example)
- Absolute local path relative to the container (3rd example)
The value (right side list) is what all to search for which will match to:
- Container names (1st example)
- Image names (2nd example)
- Full image names (3rd example)
## Network dependencies
Dockwatch can automatically recognize if containers depend on specific network containers, for example Gluetun.
- Restart Gluetun -> restart dependencies
- Stop Gluetun -> stop dependencies
- Update Gluetun -> re-create dependencies with updated network mode attached
## Docker Socket Proxy
Dockwatch is compatible with a Socket proxy + tested with LSIO and Tecnativa. You need to enable the following:
```
- CONTAINERS=1
- IMAGES=1
- PORTS=1
- NETWORKS=1
- VOLUMES=1
```
proxy env settings and add a `DOCKER_HOST` env variable with the example value `http://socket-proxy:2375` (this points to your socket-proxy container) to your compose.
**Make sure the socket proxy runs on the same network as Dockwatch**
## Pre-requirements
Dockwatch heavily relies on the Docker API to work.
**Dependencies:**
- Docker v25 or later
- Docker-Compose v2.27 or later
**Getting the values of PUID and PGID:**
- Get the group id that docker uses with the following command:
```
grep docker /etc/group
```
- Get the user id from the user you want to run Dockwatch as with the following command:
```
id -u <username>
```
## Run
**Docker:**
```
docker run \
-d \
--name "/dockwatch" \
--volume "/home/dockwatch/config:/config:rw" \
--volume "/var/run/docker.sock:/var/run/docker.sock:rw" \
--restart "unless-stopped" \
--publish "9999:80/tcp" \
--network "bridge" \
--env "TZ=America/New_York" \
--env "PUID=1001" \
--env "PGID=999" \
"ghcr.io/notifiarr/dockwatch:main"
```
**Docker Compose:**
```
services:
dockwatch:
container_name: dockwatch
image: ghcr.io/notifiarr/dockwatch:main
restart: unless-stopped
ports:
- 9999:80/tcp
environment:
#-DOCKER_HOST=127.0.0.1:2375 # Uncomment and adjust accordingly if you use a socket proxy
- PUID=1001
- PGID=999
- TZ=America/New_York
volumes:
- /home/dockwatch/config:/config
- /var/run/docker.sock:/var/run/docker.sock # Comment this line if you use a socket proxy
```
**Manual:**
`docker pull ghcr.io/notifiarr/dockwatch:main`
## Environment variables
Volumes
| Name | Host | Container |
| ----- | ----- | ----- |
| App config | /mnt/disk1/appdata/dockwatch/config | /config |
| Docker sock | /var/run/docker.sock | /var/run/docker.sock |
Ports
| Inside | Outside |
| ----- | ----- |
| 80 | 9999 |
Variables
| Name | Key | Value |
| ----- | ----- | ----- |
| DOCKER_HOST (optional: only for socket proxy) | DOCKER_HOST | ip:port |
| PUID | PUID | 1001 |
| PGID | PGID | 999 |
| TZ | TZ | America/New_York |
## Login
Dockwatch has basic functionality for protecting the UI with a username and password.
**It is strongly recommended to use a reverse proxy with authentication instead.**
- Create file `logins` in `/config`
- Append `admin:password` to the file and save it
- For multiple logins, drop a line and add another `admin:password`
## Development
**Option 1:**
- Fork the repo
- Create a directory symlink of the forked repo to `/config/www`.
- Linux example: `ln -s /home/user/dockwatch-git /home/user/config/www`
- Windows example: `mklink /D "C:\dockwatch-git" "C:\dockwatch-config\www"`
- Open the UI, Navigate to Settings->Development and set environment from Internal to External
- Save and restart Dockwatch container
**Option 2:**
- Fork the repo
- Open the `Dockerfile` and comment out the `COPY root/ /` line at the bottom
- Copy the files from `root/app/www/public/*` to `/config/www/*`
- Copy the cron from `root/etc/crontabs/abc` to `/config/crontabs/abc` (You'll need to add an ENV variable for `DOCKER_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 the `root/` directories and push your fork so it builds a new container
## Screenshots
UI
![image](https://github.com/Notifiarr/dockwatch/assets/8321115/87fc88d0-3430-43ba-a636-9c89992c7f59)
![image](https://github.com/user-attachments/assets/37eec4ee-364b-4cdc-806b-e08938f96af0)
![image](https://github.com/Notifiarr/dockwatch/assets/8321115/6e41ca48-1347-4a7f-8a2a-5e5c5020bf41)
![image](https://github.com/user-attachments/assets/dafd2368-2a7f-46a2-9f65-49c23e3757c3)
![image](https://github.com/Notifiarr/dockwatch/assets/8321115/2257d9bf-a9a8-46e3-8712-f3cb2c037199)
![image](https://github.com/Notifiarr/dockwatch/assets/8321115/0c5c64b1-ea87-4269-b9fc-d91744c7219d)
![image](https://github.com/Notifiarr/dockwatch/assets/8321115/952d424a-f171-4366-8f2e-f673618e8e51)
![image](https://github.com/Notifiarr/dockwatch/assets/8321115/911efa2e-10e2-4787-985f-d5dd77a4b935)
Notifications
![image](https://github.com/Notifiarr/dockwatch/assets/8321115/f3f3b7cc-646c-4eaf-a344-99d0c1c81767)
![image](https://github.com/Notifiarr/dockwatch/assets/8321115/3b30e241-87ee-4e5d-a9f0-5b52ae5cb776)
![image](https://github.com/Notifiarr/dockwatch/assets/8321115/bae49f20-573f-4b7e-99f8-35abd5a7b932)
![image](https://github.com/Notifiarr/dockwatch/assets/8321115/217f4c81-3b84-40f8-b3ce-a51dabda0e1f)
![image](https://github.com/Notifiarr/dockwatch/assets/8321115/f48b47db-125c-4caa-bbdb-50de224861e2)
![image](https://github.com/Notifiarr/dockwatch/assets/8321115/ca8ea590-5fd6-4808-90f2-04eca15f83b1)
Click [dockwatch.wiki](https://dockwatch.wiki) to head over there!
5 changes: 3 additions & 2 deletions root/app/www/public/includes/header.php
Original file line number Diff line number Diff line change
Expand Up @@ -94,8 +94,9 @@
</div>
<?php } ?>
<div class="navbar-brand w-100 mb-1 text-center">
<a href="https://github.com/Notifiarr/dockwatch" target="_blank"><i class="fab fa-github btn-secondary me-2"></i></a>
<a href="https://notifiarr.com/discord" target="_blank"><i class="fab fa-discord btn-secondary"></i></a>
<a href="https://dockwatch.wiki" target="_blank" title="Visit the <?= APP_NAME ?> wiki"><i class="fab fa-wikipedia-w btn-secondary me-2"></i></a>
<a href="https://github.com/Notifiarr/dockwatch" title="Visit the <?= APP_NAME ?> github" target="_blank"><i class="fab fa-github btn-secondary me-2"></i></a>
<a href="https://notifiarr.com/discord" title="Get some help if the wiki does not cover it" target="_blank"><i class="fab fa-discord btn-secondary"></i></a>
</div>
</nav>
<div class="w-100 text-center small-text" style="position: absolute; bottom: 0;">
Expand Down

0 comments on commit d26e2b1

Please sign in to comment.