Add automatic backups and an admin restore page
Scheduler ticks every 5 minutes and snapshots data/avtoambor.db (via better-sqlite3's online backup API) when the DB file's mtime has advanced. After each new backup, prune older snapshots: keep everything from the last 7 days, then one per calendar day. New /admin page lists backups with Download and Restore actions, plus a Back-up-now button. Restore takes a safety snapshot first, closes the live connection, swaps the .db file, and lets the next request reopen. Also: TZ=Asia/Dushanbe in the container so backup filenames use local time, and tzdata added to the image so TZ takes effect. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
@ -1,8 +1,10 @@
|
||||
import { getDb } from '$lib/server/db.js';
|
||||
import { startBackupScheduler } from '$lib/server/backup.js';
|
||||
|
||||
// Open (and warm) the database on server startup so the first request
|
||||
// doesn't pay the cost.
|
||||
getDb();
|
||||
startBackupScheduler();
|
||||
|
||||
/** @type {import('@sveltejs/kit').Handle} */
|
||||
export async function handle({ event, resolve }) {
|
||||
|
||||
Reference in New Issue
Block a user