backups
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
#!/bin/bash
|
||||
# {{ ansible_managed }}
|
||||
# Dump application databases to {{ backup_dump_dir }}
|
||||
# for pickup by the backup host
|
||||
set -euo pipefail
|
||||
umask 077
|
||||
DEST={{ backup_dump_dir }}
|
||||
mkdir -p "$DEST"
|
||||
|
||||
# MariaDB stacks: dump via the stack's `db` service using its own env creds.
|
||||
dump_mariadb() { # <stack dir under /opt> <output file>
|
||||
docker compose -f "/opt/$1/docker-compose.yml" exec -T db sh -c \
|
||||
'exec mariadb-dump --single-transaction --quick --routines --events \
|
||||
-u"$MARIADB_USER" -p"$MARIADB_PASSWORD" "$MARIADB_DATABASE"' \
|
||||
| gzip > "$DEST/$2.tmp"
|
||||
mv "$DEST/$2.tmp" "$DEST/$2"
|
||||
}
|
||||
dump_mariadb nextcloud nextcloud.sql.gz
|
||||
dump_mariadb gitea gitea.sql.gz
|
||||
dump_mariadb hdwiki mediawikidb.sql.gz
|
||||
|
||||
# Authentik PostgreSQL (docker compose)
|
||||
docker compose -f /opt/authentik/docker-compose.yml exec -T postgresql \
|
||||
pg_dump -U authentik -d authentik | gzip > "$DEST/authentik.sql.gz.tmp"
|
||||
mv "$DEST/authentik.sql.gz.tmp" "$DEST/authentik.sql.gz"
|
||||
|
||||
# Drone CI sqlite (online-safe consistent copy)
|
||||
sqlite3 /opt/drone/drone/database.sqlite ".backup '$DEST/drone.sqlite.tmp'"
|
||||
mv "$DEST/drone.sqlite.tmp" "$DEST/drone.sqlite"
|
||||
|
||||
date --iso-8601=seconds > "$DEST/LAST_DUMP"
|
||||
Reference in New Issue
Block a user