Commit Graph

73 Commits

Author SHA1 Message Date
100215bf11 refactor: use injected config sources for retention
Allow retention planning and pruning to use the same ConfigSource
abstraction as scheduled backups. This removes the remaining SQL-to-YAML
export dependency from Django backup runs with pruning, keeping YAML only
as a legacy CLI compatibility path.
2026-05-19 05:00:15 +02:00
bb44f8a09c refactor: inject config sources into scheduled backups
Introduce a ConfigSource interface so scheduled backups no longer need
to load host configuration directly from runtime YAML. Add a Django-backed
config source for SQL-driven backup runs, keep file-based config as the
CLI default, and make scheduled prune execution actually apply retention
after successful runs.
2026-05-19 04:57:10 +02:00
18082496e4 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.
2026-05-19 04:53:47 +02:00
1a51c3e448 feat: add Django backend foundation and Docker runtime
Add a Django admin-backed management layer for pobsync configs, runs,
snapshots, and schedules. Keep the existing CLI engine as the execution
source of truth, add import/run management commands, and provide SQLite
default plus optional MariaDB Docker Compose support.
2026-05-19 04:48:13 +02:00
27acd790bd fix an issue with link-dest pointing towards the wrong directory 2026-02-05 11:55:35 +01:00
2fc26df1e5 Update readme.md 2026-02-04 01:26:01 +01:00
1ac326eada remove some installation logic from install.py 2026-02-04 01:01:41 +01:00
7caaf46588 add new deploy script and cutting out pip as the installer 2026-02-03 22:39:13 +01:00
f30d37632b add new install commands so they align better with the doctor code and will set the bin to the correct path 2026-02-03 16:36:18 +01:00
795fe38888 add new doctor commands 2026-02-03 16:29:51 +01:00
4827889f26 feat(schedule): add scheduling commands & clarify create vs update in output 2026-02-03 14:30:55 +01:00
40b6418d7b feat(run-scheduled): add optional post-run pruning 2026-02-03 13:59:17 +01:00
93acc58770 feat(retention): add destructive apply command with safety guards 2026-02-03 12:50:35 +01:00
fdd292b1b6 feat(retention): add optional base protection to plan 2026-02-03 12:42:54 +01:00
1e5807790d feat(retention): show keep/delete details in human output 2026-02-03 12:28:09 +01:00
7a7c4ccaee feat(snapshots): add --tail option to show rsync log 2026-02-03 12:04:53 +01:00
27d7da17b2 feat(snapshots): sort list output by started_at across kinds 2026-02-03 11:58:24 +01:00
9a6d44ca21 feat(snapshots): add list/show commands and snapshot_meta helpers 2026-02-03 11:55:15 +01:00
bc1e2f5662 make meta.yml atomic and add a few things like schema_version, proper base and rsync.command 2026-02-03 11:43:24 +01:00
f67abdcc91 add a few extra commands 2026-02-03 11:11:37 +01:00
ce7eba9119 Add bytecode and build files to gitignore 2026-02-02 22:18:05 +01:00
42f7a6b3c7 Add gitignore to project 2026-02-02 22:16:22 +01:00
bc5fb21762 Commit first skeleton code for pobsync 2026-02-02 22:15:54 +01:00