|
19 | 19 | echo "Vaultwarden backup directory $DIR already exists, skipping backup"
|
20 | 20 | exit 0
|
21 | 21 | fi
|
| 22 | + if [ ! -e "${DATA_FOLDER}/db.sqlite3" ]; then |
| 23 | + echo "Vaultwarden database does not exist, skipping backup" |
| 24 | + exit 0 |
| 25 | + fi |
22 | 26 | filesize=$(stat -c%s "${DATA_FOLDER}/db.sqlite3")
|
23 |
| - if (( filesize < 50000 )); then |
| 27 | + if (( filesize < 300000 )); then |
24 | 28 | echo 'Vaultwarden database is to small - new db?, skipping backup'
|
25 | 29 | exit 0
|
26 | 30 | fi
|
|
44 | 48 | restore-vw-backup = pkgs.writeText "restore-vw-backup.sh" ''
|
45 | 49 | BACKUP="$(ls "${cfg.backupDir}"/ | tail -n1)"
|
46 | 50 | echo possibly restoring from latest backup "$BACKUP"
|
47 |
| - if [ ! -e "${DATA_FOLDER}/db.sqlite3" ] && [ ! -z "$BACKUP" ]; then |
48 |
| - cp -R ${cfg.backupDir}/"$BACKUP"/* ${DATA_FOLDER}/ |
49 |
| - chown -R ${user}:${group} ${DATA_FOLDER} |
50 |
| - else |
51 |
| - echo skipping restore |
| 51 | + if [ -z "$BACKUP" ]; then |
| 52 | + echo "No vaultwarden backup exists, skipping restore" |
| 53 | + exit 0 |
| 54 | + fi |
| 55 | + if [ ! -e "$BACKUP/rsa_key.pem" ]; then |
| 56 | + echo "No vaultwarden rsa_key.pem backup exists, skipping restore" |
| 57 | + exit 0 |
| 58 | + fi |
| 59 | + if [ ! -e "$BACKUP/db.sqlite3" ]; then |
| 60 | + echo "No vaultwarden database backup exists, skipping restore" |
| 61 | + exit 0 |
| 62 | + fi |
| 63 | + filesize=$(stat -c%s "${DATA_FOLDER}/db.sqlite3") |
| 64 | + if (( filesize > 300000 )); then |
| 65 | + echo 'Vaultwarden database exists and is over 300k in size, skipping restore' |
| 66 | + exit 0 |
52 | 67 | fi
|
| 68 | + echo "Restoring vaultwarden backup" |
| 69 | + rm -rf "${DATA_FOLDER}/*" |
| 70 | + cp -R ${cfg.backupDir}/"$BACKUP"/* ${DATA_FOLDER}/ |
| 71 | + chown -R ${user}:${group} ${DATA_FOLDER} |
53 | 72 | '';
|
54 | 73 | in {
|
55 | 74 | environment.persistence."/keep".directories = [DATA_FOLDER];
|
|
0 commit comments