Menu
Public repository / 10d19fe0941c186ec244d1f0e2af6b19200dcb0c
AkurAI-Mail / backup.sh
Latest change 66e3647948f2e277afdd6ecd16939de8b6ad525f - Initial commit: AkurAI Mail UI (SvelteKit+Bun) by Ólafur Búi Ólafsson
#!/usr/bin/env bash
set -euo pipefail
APP_DIR=${APP_DIR:-/opt/akurai-mail-ui}
BACKUP_ROOT=${BACKUP_ROOT:-/opt/akurai-mail-ui-backups}
SERVICE=${SERVICE:-akurai-mail-ui}
STAMP=$(date -u +%Y%m%dT%H%M%SZ)
VERSION=$(tr -d "\n" < "$APP_DIR/VERSION" 2>/dev/null || printf "unknown")
DEST="$BACKUP_ROOT/$STAMP-$VERSION"
if ! mkdir -p "$BACKUP_ROOT" 2>/dev/null; then
sudo install -d -o "$(id -un)" -g "$(id -gn)" "$BACKUP_ROOT"
fi
mkdir -p "$DEST"
tar --exclude=node_modules --exclude=.svelte-kit --exclude=build --exclude=.git -C "$APP_DIR" -czf "$DEST/app.tar.gz" .
systemctl cat "$SERVICE" > "$DEST/$SERVICE.systemd.txt" 2>/dev/null || true
systemctl is-active "$SERVICE" > "$DEST/$SERVICE.active.txt" 2>/dev/null || true
git -C "$APP_DIR" rev-parse HEAD > "$DEST/git-head.txt" 2>/dev/null || true
ln -sfn "$DEST" "$BACKUP_ROOT/latest"
find "$BACKUP_ROOT" -mindepth 1 -maxdepth 1 -type d | sort -r | awk 'NR > 10' | while read -r old; do
rm -rf "$old"
done
echo "$DEST"