import Elysia from 'elysia'; import { triggerBackup } from '../lib/backup/scheduler'; import { requireAdmin } from '../plugin/auth'; export default new Elysia().post( '/trigger-backup', async ({ redirect }) => { // Fire-and-forget so the UI redirects immediately. The scheduler mutex // prevents overlap if the interval fires mid-run. triggerBackup().catch((err) => { console.error('[trigger-backup] failed:', err); }); return redirect('/', 303); }, { beforeHandle: requireAdmin } );