summaryrefslogtreecommitdiffstats
path: root/nixos/modules/services
diff options
context:
space:
mode:
authorSandro <sandro.jaeckel@gmail.com>2024-06-25 22:37:56 +0200
committerGitHub <noreply@github.com>2024-06-25 22:37:56 +0200
commit5b0ea759a7ad6fe745391e2d3a041f26417a8fcb (patch)
tree1c85756f023cece9b4d0e52ad97bfff8b0cc0bc9 /nixos/modules/services
parent42bd9223f5f65450f31f2d8eae6a8863dce10a62 (diff)
parent72406a54e79044a7480b71cfba3b773fb2e40419 (diff)
Merge pull request #318347 from caffineehacker/vaultwarden_backup
nixos/vaultwarden: backup all rsa_keys
Diffstat (limited to 'nixos/modules/services')
-rw-r--r--nixos/modules/services/security/vaultwarden/backup.sh18
1 files changed, 11 insertions, 7 deletions
diff --git a/nixos/modules/services/security/vaultwarden/backup.sh b/nixos/modules/services/security/vaultwarden/backup.sh
index 7668da5bc88f..0c1cd3aa544f 100644
--- a/nixos/modules/services/security/vaultwarden/backup.sh
+++ b/nixos/modules/services/security/vaultwarden/backup.sh
@@ -1,17 +1,21 @@
#!/usr/bin/env bash
+# Allow use of !() when copying to not copy certain files
+shopt -s extglob
+
# Based on: https://github.com/dani-garcia/vaultwarden/wiki/Backing-up-your-vault
if [ ! -d "$BACKUP_FOLDER" ]; then
echo "Backup folder '$BACKUP_FOLDER' does not exist" >&2
exit 1
fi
-if [[ ! -f "$DATA_FOLDER"/db.sqlite3 ]]; then
- echo "Could not find SQLite database file '$DATA_FOLDER/db.sqlite3'" >&2
- exit 1
+if [[ -f "$DATA_FOLDER"/db.sqlite3 ]]; then
+ sqlite3 "$DATA_FOLDER"/db.sqlite3 ".backup '$BACKUP_FOLDER/db.sqlite3'"
+fi
+
+if [ ! -d "$DATA_FOLDER" ]; then
+ echo "No data folder (yet). This will happen on first launch if backup is triggered before vaultwarden has started."
+ exit 0
fi
-sqlite3 "$DATA_FOLDER"/db.sqlite3 ".backup '$BACKUP_FOLDER/db.sqlite3'"
-cp "$DATA_FOLDER"/rsa_key.{der,pem,pub.der} "$BACKUP_FOLDER"
-cp -r "$DATA_FOLDER"/attachments "$BACKUP_FOLDER"
-cp -r "$DATA_FOLDER"/icon_cache "$BACKUP_FOLDER"
+cp -r "$DATA_FOLDER"/!(db.*) "$BACKUP_FOLDER"/