- Sync tasks to external provider when dragged to a synced Someday list (Google/Outlook/Synology) - Add Synology support to POST /api/tasks/sync endpoint - Edit recurring task series (title, interval, unit, time) all at once via new API - Make Someday and all-day areas vertically resizable with drag handles (height persisted in cookies) - Include Someday tasks in search results with list name display - Instant calendar event appearance after creation (improved optimistic update + immediate cache refresh) - Fix project color not updating on tasks when project color changes - Add database backup script for Supabase LXC v1.39.0 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
33 lines
935 B
Bash
Executable File
33 lines
935 B
Bash
Executable File
#!/bin/bash
|
|
# Automated PostgreSQL backup script
|
|
# Run via cron on the Supabase LXC: 0 */6 * * * /root/backup-db.sh
|
|
# Keeps 7 days of backups
|
|
|
|
BACKUP_DIR="/root/backups"
|
|
CONTAINER="supabase-db"
|
|
DB_NAME="postgres"
|
|
DB_USER="postgres"
|
|
KEEP_DAYS=7
|
|
|
|
mkdir -p "$BACKUP_DIR"
|
|
|
|
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
|
|
BACKUP_FILE="$BACKUP_DIR/todo_backup_${TIMESTAMP}.sql.gz"
|
|
|
|
echo "[$(date)] Starting backup..."
|
|
|
|
docker exec "$CONTAINER" pg_dump -U "$DB_USER" "$DB_NAME" --clean --if-exists | gzip > "$BACKUP_FILE"
|
|
|
|
if [ $? -eq 0 ] && [ -s "$BACKUP_FILE" ]; then
|
|
echo "[$(date)] Backup saved: $BACKUP_FILE ($(du -h "$BACKUP_FILE" | cut -f1))"
|
|
else
|
|
echo "[$(date)] ERROR: Backup failed!"
|
|
rm -f "$BACKUP_FILE"
|
|
exit 1
|
|
fi
|
|
|
|
# Remove backups older than KEEP_DAYS
|
|
find "$BACKUP_DIR" -name "todo_backup_*.sql.gz" -mtime +$KEEP_DAYS -delete
|
|
echo "[$(date)] Cleanup done. Current backups:"
|
|
ls -lh "$BACKUP_DIR"/todo_backup_*.sql.gz 2>/dev/null
|