From 773fdeb412940bd68896bb122b9f9620da2358b0 Mon Sep 17 00:00:00 2001 From: stevensting Date: Tue, 31 Mar 2026 17:42:37 +0200 Subject: [PATCH 1/6] rework recipe and upgrade kuma version --- .env.sample | 6 ++++-- README.md | 2 +- compose.mariadb.yml | 18 +++++++++++++++++- compose.yml | 45 ++------------------------------------------- entrypoint.sh.tmpl | 2 +- 5 files changed, 25 insertions(+), 48 deletions(-) diff --git a/.env.sample b/.env.sample index 6b8a695..f104582 100644 --- a/.env.sample +++ b/.env.sample @@ -10,6 +10,8 @@ DOMAIN=uptime-kuma.example.com SECRET_DB_PASSWORD_VERSION=v1 SECRET_DB_ROOT_PASSWORD_VERSION=v1 - -## Enable mariadb +## Enable mariadb, otherwise sqlite will be used #COMPOSE_FILE="$COMPOSE_FILE:compose.mariadb.yml" + +# only for testing branches of uptime-kuma +#UPTIME_KUMA_GH_REPO= \ No newline at end of file diff --git a/README.md b/README.md index 08bdebd..e046d08 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ * **Category**: Apps * **Status**: 0 * **Image**: [`uptime-kuma`](https://hub.docker.com/r/uptime-kuma), 4, upstream -* **Healthcheck**: No +* **Healthcheck**: Yes * **Backups**: Yes * **Email**: No * **Tests**: No diff --git a/compose.mariadb.yml b/compose.mariadb.yml index 34b3e55..585a8ee 100644 --- a/compose.mariadb.yml +++ b/compose.mariadb.yml @@ -5,8 +5,9 @@ services: app: secrets: - db_password + networks: + - internal environment: - - UPTIME_KUMA_GH_REPO=louislam:uptime-kuma - UPTIME_KUMA_DB_TYPE=mariadb - UPTIME_KUMA_DB_HOSTNAME=db - UPTIME_KUMA_DB_PORT=3306 @@ -30,10 +31,25 @@ services: secrets: - db_password - db_root_password + deploy: + labels: + backupbot.backup: "${ENABLE_BACKUPS:-true}" + backupbot.backup.pre-hook: "mariadb-dump --single-transaction -u root -p\"$$(cat /run/secrets/db_root_password)\" kuma | gzip > /var/lib/mysql/dump.sql.gz" + backupbot.backup.volumes.mariadb.path: "dump.sql.gz" + backupbot.restore.post-hook: "gzip -d /var/lib/mysql/dump.sql.gz && mariadb -u root -p\"$$(cat /run/secrets/db_root_password)\" kuma < /var/lib/mysql/dump.sql && rm -f /var/lib/mysql/dump.sql" + healthcheck: + test: ["CMD-SHELL", 'mariadb-admin -p"$$(cat $MYSQL_ROOT_PASSWORD_FILE)" ping'] + interval: 30s + timeout: 10s + retries: 10 + start_period: 1m volumes: mariadb: +networks: + internal: + secrets: db_password: external: true diff --git a/compose.yml b/compose.yml index 15433c4..bd6ce4c 100644 --- a/compose.yml +++ b/compose.yml @@ -6,79 +6,38 @@ services: image: louislam/uptime-kuma:2.2.1 volumes: - data:/app/data - secrets: - - db_password networks: - - internal - proxy environment: - - UPTIME_KUMA_GH_REPO=louislam:uptime-kuma + - UPTIME_KUMA_GH_REPO - UPTIME_KUMA_DB_TYPE=sqlite - depends_on: - - db configs: - source: app_entrypoint target: /docker-entrypoint.sh mode: 0555 entrypoint: /docker-entrypoint.sh deploy: - update_config: - failure_action: rollback - order: start-first labels: - "traefik.enable=true" - "traefik.http.services.${STACK_NAME}.loadbalancer.server.port=3001" - "traefik.http.routers.${STACK_NAME}.rule=Host(`${DOMAIN}`${EXTRA_DOMAINS})" - "traefik.http.routers.${STACK_NAME}.entrypoints=web-secure" - "traefik.http.routers.${STACK_NAME}.tls.certresolver=${LETS_ENCRYPT_ENV}" - ## Redirect from EXTRA_DOMAINS to DOMAIN - #- "traefik.http.routers.${STACK_NAME}.middlewares=${STACK_NAME}-redirect" - #- "traefik.http.middlewares.${STACK_NAME}-redirect.headers.SSLForceHost=true" - #- "traefik.http.middlewares.${STACK_NAME}-redirect.headers.SSLHost=${DOMAIN}" - "coop-cloud.${STACK_NAME}.version=2.0.0+2.0.0-beta.1" + - "backupbot.backup=${ENABLE_BACKUPS:-true}" healthcheck: test: "curl -L localhost:3001" interval: 30s timeout: 10s retries: 5 start_period: 2m - db: - image: mariadb:11.8 - environment: - - MYSQL_ROOT_PASSWORD_FILE=/run/secrets/db_root_password - - MYSQL_PASSWORD_FILE=/run/secrets/db_password - - MYSQL_USER=kuma - - MYSQL_DATABASE=kuma - volumes: - - mariadb:/var/lib/mysql - networks: - - internal - secrets: - - db_password - - db_root_password - deploy: - labels: - backupbot.backup: "${ENABLE_BACKUPS:-true}" - backupbot.backup.pre-hook: "mariadb-dump --single-transaction -u root -p\"$$(cat /run/secrets/db_root_password)\" kuma | gzip > /var/lib/mysql/dump.sql.gz" - backupbot.backup.volumes.mariadb.path: "dump.sql.gz" - backupbot.restore.post-hook: "gzip -d /var/lib/mysql/dump.sql.gz && mariadb -u root -p\"$$(cat /run/secrets/db_root_password)\" kuma < /var/lib/mysql/dump.sql && rm -f /var/lib/mysql/dump.sql" volumes: - mariadb: data: networks: proxy: external: true - internal: - -secrets: - db_password: - external: true - name: ${STACK_NAME}_db_password_${SECRET_DB_PASSWORD_VERSION} - db_root_password: - external: true - name: ${STACK_NAME}_db_root_password_${SECRET_DB_ROOT_PASSWORD_VERSION} configs: app_entrypoint: diff --git a/entrypoint.sh.tmpl b/entrypoint.sh.tmpl index d632eab..1677f98 100644 --- a/entrypoint.sh.tmpl +++ b/entrypoint.sh.tmpl @@ -24,7 +24,7 @@ file_env() { unset "$fileVar" } -file_env "UPTIME_KUMA_DB_PASSWORD" +#file_env "UPTIME_KUMA_DB_PASSWORD" # upstream startup command cd /app From f41d89d3207a5acdc829fed5d501801360b5ec08 Mon Sep 17 00:00:00 2001 From: stevensting Date: Tue, 31 Mar 2026 17:58:55 +0200 Subject: [PATCH 2/6] adding information for maintainership --- MAINTENANCE.md | 0 README.md | 13 +++++++++---- renovate.json | 6 ++++++ 3 files changed, 15 insertions(+), 4 deletions(-) create mode 100644 MAINTENANCE.md create mode 100644 renovate.json diff --git a/MAINTENANCE.md b/MAINTENANCE.md new file mode 100644 index 0000000..e69de29 diff --git a/README.md b/README.md index e046d08..d354e31 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,16 @@ # uptime-kuma -> One line description of the recipe +[![Build Status](https://build.coopcloud.tech/api/badges/coop-cloud/uptime-kuma/status.svg)](https://build.coopcloud.tech/coop-cloud/uptime-kuma) + + +> A fancy self-hosted monitoring tool -* **Category**: Apps -* **Status**: 0 +* **Maintainer**: [@stevensting](https://git.coopcloud.tech/stevensting) +* **Status**: `stable` +* **Category**: Utilities +* **Features**: ? * **Image**: [`uptime-kuma`](https://hub.docker.com/r/uptime-kuma), 4, upstream * **Healthcheck**: Yes * **Backups**: Yes @@ -25,7 +30,7 @@ For more, see [`docs.coopcloud.tech`](https://docs.coopcloud.tech). ## MariaDB -By default uptime-kuma uses a sqlite database. It is possible to switch to a mariadb: +By default uptime-kuma uses a sqlite database. It is possible to switch to a mariadb by: ``` #COMPOSE_FILE="$COMPOSE_FILE:compose.mariadb.yml" ``` diff --git a/renovate.json b/renovate.json new file mode 100644 index 0000000..5db72dd --- /dev/null +++ b/renovate.json @@ -0,0 +1,6 @@ +{ + "$schema": "https://docs.renovatebot.com/renovate-schema.json", + "extends": [ + "config:recommended" + ] +} From 7897cae8909723c03545816789a6cc084adc6973 Mon Sep 17 00:00:00 2001 From: stevensting Date: Tue, 31 Mar 2026 18:06:19 +0200 Subject: [PATCH 3/6] Revert "rework recipe and upgrade kuma version" This reverts commit 773fdeb412940bd68896bb122b9f9620da2358b0. --- .env.sample | 6 ++---- README.md | 2 +- compose.mariadb.yml | 18 +----------------- compose.yml | 45 +++++++++++++++++++++++++++++++++++++++++++-- entrypoint.sh.tmpl | 2 +- 5 files changed, 48 insertions(+), 25 deletions(-) diff --git a/.env.sample b/.env.sample index f104582..6b8a695 100644 --- a/.env.sample +++ b/.env.sample @@ -10,8 +10,6 @@ DOMAIN=uptime-kuma.example.com SECRET_DB_PASSWORD_VERSION=v1 SECRET_DB_ROOT_PASSWORD_VERSION=v1 -## Enable mariadb, otherwise sqlite will be used -#COMPOSE_FILE="$COMPOSE_FILE:compose.mariadb.yml" -# only for testing branches of uptime-kuma -#UPTIME_KUMA_GH_REPO= \ No newline at end of file +## Enable mariadb +#COMPOSE_FILE="$COMPOSE_FILE:compose.mariadb.yml" diff --git a/README.md b/README.md index d354e31..b57b883 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ * **Category**: Utilities * **Features**: ? * **Image**: [`uptime-kuma`](https://hub.docker.com/r/uptime-kuma), 4, upstream -* **Healthcheck**: Yes +* **Healthcheck**: No * **Backups**: Yes * **Email**: No * **Tests**: No diff --git a/compose.mariadb.yml b/compose.mariadb.yml index 585a8ee..34b3e55 100644 --- a/compose.mariadb.yml +++ b/compose.mariadb.yml @@ -5,9 +5,8 @@ services: app: secrets: - db_password - networks: - - internal environment: + - UPTIME_KUMA_GH_REPO=louislam:uptime-kuma - UPTIME_KUMA_DB_TYPE=mariadb - UPTIME_KUMA_DB_HOSTNAME=db - UPTIME_KUMA_DB_PORT=3306 @@ -31,25 +30,10 @@ services: secrets: - db_password - db_root_password - deploy: - labels: - backupbot.backup: "${ENABLE_BACKUPS:-true}" - backupbot.backup.pre-hook: "mariadb-dump --single-transaction -u root -p\"$$(cat /run/secrets/db_root_password)\" kuma | gzip > /var/lib/mysql/dump.sql.gz" - backupbot.backup.volumes.mariadb.path: "dump.sql.gz" - backupbot.restore.post-hook: "gzip -d /var/lib/mysql/dump.sql.gz && mariadb -u root -p\"$$(cat /run/secrets/db_root_password)\" kuma < /var/lib/mysql/dump.sql && rm -f /var/lib/mysql/dump.sql" - healthcheck: - test: ["CMD-SHELL", 'mariadb-admin -p"$$(cat $MYSQL_ROOT_PASSWORD_FILE)" ping'] - interval: 30s - timeout: 10s - retries: 10 - start_period: 1m volumes: mariadb: -networks: - internal: - secrets: db_password: external: true diff --git a/compose.yml b/compose.yml index bd6ce4c..15433c4 100644 --- a/compose.yml +++ b/compose.yml @@ -6,38 +6,79 @@ services: image: louislam/uptime-kuma:2.2.1 volumes: - data:/app/data + secrets: + - db_password networks: + - internal - proxy environment: - - UPTIME_KUMA_GH_REPO + - UPTIME_KUMA_GH_REPO=louislam:uptime-kuma - UPTIME_KUMA_DB_TYPE=sqlite + depends_on: + - db configs: - source: app_entrypoint target: /docker-entrypoint.sh mode: 0555 entrypoint: /docker-entrypoint.sh deploy: + update_config: + failure_action: rollback + order: start-first labels: - "traefik.enable=true" - "traefik.http.services.${STACK_NAME}.loadbalancer.server.port=3001" - "traefik.http.routers.${STACK_NAME}.rule=Host(`${DOMAIN}`${EXTRA_DOMAINS})" - "traefik.http.routers.${STACK_NAME}.entrypoints=web-secure" - "traefik.http.routers.${STACK_NAME}.tls.certresolver=${LETS_ENCRYPT_ENV}" + ## Redirect from EXTRA_DOMAINS to DOMAIN + #- "traefik.http.routers.${STACK_NAME}.middlewares=${STACK_NAME}-redirect" + #- "traefik.http.middlewares.${STACK_NAME}-redirect.headers.SSLForceHost=true" + #- "traefik.http.middlewares.${STACK_NAME}-redirect.headers.SSLHost=${DOMAIN}" - "coop-cloud.${STACK_NAME}.version=2.0.0+2.0.0-beta.1" - - "backupbot.backup=${ENABLE_BACKUPS:-true}" healthcheck: test: "curl -L localhost:3001" interval: 30s timeout: 10s retries: 5 start_period: 2m + db: + image: mariadb:11.8 + environment: + - MYSQL_ROOT_PASSWORD_FILE=/run/secrets/db_root_password + - MYSQL_PASSWORD_FILE=/run/secrets/db_password + - MYSQL_USER=kuma + - MYSQL_DATABASE=kuma + volumes: + - mariadb:/var/lib/mysql + networks: + - internal + secrets: + - db_password + - db_root_password + deploy: + labels: + backupbot.backup: "${ENABLE_BACKUPS:-true}" + backupbot.backup.pre-hook: "mariadb-dump --single-transaction -u root -p\"$$(cat /run/secrets/db_root_password)\" kuma | gzip > /var/lib/mysql/dump.sql.gz" + backupbot.backup.volumes.mariadb.path: "dump.sql.gz" + backupbot.restore.post-hook: "gzip -d /var/lib/mysql/dump.sql.gz && mariadb -u root -p\"$$(cat /run/secrets/db_root_password)\" kuma < /var/lib/mysql/dump.sql && rm -f /var/lib/mysql/dump.sql" volumes: + mariadb: data: networks: proxy: external: true + internal: + +secrets: + db_password: + external: true + name: ${STACK_NAME}_db_password_${SECRET_DB_PASSWORD_VERSION} + db_root_password: + external: true + name: ${STACK_NAME}_db_root_password_${SECRET_DB_ROOT_PASSWORD_VERSION} configs: app_entrypoint: diff --git a/entrypoint.sh.tmpl b/entrypoint.sh.tmpl index 1677f98..d632eab 100644 --- a/entrypoint.sh.tmpl +++ b/entrypoint.sh.tmpl @@ -24,7 +24,7 @@ file_env() { unset "$fileVar" } -#file_env "UPTIME_KUMA_DB_PASSWORD" +file_env "UPTIME_KUMA_DB_PASSWORD" # upstream startup command cd /app From 564441ab064b042b8bd217a19cd3170b43264750 Mon Sep 17 00:00:00 2001 From: stevensting Date: Tue, 31 Mar 2026 18:47:09 +0200 Subject: [PATCH 4/6] add pull request template --- .gitea/PULL_REQUEST_TEMPLATE.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 .gitea/PULL_REQUEST_TEMPLATE.md diff --git a/.gitea/PULL_REQUEST_TEMPLATE.md b/.gitea/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..372b4d6 --- /dev/null +++ b/.gitea/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,16 @@ +--- +name: "Uptime Kuma pull request template" +about: "Uptime Kuma pull request template" +--- + + + +* [ ] I have deployed and tested my changes +* [ ] I have [updated relevant versions in `abra.sh`](https://docs.coopcloud.tech/maintainers/upgrade/#updating-versions-in-the-abrash) +* [ ] I have made my environment variable changes [backwards compatible](https://docs.coopcloud.tech/maintainers/upgrade/#backwards-compatible-environment-variable-changes) +* [ ] I have added a [release note entry](https://docs.coopcloud.tech/maintainers/upgrade/#creating-new-release-notes) From 1876e3555dbc99c4b1c453162a49aa153c4ea078 Mon Sep 17 00:00:00 2001 From: stevensting Date: Wed, 1 Apr 2026 06:33:57 +0000 Subject: [PATCH 5/6] added recipe linting --- .gitea/PULL_REQUEST_TEMPLATE.md | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitea/PULL_REQUEST_TEMPLATE.md b/.gitea/PULL_REQUEST_TEMPLATE.md index 372b4d6..82595f8 100644 --- a/.gitea/PULL_REQUEST_TEMPLATE.md +++ b/.gitea/PULL_REQUEST_TEMPLATE.md @@ -13,4 +13,5 @@ Feel free to remove this comment. * [ ] I have deployed and tested my changes * [ ] I have [updated relevant versions in `abra.sh`](https://docs.coopcloud.tech/maintainers/upgrade/#updating-versions-in-the-abrash) * [ ] I have made my environment variable changes [backwards compatible](https://docs.coopcloud.tech/maintainers/upgrade/#backwards-compatible-environment-variable-changes) +* [ ] I ran `abra recipe lint uptime-kuma --chaos` on the PR's branch and fixed the warnings. * [ ] I have added a [release note entry](https://docs.coopcloud.tech/maintainers/upgrade/#creating-new-release-notes) From ea9e14c357a2f289a28bc0450d1d1961ae77f417 Mon Sep 17 00:00:00 2001 From: stevensting Date: Wed, 1 Apr 2026 14:53:28 +0000 Subject: [PATCH 6/6] add standard reviewer --- renovate.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/renovate.json b/renovate.json index 5db72dd..f4e7cbb 100644 --- a/renovate.json +++ b/renovate.json @@ -2,5 +2,8 @@ "$schema": "https://docs.renovatebot.com/renovate-schema.json", "extends": [ "config:recommended" + ], + "reviewers": [ + "stevensting" ] }