From a8bddcb18c2f8a0df95c94d92c0e175b441e5656 Mon Sep 17 00:00:00 2001 From: Bensuperpc Date: Thu, 7 May 2026 21:16:47 +0200 Subject: [PATCH] Add argus --- infrastructure/docker-compose.yml | 2 + .../services/argus/config/config.yml | 463 ++++++++++++++++++ .../services/argus/docker-compose.argus.yml | 28 ++ .../services/caddy/config/Caddyfile | 1 + .../services/caddy/config/website/argus.caddy | 3 + .../openssh/docker-compose.openssh.yml | 5 +- presets/torrent.conf | 2 +- 7 files changed, 502 insertions(+), 2 deletions(-) create mode 100644 infrastructure/services/argus/config/config.yml create mode 100644 infrastructure/services/argus/docker-compose.argus.yml create mode 100644 infrastructure/services/caddy/config/website/argus.caddy diff --git a/infrastructure/docker-compose.yml b/infrastructure/docker-compose.yml index acee10b..28ac023 100644 --- a/infrastructure/docker-compose.yml +++ b/infrastructure/docker-compose.yml @@ -41,6 +41,8 @@ include: - services/uptime-kuma/docker-compose.uptime-kuma.yml # open-webui - services/open-webui/docker-compose.open-webui.yml +# Argus + - services/argus/docker-compose.argus.yml # Minecraft - services/minecraft-server/docker-compose.yml # 7daystodie diff --git a/infrastructure/services/argus/config/config.yml b/infrastructure/services/argus/config/config.yml new file mode 100644 index 0000000..f7c4b2c --- /dev/null +++ b/infrastructure/services/argus/config/config.yml @@ -0,0 +1,463 @@ +settings: + log: + level: DEBUG +defaults: + service: + latest_version: + access_token: + deployed_version: + allow_invalid_certs: true +notify: + default_gotify: + type: gotify + url_fields: + host: gotify.example.io + token: + default_mattermost: + type: mattermost + url_fields: + host: localhost + port: "8081" + token: +webhook: + awx_more: + type: github + url: http://localhost:8081 + secret: + silent_fails: true + awx_other: + type: github + url: https://localhost:8081/api/v2/job_templates/36/github/ + secret: + silent_fails: true +service: + prometheus/alertmanager: + latest_version: + type: github + url: prometheus/alertmanager + notify: + default_gotify: {} + default_mattermost: {} + webhook: + awx: + type: github + url: https://localhost:8081/api/v2/job_templates/45/github/ + secret: + awx_more: {} + deployed_version: + type: url + url: https://alert-manager.example.io/api/v2/status + basic_auth: + username: prometheus + password: + json: versionInfo.version + dashboard: + web_url: https://github.com/prometheus/alertmanager/blob/main/CHANGELOG.md + tags: + - prometheus + release-argus/argus: + latest_version: + type: github + url: release-argus/argus + command: + - - /bin/true + - - /bin/false + deployed_version: + type: url + url: http://127.0.1.0:8888/demo/api/v1/version + json: version + dashboard: + icon: https://release-argus.io/demo/favicon.svg + web_url: https://github.com/release-argus/Argus/blob/master/CHANGELOG.md + tags: + - go + goauthentik/authentik: + latest_version: + type: github + url: goauthentik/authentik + use_prerelease: true + url_commands: + - type: regex + regex: version\/([0-9.]+[0-9]+(?:-rc[0-9])?) + notify: + default_gotify: {} + default_mattermost: + params: + icon: https://raw.githubusercontent.com/goauthentik/authentik/master/web/icons/icon.png + webhook: + awx: + type: github + url: https://localhost:8081/api/v2/job_templates/35/github/ + secret: + delay: 2h + awx_more: {} + dashboard: + web_url: https://goauthentik.io/docs/releases/{{ version | split:"." | + slice:":-1" | join:"." }} + tags: + - go + ansible/awx-operator: + latest_version: + type: github + url: ansible/awx-operator + notify: + default_gotify: {} + default_mattermost: + params: + icon: https://raw.githubusercontent.com/ansible/awx-logos/master/awx/ui/client/assets/logo-login.svg + webhook: + awx: + type: github + url: https://localhost:8081/api/v2/job_templates/12/github/ + secret: + awx_more: {} + dashboard: + web_url: https://github.com/ansible/awx-operator/releases + google/docsy: + latest_version: + type: github + url: google/docsy + notify: + default_gotify: {} + default_mattermost: + params: + icon: https://github.com/google/docsy/blob/main/assets/icons/logo.png?raw=true + dashboard: + icon: https://raw.githubusercontent.com/google/docsy/b4d66f70ba9b12cf75502cea19c5aa58d5e91486/assets/icons/logo.svg + forgejo: + latest_version: + type: url + url: https://code.forgejo.org/api/v1/repos/forgejo/forgejo/releases + url_commands: + - type: regex + regex: "['\"]tag_name['\"]: *['\"]v?([0-9.]+)['\"]" + notify: + default_gotify: {} + default_mattermost: + params: + icon: https://codeberg.org/forgejo/forgejo/raw/branch/forgejo/public/assets/img/avatar_default.png + webhook: + awx: + type: github + url: https://localhost:8081/api/v2/job_templates/38/github/ + secret: + awx_more: {} + deployed_version: + type: url + url: https://forgejo.example.io + regex: Powered by Forgejo.*\s+Version:\s+([0-9.]+) + dashboard: + web_url: https://github.com/go-gitea/gitea/releases/v{{ version }} + tags: + - go + golang/go: + options: + semantic_versioning: false + latest_version: + type: url + url: https://golang.org/dl/ + url_commands: + - type: regex + regex: go([0-9.]+[0-9]+)\.src\.tar\.gz + notify: + default_gotify: {} + default_mattermost: + params: + icon: ":gopher:" + dashboard: + icon: https://go.dev/images/gophers/motorcycle.svg + web_url: https://go.dev/doc/go{{ version | split:"." | slice:":2" | join:"." }} + tags: + - go + gotify/server: + latest_version: + type: github + url: gotify/server + notify: + default_gotify: {} + default_mattermost: + params: + icon: https://github.com/gotify/logo/raw/master/gotify-logo.png + webhook: + awx: + type: github + url: https://localhost:8081/api/v2/job_templates/39/github/ + secret: + awx_more: + delay: 2h + deployed_version: + type: url + url: https://gotify.example.io/version + json: version + dashboard: + web_url: https://github.com/gotify/server/releases/tag/v{{ version }} + grafana/grafana: + latest_version: + type: github + url: grafana/grafana + notify: + default_gotify: {} + default_mattermost: + params: + icon: ":grafana:" + webhook: + awx: + type: github + url: https://localhost:8081/api/v2/job_templates/40/github/ + secret: + awx_more: {} + deployed_version: + type: url + url: https://grafana.example.io/login + regex: Grafana v([0-9.]+) \( + dashboard: + auto_approve: true + icon: https://cdn.worldvectorlogo.com/logos/grafana.svg + web_url: https://grafana.com/docs/grafana/latest/whatsnew/whats-new-in-v{{ + version | split:"." | slice:":2" | join:"-" }} + tags: + - grafana + home-assistant/core: + latest_version: + type: github + url: home-assistant/core + notify: + default_gotify: {} + default_mattermost: + params: + icon: https://github.com/home-assistant/core/raw/dev/tests/components/image_upload/logo.png + dashboard: + web_url: https://www.home-assistant.io/latest-release-notes + gohugoio/hugo: + latest_version: + type: github + url: gohugoio/hugo + notify: + default_gotify: {} + default_mattermost: + params: + icon: https://raw.githubusercontent.com/gohugoio/hugo/master/docs/static/img/hugo.png + dashboard: + web_url: https://github.com/gohugoio/hugo/releases/v{{ version }} + tags: + - hugo + - go + grafana/loki: + latest_version: + type: github + url: grafana/loki + notify: + default_gotify: {} + default_mattermost: + params: + icon: https://grafana.com/static/assets/img/blog/loki.png + webhook: + awx: + type: github + url: https://localhost:8081/api/v2/job_templates/41/github/ + secret: + awx_more: {} + deployed_version: + type: url + url: https://loki.example.io/loki/api/v1/status/buildinfo + json: version + dashboard: + web_url: https://grafana.com/docs/loki/latest/release-notes/v{{ version | + split:"." | slice:":2" | join:"-" }} + tags: + - grafana + mailcow/mailcow-dockerized: + options: + semantic_versioning: false + latest_version: + type: github + url: mailcow/mailcow-dockerized + notify: + default_gotify: {} + default_mattermost: {} + deployed_version: + type: url + url: https://mailcow.example.io/api/v1/get/status/version + headers: + - key: X-API-Key + value: + json: version + dashboard: + icon: https://raw.githubusercontent.com/mailcow/mailcow-dockerized/master/data/web/img/cow_mailcow.svg + web_url: https://github.com/mailcow/mailcow-dockerized/releases/tag/{{ version }} + mattermost/mattermost-server: + latest_version: + type: url + url: https://mattermost.com/download/ + url_commands: + - type: regex + regex: Latest Release:[^0-9]+([0-9]+\.[0-9]+\.[0-9]+) + notify: + default_gotify: {} + default_mattermost: {} + webhook: + awx: + type: github + url: https://localhost:8081/api/v2/job_templates/43/github/ + secret: + awx_more: {} + dashboard: + web_url: https://docs.mattermost.com/install/self-managed-changelog.html + nextcloud/server: + latest_version: + type: github + url: nextcloud/server + notify: + default_gotify: {} + default_mattermost: + params: + icon: https://github.com/nextcloud/server/blob/master/core/img/favicon-fb.png?raw=true + dashboard: + auto_approve: true + web_url: https://nextcloud.com/changelog/#latest{{ version | split:"." | + slice:":1" | join:"" }} + prometheus/prometheus: + latest_version: + type: github + url: prometheus/prometheus + url_commands: + - type: regex + regex: v([0-9.]+)$ + notify: + default_gotify: {} + default_mattermost: {} + webhook: + awx: + type: github + url: https://localhost:8081/api/v2/job_templates/45/github/ + secret: + awx_more: {} + deployed_version: + type: url + url: https://prometheus.example.io/api/v1/status/buildinfo + json: data.version + dashboard: + web_url: https://github.com/prometheus/prometheus/blob/main/CHANGELOG.md + tags: + - prometheus + containrrr/shoutrrr: + latest_version: + type: github + url: containrrr/shoutrrr + notify: + default_gotify: {} + default_mattermost: + params: + icon: https://raw.githubusercontent.com/containrrr/shoutrrr/main/docs/shoutrrr-logotype.png?raw=true + dashboard: + web_url: https://github.com/containrrr/shoutrrr/releases/tag/v{{ version }} + tags: + - go + thanos-io/thanos: + latest_version: + type: github + url: thanos-io/thanos + url_commands: + - type: regex + regex: v([0-9.]+)$ + notify: + default_gotify: {} + default_mattermost: + params: + icon: https://github.com/thanos-io/thanos/blob/main/docs/img/Thanos-logo_fullmedium.png?raw=true + webhook: + awx: + type: github + url: https://localhost:8081/api/v2/job_templates/46/github/ + secret: + awx_more: {} + deployed_version: + type: url + url: https://thanos.example.io/api/v1/status/buildinfo + json: data.version + dashboard: + web_url: https://github.com/thanos-io/thanos/blob/main/CHANGELOG.md + louislam/uptime-kuma: + latest_version: + type: github + url: louislam/uptime-kuma + notify: + default_gotify: {} + default_mattermost: + params: + icon: https://raw.githubusercontent.com/louislam/uptime-kuma/master/public/icon.png + webhook: + awx: + type: github + url: https://localhost:8081/api/v2/job_templates/47/github/ + secret: + awx_more: {} + deployed_version: + type: url + url: https://uptime-kuma.example.io/metrics + basic_auth: + username: josephkav + password: + regex: app_version{version=\"([0-9.]+)\",major=\"[0-9]+\",minor=\"[0-9]+\",patch=\"[0-9]+\"} + dashboard: + web_url: https://github.com/louislam/uptime-kuma/releases/tag/{{ version }} + dani-garcia/vaultwarden: + latest_version: + type: github + url: dani-garcia/vaultwarden + notify: + default_gotify: {} + default_mattermost: + params: + icon: https://raw.githubusercontent.com/dani-garcia/vaultwarden/main/src/static/images/vaultwarden-icon.png + dashboard: + web_url: https://github.com/dani-garcia/vaultwarden/releases/tag/{{ version }} + go-vikunja/api: + latest_version: + type: github + url: go-vikunja/api + notify: + default_gotify: {} + default_mattermost: + params: + icon: https://github.com/go-vikunja/vikunja/blob/main/frontend/public/images/icons/android-chrome-512x512.png?raw=true + webhook: + awx: + type: github + url: https://localhost:8081/api/v2/job_templates/48/github/ + secret: + awx_more: {} + dashboard: + web_url: https://github.com/go-vikunja/api/blob/main/CHANGELOG.md + tags: + - go + adnanh/webhook: + latest_version: + type: github + url: adnanh/webhook + notify: + default_gotify: {} + default_mattermost: + params: + icon: https://raw.githubusercontent.com/adnanh/webhook/development/docs/logo/logo-128x128.png + webhook: + awx_more: {} + awx_other: {} + dashboard: + web_url: https://github.com/adnanh/webhook/releases/tag/{{ version }} + tags: + - go + wowchemy/wowchemy-hugo-themes: + latest_version: + type: github + url: wowchemy/wowchemy-hugo-themes + url_commands: + - type: regex + regex: (?:modules/wowchemy/)?v?([0-9.]+) + notify: + default_gotify: {} + default_mattermost: {} + dashboard: + web_url: https://github.com/wowchemy/wowchemy-hugo-themes/releases + tags: + - hugo diff --git a/infrastructure/services/argus/docker-compose.argus.yml b/infrastructure/services/argus/docker-compose.argus.yml new file mode 100644 index 0000000..da57ff4 --- /dev/null +++ b/infrastructure/services/argus/docker-compose.argus.yml @@ -0,0 +1,28 @@ +services: + # argus + argus: + image: releaseargus/argus:latest + container_name: argus + profiles: + - argus + environment: + ARGUS_UID: ${PUID:-1000} + ARGUS_GID: ${PGID:-1000} + restart: on-failure:5 + depends_on: + - caddy + networks: + - infra-network + volumes: + - argus_data:/app/data/ + - ./config/config.yml:/app/config.yml + # healthcheck: + # test: ["CMD", "/healthcheck", "http://localhost:8080/api/v1/healthcheck"] + # interval: 1m + # timeout: 10s + # retries: 3 + # start_period: 10s + +volumes: + argus_data: + name: argus_data \ No newline at end of file diff --git a/infrastructure/services/caddy/config/Caddyfile b/infrastructure/services/caddy/config/Caddyfile index 608cee6..ef89d7a 100644 --- a/infrastructure/services/caddy/config/Caddyfile +++ b/infrastructure/services/caddy/config/Caddyfile @@ -39,3 +39,4 @@ import website/projectsend.caddy import website/qbittorrent.caddy import website/syncthing.caddy import website/uptimekuma.caddy +import website/argus.caddy diff --git a/infrastructure/services/caddy/config/website/argus.caddy b/infrastructure/services/caddy/config/website/argus.caddy new file mode 100644 index 0000000..bf999c5 --- /dev/null +++ b/infrastructure/services/caddy/config/website/argus.caddy @@ -0,0 +1,3 @@ +argus.{$MAIN_DOMAIN} { + reverse_proxy argus:8080 +} diff --git a/infrastructure/services/openssh/docker-compose.openssh.yml b/infrastructure/services/openssh/docker-compose.openssh.yml index fa1328b..cd092f9 100644 --- a/infrastructure/services/openssh/docker-compose.openssh.yml +++ b/infrastructure/services/openssh/docker-compose.openssh.yml @@ -34,7 +34,7 @@ services: - forgejo_db:/forgejo_db:rw - teamfortress2_backup:/teamfortress2_backup:rw - teamfortress2_data:/teamfortress2_data:rw - + - argus_data:/argus_data:rw networks: - infra-network security_opt: @@ -89,3 +89,6 @@ volumes: name: forgejo_data forgejo_db: name: forgejo_db +# argus + argus_data: + name: argus_data diff --git a/presets/torrent.conf b/presets/torrent.conf index 6be10bf..b3e9f93 100644 --- a/presets/torrent.conf +++ b/presets/torrent.conf @@ -1,4 +1,4 @@ DOCKER_PROFILES += main_infrastructure caddy DOCKER_PROFILES += qbittorrent openssh -DOCKER_PROFILES += uptime-kuma +DOCKER_PROFILES += uptime-kuma argus # transmission