Compare commits
42 Commits
0.5.1+1.23
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| dfed87a39f | |||
| 8aaafecf5b | |||
| 3b2a3fc5e9 | |||
| e59db61344 | |||
| 4be91e3fe6 | |||
| b21ab2c07e | |||
| ba9e059039 | |||
| 4493f6ad6c | |||
| ce907a3c4a | |||
| 5fc90c6386 | |||
| 69a0443f6e | |||
| 31a4e77938 | |||
| ea9e14c357 | |||
| 1876e3555d | |||
| 564441ab06 | |||
| 7897cae890 | |||
| f41d89d320 | |||
| 773fdeb412 | |||
| 59ed487328 | |||
| ca67375a56 | |||
| b51e8f8f45 | |||
| 436014726c | |||
| cc408eb56a | |||
| 65e0407ed7 | |||
| a2fc13d45b | |||
| 185e2f4fe8 | |||
| 61d122b455 | |||
| 769b0bdf2b | |||
| 83b4479bb6 | |||
| fbecd487bd | |||
| 80334f05f3 | |||
| 616b87296d | |||
| a8930db62c | |||
| e927d30f74 | |||
| f82019e24b | |||
| a443813998 | |||
| 9ab54dbf8d | |||
| 0d32e289b3 | |||
| c755e8e0e2 | |||
| 96faa55289 | |||
| 6dd9c27970 | |||
| eb848af0ad |
@ -32,7 +32,7 @@ steps:
|
||||
from_secret: drone_abra-bot_token
|
||||
fork: true
|
||||
repositories:
|
||||
- coop-cloud/auto-recipes-catalogue-json
|
||||
- toolshed/auto-recipes-catalogue-json
|
||||
|
||||
trigger:
|
||||
event: tag
|
||||
|
||||
11
.env.sample
11
.env.sample
@ -1,8 +1,17 @@
|
||||
TYPE=uptime-kuma
|
||||
COMPOSE_FILE="compose.yml"
|
||||
LETS_ENCRYPT_ENV=production
|
||||
|
||||
DOMAIN=uptime-kuma.example.com
|
||||
|
||||
## Domain aliases
|
||||
#EXTRA_DOMAINS=', `www.uptime-kuma.example.com`'
|
||||
|
||||
LETS_ENCRYPT_ENV=production
|
||||
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=<branch name>
|
||||
17
.gitea/PULL_REQUEST_TEMPLATE.md
Normal file
17
.gitea/PULL_REQUEST_TEMPLATE.md
Normal file
@ -0,0 +1,17 @@
|
||||
---
|
||||
name: "Uptime Kuma pull request template"
|
||||
about: "Uptime Kuma pull request template"
|
||||
---
|
||||
|
||||
<!--
|
||||
Thank you for doing recipe maintenance work!
|
||||
Please mark all checklist items which are relevant for your changes.
|
||||
Please remove the checklist items which are not relevant for your changes.
|
||||
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)
|
||||
32
MAINTENANCE.md
Normal file
32
MAINTENANCE.md
Normal file
@ -0,0 +1,32 @@
|
||||
# Uptime Kuma Recipe Maintenance
|
||||
|
||||
All contributions should be made via a pull request. This is to ensure a
|
||||
certain quality and consistency, that others can rely on.
|
||||
|
||||
## Maintainer Responsibilities
|
||||
|
||||
A recipe maintainer has the following responsibilities:
|
||||
|
||||
- Respond to pull requests / issues within a week
|
||||
- Make image security updates within a day
|
||||
- Make image patch / minor updates within a week
|
||||
- Make image major updates within a month
|
||||
|
||||
In order to fullfill these responsibilities a recipe maintainer:
|
||||
|
||||
- Has to watch the repository (to get notifications)
|
||||
- Needs to make sure renovate is configured properly
|
||||
|
||||
## Pull Requests
|
||||
|
||||
A pull request can be merged if it is approved by at least one maintainer. For
|
||||
pull requests opened by a maintainer they need to be approved by another
|
||||
maintainer. Even though it is okay to merge a pull request with one approval, it
|
||||
is always better if all maintainers looked at the pull request and approved it.
|
||||
|
||||
## Become a maintainer
|
||||
|
||||
Everyone can apply to be a recipe maintainer:
|
||||
1. Watch the repository to always get updates
|
||||
2. Simply add your self to the list in the [README.md](./README.md) and open a new pull request with the change.
|
||||
3. Once the pull request gets merged you will be added to the [uptime kuma maintainers team](https://git.coopcloud.tech/org/coop-cloud/teams/uptime-kuma-maintainers).
|
||||
22
README.md
22
README.md
@ -1,14 +1,19 @@
|
||||
# uptime-kuma
|
||||
|
||||
> One line description of the recipe
|
||||
[](https://build.coopcloud.tech/coop-cloud/uptime-kuma)
|
||||
|
||||
|
||||
> A fancy self-hosted monitoring tool
|
||||
|
||||
<!-- metadata -->
|
||||
|
||||
* **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**: No
|
||||
* **Backups**: No
|
||||
* **Healthcheck**: Yes
|
||||
* **Backups**: Yes
|
||||
* **Email**: No
|
||||
* **Tests**: No
|
||||
* **SSO**: No
|
||||
@ -22,3 +27,10 @@
|
||||
* `abra app deploy <app-name>`
|
||||
|
||||
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:
|
||||
```
|
||||
#COMPOSE_FILE="$COMPOSE_FILE:compose.mariadb.yml"
|
||||
```
|
||||
|
||||
5
abra.sh
Normal file
5
abra.sh
Normal file
@ -0,0 +1,5 @@
|
||||
export APP_ENTRYPOINT_VERSION=v3
|
||||
|
||||
get_all_urls() {
|
||||
echo "select url from monitor" | mariadb -u kuma -p$(cat /run/secrets/db_password) -D kuma | sed 's|https://||' | sed 's|/.*||' | sort
|
||||
}
|
||||
59
compose.mariadb.yml
Normal file
59
compose.mariadb.yml
Normal file
@ -0,0 +1,59 @@
|
||||
---
|
||||
version: "3.8"
|
||||
|
||||
services:
|
||||
app:
|
||||
secrets:
|
||||
- db_password
|
||||
networks:
|
||||
- internal
|
||||
environment:
|
||||
- UPTIME_KUMA_DB_TYPE=mariadb
|
||||
- UPTIME_KUMA_DB_HOSTNAME=db
|
||||
- UPTIME_KUMA_DB_PORT=3306
|
||||
- UPTIME_KUMA_DB_NAME=kuma
|
||||
- UPTIME_KUMA_DB_USERNAME=kuma
|
||||
- UPTIME_KUMA_DB_PASSWORD_FILE=/run/secrets/db_password
|
||||
depends_on:
|
||||
- db
|
||||
|
||||
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"
|
||||
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
|
||||
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}
|
||||
24
compose.yml
24
compose.yml
@ -3,15 +3,20 @@ version: "3.8"
|
||||
|
||||
services:
|
||||
app:
|
||||
image: louislam/uptime-kuma:1.23.11-alpine
|
||||
image: louislam/uptime-kuma:2.2.1
|
||||
volumes:
|
||||
- data:/app/data
|
||||
networks:
|
||||
- proxy
|
||||
environment:
|
||||
- UPTIME_KUMA_GH_REPO
|
||||
- UPTIME_KUMA_DB_TYPE=sqlite
|
||||
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"
|
||||
@ -22,9 +27,10 @@ services:
|
||||
#- "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=0.5.1+1.23.11-alpine"
|
||||
- "coop-cloud.${STACK_NAME}.version=3.0.0+2.2.1"
|
||||
- "backupbot.backup=${ENABLE_BACKUPS:-true}"
|
||||
healthcheck:
|
||||
test: 'curl -L localhost:3001'
|
||||
test: "curl -L localhost:3001"
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 5
|
||||
@ -36,3 +42,9 @@ volumes:
|
||||
networks:
|
||||
proxy:
|
||||
external: true
|
||||
|
||||
configs:
|
||||
app_entrypoint:
|
||||
name: ${STACK_NAME}_app_entrypoint_${APP_ENTRYPOINT_VERSION}
|
||||
file: entrypoint.sh.tmpl
|
||||
template_driver: golang
|
||||
|
||||
31
entrypoint.sh.tmpl
Normal file
31
entrypoint.sh.tmpl
Normal file
@ -0,0 +1,31 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
file_env() {
|
||||
local var="$1"
|
||||
local fileVar="${var}_FILE"
|
||||
local def="${2:-}"
|
||||
|
||||
if [ "${!var:-}" ] && [ "${!fileVar:-}" ]; then
|
||||
echo >&2 "error: both $var and $fileVar are set (but are exclusive)"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
local val="$def"
|
||||
|
||||
if [ "${!var:-}" ]; then
|
||||
val="${!var}"
|
||||
elif [ "${!fileVar:-}" ]; then
|
||||
val="$(< "${!fileVar}")"
|
||||
fi
|
||||
|
||||
export "$var"="$val"
|
||||
unset "$fileVar"
|
||||
}
|
||||
|
||||
#file_env "UPTIME_KUMA_DB_PASSWORD"
|
||||
|
||||
# upstream startup command
|
||||
cd /app
|
||||
node server/server.js
|
||||
29
release/1.0.0+latest
Normal file
29
release/1.0.0+latest
Normal file
@ -0,0 +1,29 @@
|
||||
!!BREAKING CHANGE!!
|
||||
|
||||
this version is using self-built docker image for uptime kuma to incorporate mariadb which is not officially supported yet. Performance with sqlite was really bad and uptime kuma became unusable at some point. Upgrading to this version requires manually exporting sqlite database and converting it to mariadb. Additionally there's been changes to the database structure between last published version in this so it's not enough to just export the tables, you actually need to add a bunch of fields. And importing groups and other tables is a big hassle, better stick to just `monitor`...
|
||||
|
||||
Here's some python to help you with this.
|
||||
|
||||
```
|
||||
#!/usr/bin/python3
|
||||
|
||||
og = open("original.sql", "r")
|
||||
new = open("ported.sql", "w")
|
||||
|
||||
for line in og:
|
||||
newline = line
|
||||
if line.startswith("INSERT INTO monitor VALUES"):
|
||||
newarr = line[27:-3].split(",")
|
||||
if len(newarr) == 77:
|
||||
kafka_producer_ssl_and_topic = ["0", "0"]
|
||||
arr = newarr[:66] + kafka_producer_ssl_and_topic + newarr[66:75] + ["'keyword'", "NULL", "NULL", "'2c'", "NULL", "0", "'{}'"]
|
||||
newline = "INSERT INTO monitor VALUES(" + ",".join(arr) + ");\n"
|
||||
else:
|
||||
newline = "--" + line
|
||||
else:
|
||||
pass
|
||||
new.writelines(newline)
|
||||
|
||||
og.close()
|
||||
new.close()
|
||||
```
|
||||
1
release/2.0.0+2.0.0-beta.1
Normal file
1
release/2.0.0+2.0.0-beta.1
Normal file
@ -0,0 +1 @@
|
||||
sqlite is the default database now, check the README.md on how to configure mariadb
|
||||
1
release/3.0.0+2.2.1
Normal file
1
release/3.0.0+2.2.1
Normal file
@ -0,0 +1 @@
|
||||
In case you are currently using MariaDb instead of the internal sqlite, you need to activate the usage of compose.mariadb.yaml in your env file. (compare .env.sample) Reason for this is that the mariadb container was removed from compose.yml
|
||||
21
release/convertmonitor.py
Executable file
21
release/convertmonitor.py
Executable file
@ -0,0 +1,21 @@
|
||||
#!/usr/bin/python3
|
||||
|
||||
og = open("original.sql", "r")
|
||||
new = open("ported.sql", "w")
|
||||
|
||||
for line in og:
|
||||
newline = line
|
||||
if line.startswith("INSERT INTO monitor VALUES"):
|
||||
newarr = line[27:-3].split(",")
|
||||
if len(newarr) == 77:
|
||||
kafka_producer_ssl_and_topic = ["0", "0"]
|
||||
arr = newarr[:66] + kafka_producer_ssl_and_topic + newarr[66:75] + ["'keyword'", "NULL", "NULL", "'2c'", "NULL", "0", "'{}'"]
|
||||
newline = "INSERT INTO monitor VALUES(" + ",".join(arr) + ");\n"
|
||||
else:
|
||||
newline = "--" + line
|
||||
else:
|
||||
pass
|
||||
new.writelines(newline)
|
||||
|
||||
og.close()
|
||||
new.close()
|
||||
9
renovate.json
Normal file
9
renovate.json
Normal file
@ -0,0 +1,9 @@
|
||||
{
|
||||
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
||||
"extends": [
|
||||
"config:recommended"
|
||||
],
|
||||
"reviewers": [
|
||||
"stevensting"
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user