What's up docker custom service (#444)

Add WUD
This commit is contained in:
Julien Roy 2022-11-05 22:44:25 +01:00 committed by GitHub
parent d141a69a7d
commit c9a6495186
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 108 additions and 0 deletions

View File

@ -28,6 +28,8 @@ within Homer:
- [rTorrent](#rtorrent)
- [qBittorrent](#qbittorrent)
- [CopyToClipboard](#copy-to-clipboard)
- [Speedtest Tracker](#SpeedtestTracker)
- [What's Up Docker](#whats-up-docker)
If you experiencing any issue, please have a look to the [troubleshooting](troubleshooting.md) page.
@ -344,3 +346,17 @@ Configuration example:
## SpeedtestTracker
For the SpeedtestTracker service you just need to define a entry with type `SpeedtestTracker`.
## What's up Docker
What's up Docker allow to display info about the number of container running and the number for which an update is available on your Homer dashboard.
The following configuration is available for the WUD service.
```yaml
- name: "What's Up Docker"
logo: "assets/tools/sample.png"
subtitle: "Docker image update notifier"
url: "http://192.168.1.12:3001"
type: "WUD"
```

View File

@ -0,0 +1,92 @@
<template>
<Generic :item="item">
<template #indicator>
<div class="notifs">
<strong v-if="running > 0" class="notif warnings" title="Running">
{{ running }}
</strong>
<strong v-if="update > 0" class="notif errors" title="Update">
{{ update }}
</strong>
<strong
v-if="serverError"
class="notif errors"
title="Connection error to WUD API, check url in config.yml"
>
?
</strong>
</div>
</template>
</Generic>
</template>
<script>
import service from "@/mixins/service.js";
import Generic from "./Generic.vue";
export default {
name: "WUD",
mixins: [service],
props: {
item: Object,
},
components: {
Generic,
},
data: () => {
return {
running: null,
update: null,
serverError: false,
};
},
created: function () {
this.fetchConfig();
},
methods: {
fetchConfig: function () {
this.fetch(`/api/containers`)
.then((containers) => {
this.running = 0;
this.update = 0;
for (var i = 0; i < containers.length; i++) {
this.running++;
if (containers[i].updateAvailable) {
this.update++;
}
}
})
.catch(() => {
this.serverError = true;
});
},
},
};
</script>
<style scoped lang="scss">
.notifs {
position: absolute;
color: white;
font-family: sans-serif;
top: 0.3em;
right: 0.5em;
.notif {
display: inline-block;
padding: 0.2em 0.35em;
border-radius: 0.25em;
position: relative;
margin-left: 0.3em;
font-size: 0.8em;
&.warnings {
background-color: #d08d2e;
}
&.errors {
background-color: #e51111;
}
}
}
</style>