Files
uptime-kuma/compose.mariadb.yml
2026-06-09 01:25:05 +00:00

64 lines
1.9 KiB
YAML

---
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:12.3
environment:
- MYSQL_ROOT_PASSWORD_FILE=/run/secrets/db_root_password
- MYSQL_PASSWORD_FILE=/run/secrets/db_password
- MYSQL_USER=kuma
- MYSQL_DATABASE=kuma
# Run mariadb-upgrade automatically when the data dir is from an older
# major version (e.g. 11.x -> 12.x). Needed because this overlay can be
# carried across MariaDB major bumps.
- MARIADB_AUTO_UPGRADE=1
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}