added systemd service and timer for quota update

This commit is contained in:
Johannes Erwerle 2026-05-13 00:05:04 +02:00
parent ea9346d25d
commit 95fde8e58f
4 changed files with 26 additions and 4 deletions

View file

@ -78,6 +78,14 @@ Create a superuser account
``` ```
### Repository Quota Updates
The repository quotas in the UI are updated after each backup.
To update the quota during an operation the `update_used_quota` management command can be executed on a regular basis.
There are example configs for systemd-timers in `contrib/communitybackup-quota-update.service` and `contrib/communitybackup-quota-update.timer`. Adjust the paths and the timers to your needs.
## Custom pages ## Custom pages
Some pages are specific to your installation. E.g. an imprint. Some pages are specific to your installation. E.g. an imprint.

View file

@ -0,0 +1,9 @@
[Unit]
Description=Update the used quota
[Service]
User=borg
Group=borg
WorkingDirectory=/opt/community_backup/community-backup/community_backup/
ExecStart=/opt/community_backup/venv/bin/python manage.py update_used_quota
PrivateTmp=true

View file

@ -0,0 +1,9 @@
[Unit]
Description=Update the used quota on a regular basis
[Timer]
OnCalendar=*-*-* *:0/5:00
RandomizedDelaySec=120
[Install]
WantedBy=timers.target

View file

@ -10,8 +10,6 @@ class Command(BaseCommand):
parser.add_argument("--repository-id", type=int, nargs="+") parser.add_argument("--repository-id", type=int, nargs="+")
def handle(self, *args, **options): def handle(self, *args, **options):
print(options)
qs = BorgRepository.objects.all() qs = BorgRepository.objects.all()
if options.get("user_id"): if options.get("user_id"):
@ -20,8 +18,6 @@ class Command(BaseCommand):
if options.get("repository_id"): if options.get("repository_id"):
qs = qs.filter(pk__in=options.get("repository_id")) qs = qs.filter(pk__in=options.get("repository_id"))
print(qs)
for repo in qs: for repo in qs:
repo.refresh_quota() repo.refresh_quota()