feat: make Django configs drive backups and scheduling

Treat SQL-backed Django models as the source of truth for pobsync
configuration, exporting runtime YAML only as a compatibility layer for
the existing engine. Add a database-driven scheduler command, Docker
scheduler services, schedule run-state fields, and tests for scheduler,
config export, and retention behavior.
This commit is contained in:
2026-05-19 04:53:47 +02:00
parent 1a51c3e448
commit 18082496e4
13 changed files with 493 additions and 13 deletions

View File

@@ -14,6 +14,19 @@ services:
- pobsync_state:/opt/pobsync
- pobsync_db:/var/lib/pobsync
scheduler:
build: .
command: python manage.py run_pobsync_scheduler --loop --interval 60
environment:
POBSYNC_DJANGO_DEBUG: "1"
POBSYNC_DJANGO_SECRET_KEY: "dev-only-change-me"
POBSYNC_DJANGO_ALLOWED_HOSTS: "localhost,127.0.0.1,0.0.0.0"
POBSYNC_HOME: "/opt/pobsync"
POBSYNC_SQLITE_PATH: "/var/lib/pobsync/pobsync.sqlite3"
volumes:
- pobsync_state:/opt/pobsync
- pobsync_db:/var/lib/pobsync
web-mariadb:
profiles: ["mariadb"]
build: .
@@ -36,6 +49,26 @@ services:
volumes:
- pobsync_state:/opt/pobsync
scheduler-mariadb:
profiles: ["mariadb"]
build: .
command: python manage.py run_pobsync_scheduler --loop --interval 60
environment:
POBSYNC_DJANGO_DEBUG: "1"
POBSYNC_DJANGO_SECRET_KEY: "dev-only-change-me"
POBSYNC_DJANGO_ALLOWED_HOSTS: "localhost,127.0.0.1,0.0.0.0"
POBSYNC_HOME: "/opt/pobsync"
POBSYNC_DB_ENGINE: "mariadb"
POBSYNC_DB_HOST: "db"
POBSYNC_DB_NAME: "pobsync"
POBSYNC_DB_USER: "pobsync"
POBSYNC_DB_PASSWORD: "pobsync"
depends_on:
db:
condition: service_healthy
volumes:
- pobsync_state:/opt/pobsync
db:
profiles: ["mariadb"]
image: mariadb:11