Compare commits
2 Commits
cc2ea503ee
...
052792a789
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
052792a789 | ||
|
|
69f7289b4a |
@ -32,6 +32,7 @@ services:
|
|||||||
labels:
|
labels:
|
||||||
libreportal.category: "CATEGORY_DATA" #LIBREPORTAL|CATEGORY_TAG|CATEGORY_DATA
|
libreportal.category: "CATEGORY_DATA" #LIBREPORTAL|CATEGORY_TAG|CATEGORY_DATA
|
||||||
libreportal.title: "TITLE_DATA" #LIBREPORTAL|TITLE_TAG|TITLE_DATA
|
libreportal.title: "TITLE_DATA" #LIBREPORTAL|TITLE_TAG|TITLE_DATA
|
||||||
|
libreportal.backup.db: "mariadb:bookstack_db:db:"
|
||||||
traefik.enable: TRAEFIK_ENABLE_DATA #LIBREPORTAL|TRAEFIK_ENABLE_TAG|TRAEFIK_ENABLE_DATA
|
traefik.enable: TRAEFIK_ENABLE_DATA #LIBREPORTAL|TRAEFIK_ENABLE_TAG|TRAEFIK_ENABLE_DATA
|
||||||
# TRAEFIK_PORT_1_BEGIN
|
# TRAEFIK_PORT_1_BEGIN
|
||||||
traefik.http.routers.bookstack-service.entrypoints: web,websecure
|
traefik.http.routers.bookstack-service.entrypoints: web,websecure
|
||||||
|
|||||||
@ -42,6 +42,7 @@ services:
|
|||||||
labels:
|
labels:
|
||||||
libreportal.category: "CATEGORY_DATA" #LIBREPORTAL|CATEGORY_TAG|CATEGORY_DATA
|
libreportal.category: "CATEGORY_DATA" #LIBREPORTAL|CATEGORY_TAG|CATEGORY_DATA
|
||||||
libreportal.title: "TITLE_DATA" #LIBREPORTAL|TITLE_TAG|TITLE_DATA
|
libreportal.title: "TITLE_DATA" #LIBREPORTAL|TITLE_TAG|TITLE_DATA
|
||||||
|
libreportal.backup.db: "postgres:invidious-db:postgresdata:"
|
||||||
traefik.enable: TRAEFIK_ENABLE_DATA #LIBREPORTAL|TRAEFIK_ENABLE_TAG|TRAEFIK_ENABLE_DATA
|
traefik.enable: TRAEFIK_ENABLE_DATA #LIBREPORTAL|TRAEFIK_ENABLE_TAG|TRAEFIK_ENABLE_DATA
|
||||||
# TRAEFIK_PORT_1_BEGIN
|
# TRAEFIK_PORT_1_BEGIN
|
||||||
traefik.http.routers.invidious-service.entrypoints: web,websecure
|
traefik.http.routers.invidious-service.entrypoints: web,websecure
|
||||||
|
|||||||
@ -36,6 +36,7 @@ services:
|
|||||||
labels:
|
labels:
|
||||||
libreportal.category: "CATEGORY_DATA" #LIBREPORTAL|CATEGORY_TAG|CATEGORY_DATA
|
libreportal.category: "CATEGORY_DATA" #LIBREPORTAL|CATEGORY_TAG|CATEGORY_DATA
|
||||||
libreportal.title: "TITLE_DATA" #LIBREPORTAL|TITLE_TAG|TITLE_DATA
|
libreportal.title: "TITLE_DATA" #LIBREPORTAL|TITLE_TAG|TITLE_DATA
|
||||||
|
libreportal.backup.db: "postgres:mastodon-postgres:postgres:"
|
||||||
traefik.enable: TRAEFIK_ENABLE_DATA #LIBREPORTAL|TRAEFIK_ENABLE_TAG|TRAEFIK_ENABLE_DATA
|
traefik.enable: TRAEFIK_ENABLE_DATA #LIBREPORTAL|TRAEFIK_ENABLE_TAG|TRAEFIK_ENABLE_DATA
|
||||||
# TRAEFIK_PORT_1_BEGIN
|
# TRAEFIK_PORT_1_BEGIN
|
||||||
traefik.http.routers.mastodon-service.entrypoints: web,websecure
|
traefik.http.routers.mastodon-service.entrypoints: web,websecure
|
||||||
|
|||||||
@ -31,6 +31,7 @@ services:
|
|||||||
labels:
|
labels:
|
||||||
libreportal.category: "CATEGORY_DATA" #LIBREPORTAL|CATEGORY_TAG|CATEGORY_DATA
|
libreportal.category: "CATEGORY_DATA" #LIBREPORTAL|CATEGORY_TAG|CATEGORY_DATA
|
||||||
libreportal.title: "TITLE_DATA" #LIBREPORTAL|TITLE_TAG|TITLE_DATA
|
libreportal.title: "TITLE_DATA" #LIBREPORTAL|TITLE_TAG|TITLE_DATA
|
||||||
|
libreportal.backup.db: "mariadb:nextcloud-db:db_data:"
|
||||||
traefik.enable: TRAEFIK_ENABLE_DATA #LIBREPORTAL|TRAEFIK_ENABLE_TAG|TRAEFIK_ENABLE_DATA
|
traefik.enable: TRAEFIK_ENABLE_DATA #LIBREPORTAL|TRAEFIK_ENABLE_TAG|TRAEFIK_ENABLE_DATA
|
||||||
# TRAEFIK_PORT_1_BEGIN
|
# TRAEFIK_PORT_1_BEGIN
|
||||||
traefik.http.routers.nextcloud-service.entrypoints: web,websecure
|
traefik.http.routers.nextcloud-service.entrypoints: web,websecure
|
||||||
|
|||||||
@ -32,6 +32,7 @@ services:
|
|||||||
labels:
|
labels:
|
||||||
libreportal.category: "CATEGORY_DATA" #LIBREPORTAL|CATEGORY_TAG|CATEGORY_DATA
|
libreportal.category: "CATEGORY_DATA" #LIBREPORTAL|CATEGORY_TAG|CATEGORY_DATA
|
||||||
libreportal.title: "TITLE_DATA" #LIBREPORTAL|TITLE_TAG|TITLE_DATA
|
libreportal.title: "TITLE_DATA" #LIBREPORTAL|TITLE_TAG|TITLE_DATA
|
||||||
|
libreportal.backup.db: "mariadb:owncloud-mariadb:mysql:"
|
||||||
traefik.enable: TRAEFIK_ENABLE_DATA #LIBREPORTAL|TRAEFIK_ENABLE_TAG|TRAEFIK_ENABLE_DATA
|
traefik.enable: TRAEFIK_ENABLE_DATA #LIBREPORTAL|TRAEFIK_ENABLE_TAG|TRAEFIK_ENABLE_DATA
|
||||||
# TRAEFIK_PORT_1_BEGIN
|
# TRAEFIK_PORT_1_BEGIN
|
||||||
traefik.http.routers.owncloud-service.entrypoints: web,websecure
|
traefik.http.routers.owncloud-service.entrypoints: web,websecure
|
||||||
|
|||||||
@ -41,7 +41,12 @@ backupAppStart()
|
|||||||
dockerComposePause "$stored_app_name" 2>/dev/null || dockerComposeDown "$stored_app_name"
|
dockerComposePause "$stored_app_name" 2>/dev/null || dockerComposeDown "$stored_app_name"
|
||||||
elif [[ "$strategy" == "live" ]]; then
|
elif [[ "$strategy" == "live" ]]; then
|
||||||
isNotice "Live strategy — containers stay running; databases dumped consistently"
|
isNotice "Live strategy — containers stay running; databases dumped consistently"
|
||||||
backupDbDump "$stored_app_name"
|
if ! backupDbDump "$stored_app_name"; then
|
||||||
|
isError "Live database dump failed — falling back to stop-snapshot-start for safety"
|
||||||
|
sudo rm -rf "${containers_dir:?}$stored_app_name/.lp-backup"
|
||||||
|
strategy="stop-snapshot-start"
|
||||||
|
dockerComposeDown "$stored_app_name"
|
||||||
|
fi
|
||||||
else
|
else
|
||||||
dockerComposeDown "$stored_app_name"
|
dockerComposeDown "$stored_app_name"
|
||||||
fi
|
fi
|
||||||
|
|||||||
@ -159,7 +159,12 @@ backupDbDump()
|
|||||||
isNotice "Dumping sqlite ($path) — live, consistent"
|
isNotice "Dumping sqlite ($path) — live, consistent"
|
||||||
local src="$app_dir/$path"
|
local src="$app_dir/$path"
|
||||||
if [[ ! -f "$src" ]]; then
|
if [[ ! -f "$src" ]]; then
|
||||||
isNotice "sqlite file $path not present yet — skipping"
|
# Declared but not found — could be a fresh app, or a wrong
|
||||||
|
# path. Treat as a dump failure so the caller falls back to
|
||||||
|
# the safe stop-snapshot-start rather than snapshotting a
|
||||||
|
# live sqlite file untorn.
|
||||||
|
isError "sqlite file $path not found — cannot dump"
|
||||||
|
rc=1
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
# .backup takes a consistent copy even while the app writes.
|
# .backup takes a consistent copy even while the app writes.
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user