#!/bin/zsh # Author: Simon-Pierre Boucher # Contact: contact@spboucher.ai # Project: chat.spboucher.ai # # Nightly SQLite backup with 14-day retention. Schedule via ops/ai.spboucher.chat.backup.plist. set -euo pipefail APP_DIR="$HOME/apps/chat.spboucher.ai" DB="$APP_DIR/data/chat.db" BACKUP_DIR="$APP_DIR/data/backups" STAMP=$(date +%Y%m%d-%H%M%S) mkdir -p "$BACKUP_DIR" [ -f "$DB" ] || { echo "no database at $DB"; exit 0; } sqlite3 "$DB" ".backup '$BACKUP_DIR/chat-$STAMP.db'" gzip "$BACKUP_DIR/chat-$STAMP.db" # retention: keep 14 days find "$BACKUP_DIR" -name 'chat-*.db.gz' -mtime +14 -delete echo "backup written: $BACKUP_DIR/chat-$STAMP.db.gz"