diff --git a/widgets/dockhand/README.md b/widgets/dockhand/README.md new file mode 100644 index 00000000..e44c1f94 --- /dev/null +++ b/widgets/dockhand/README.md @@ -0,0 +1,167 @@ +![](preview.png) + +```yaml +- type: custom-api + title: Dockhand + title-url: ${DOCKHAND_URL} + cache: 1h + + url: ${DOCKHAND_URL}/api/environments?env=1 + + subrequests: + containers: + url: ${DOCKHAND_URL}/api/containers?env=1 + images: + url: ${DOCKHAND_URL}/api/images?env=1 + networks: + url: ${DOCKHAND_URL}/api/networks?env=1 + volumes: + url: ${DOCKHAND_URL}/api/volumes?env=1 + stacks: + url: ${DOCKHAND_URL}/api/stacks?env=1 + + template: | + + + {{ $containers := (.Subrequest "containers").JSON.Array "" }} + {{ $images := (.Subrequest "images").JSON.Array "" }} + {{ $networks := (.Subrequest "networks").JSON.Array "" }} + {{ $volumes := (.Subrequest "volumes").JSON.Array "" }} + {{ $stacks := (.Subrequest "stacks").JSON.Array "" }} + + {{ $running := 0 }} + {{ $stopped := 0 }} + {{ range $containers }} + {{ if eq (.String "state") "running" }} + {{ $running = add $running 1 }} + {{ else }} + {{ $stopped = add $stopped 1 }} + {{ end }} + {{ end }} + +
+ +
+
{{ $running }}
+ + + + + + +
+ +
+
{{ $stopped }}
+ + + + + + +
+ +
+ +
{{ len $images }}
+
+
Images
+ + {{ $unused := 0 }} + {{ $totalBytes := 0 }} + {{ range $images }} + {{ if eq (.Int "containers") 0 }} + {{ $unused = add $unused 1 }} + {{ end }} + {{ $totalBytes = add $totalBytes (.Int "size") }} + {{ end }} + + {{ $totalGB := div $totalBytes 1073741824 }} + {{ $decimal := mod (div $totalBytes 1048576) 1024 }} + +
+
Unused images:
+
{{ $unused }}
+
+
+
Total size:
+
{{ printf "%d.%02d GB" $totalGB $decimal }}
+
+
+ + + + + +
+ +
+
{{ len $volumes }}
+ + + + + +
+ +
+
+
Networks
+ {{ range $networks }} +
+
{{ .String "name" }}
+
+ {{ $cfg := .Array "ipam.config" }} + {{ if gt (len $cfg) 0 }} + {{ (index $cfg 0).String "subnet" }} + {{ else }} + — + {{ end }} +
+
+ {{ end }} +
+
{{ len $networks }}
+ + + + + + + +
+ +
+
{{ len $stacks }}
+ + + + + +
+ +
+``` + +## Environment variables + +- `DOCKHAND_URL` - The URL for your running Dockhand container, including port but without trailing slash, e.g.: 'http://192.168.1.2:2283', or 'https://dockhand.example.com' + +## Dockhand environment + +- Update the number in `?env=1` to match the environment of which you want to display information + diff --git a/widgets/dockhand/meta.yml b/widgets/dockhand/meta.yml new file mode 100644 index 00000000..55bfbf8f --- /dev/null +++ b/widgets/dockhand/meta.yml @@ -0,0 +1,3 @@ +title: Dockhand +description: Show most important information from Dockhand: number of running/stopped containers, images, volumes, networks and stacks +author: keesvanloenen \ No newline at end of file diff --git a/widgets/dockhand/preview.png b/widgets/dockhand/preview.png new file mode 100644 index 00000000..f27acfc4 Binary files /dev/null and b/widgets/dockhand/preview.png differ