Skip to content

Instantly share code, notes, and snippets.

@fsmv
Last active March 1, 2025 17:55
Show Gist options
  • Save fsmv/af6bfc336898e010e0e2957cafa3667c to your computer and use it in GitHub Desktop.
Save fsmv/af6bfc336898e010e0e2957cafa3667c to your computer and use it in GitHub Desktop.
Auto update and backup scripts for Vaultwarden
cd vaultwarden.git
LATEST=`git tag --sort=version:refname | tail -1`
CURRENT=`git describe --exact-match --tags`
if [ "$LATEST" != "$CURRENT" ]; then
echo "Update from $CURRENT to $LATEST available."
git fetch --tags
git checkout $LATEST
cd ..
OUTPUT=`./recompile.sh`
ERR=$?
if [ $ERR -ne 0 ]; then
printf "Attempted to compile version $LATEST.\n\n$OUTPUT" | mail -s "Vaultwarden compile failed!" root
echo "Failed to compile vaultwarden."
exit 1
fi
echo "Restarting vaultwarden with the new version."
killall vaultwarden
sleep 1s
./vaultwarden &
echo "Waiting to make sure it doesn't crash."
sleep 30s
ps | grep -q '[v]aultwarden'
WORKING=$?
if [ $WORKING -eq 0 ]; then
printf "Updated from version %s to %s.\n\nhttps://github.com/dani-garcia/vaultwarden/releases/tag/%s" $CURRENT $LATEST $LATEST | mail -s "Vaultwarden updated." root
echo "Success!"
else
printf "Updated from version %s to %s.\n\nhttps://github.com/dani-garcia/vaultwarden/releases/tag/%s" $CURRENT $LATEST $LATEST | mail -s "Vaultwarden updated crashed!" root
echo "Vaultwarden crashed."
fi
fi
function backup {
rsync --archive --mkpath \
--xattrs --atimes \
"$@"
}
ENVFILE=/home/vaultwarden/.env
DATA_DIR=/home/vaultwarden/data/
SQLITE=/home/vaultwarden/sqldb/db.sqlite3
OUTPUT=/storage/vaultwarden-backup
backup --exclude=tmp --exclude=icon_cache "$DATA_DIR" "$OUTPUT/data"
backup "$ENVFILE" "$OUTPUT/.env"
mkdir -p "$OUTPUT/sqldb" && sqlite3 "$SQLITE" ".backup $OUTPUT/sqldb/db.sqlite3"
cd vaultwarden.git
cargo build --features sqlite --release
cd ..
mv vaultwarden vaultwarden.old
cp vaultwarden.git/target/release/vaultwarden ./
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment