services: navidrome: switch to sqlite .backup command for backups

Signed-off-by: Christoph Heiss <christoph@c8h4.io>
This commit is contained in:
Christoph Heiss 2024-05-13 18:43:38 +02:00
parent 28691f1999
commit fa30e23456
Signed by: c8h4
GPG key ID: 73D5E7FDEE3DE49A

View file

@ -27,15 +27,17 @@
repository =
"${my.homelab.services.restic.repositoryBase}/${config.networking.hostName}";
passwordFile = secrets."restic/repo-password".path;
paths = [ "/var/backup/navidrome.sql.zst" ];
paths = [ "/var/backup/navidrome.db.zst" ];
timerConfig.OnCalendar = "*-*-* 4:10:00"; # daily at 04:10
backupPrepareCommand = ''
set -euo pipefail
umask 0077
f=$(mktemp)
# consistency is provided by the internal locking of sqlite
${pkgs.sqlite}/bin/sqlite3 /var/lib/navidrome/navidrome.db .dump \
| ${pkgs.zstd}/bin/zstd --compress -9 \
>/var/backup/navidrome.sql.zst
${pkgs.sqlite}/bin/sqlite3 /var/lib/navidrome/navidrome.db ".backup $f"
${pkgs.zstd}/bin/zstd --compress -9 --rm --force \
-o /var/backup/navidrome.db.zst $f
'';
backupCleanupCommand = my.mkResticBackupNotificationCmd {
name = "navidrome";