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>
20 lines
339 B
YAML
20 lines
339 B
YAML
name: avtoambor
|
|
|
|
services:
|
|
app:
|
|
build: .
|
|
image: avtoambor:dev
|
|
container_name: avtoambor
|
|
working_dir: /app
|
|
user: node
|
|
ports:
|
|
- "5173:5173"
|
|
- "3000:3000"
|
|
volumes:
|
|
- .:/app
|
|
- ./data:/app/data
|
|
environment:
|
|
- NODE_ENV=development
|
|
- TZ=Asia/Dushanbe
|
|
command: npm run dev
|