Commit Graph

174 Commits

Author SHA1 Message Date
a0eb5dcc8f refactor: promote backup configuration to structured SQL fields
Add explicit Django model fields for global and host backup settings,
including SSH, rsync, source, excludes, and retention configuration.
Populate them from legacy JSON during migration, make the config
repository prefer structured fields, and update import/admin/tests around
the SQL-first configuration model.
2026-05-19 05:04:49 +02:00
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