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