services: forgejo: enable backups using restic

Signed-off-by: Christoph Heiss <christoph@c8h4.io>
This commit is contained in:
Christoph Heiss 2024-06-24 23:11:25 +02:00
parent d94687c812
commit 417ff5defa
Signed by: c8h4
GPG key ID: 73D5E7FDEE3DE49A

View file

@ -1,4 +1,4 @@
{ config, my, secrets, ... }:
{ config, my, pkgs, secrets, ... }:
let fqdn = "git.${my.domain}";
in {
@ -87,6 +87,12 @@ in {
PASSWD = secrets."forgejo/mail/password".path;
};
};
dump = {
enable = true;
backupDir = "/var/backup/forgejo";
interval = "04:15";
type = "tar.zst";
};
};
assertions = let cfg = config.services.forgejo;
@ -126,4 +132,19 @@ in {
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAINVZ8zYHz1pUFzM8AKwMTWTTTvQTw10RyZJUVwXMt0FS"
];
};
services.restic.backups.forgejo = {
environmentFile = secrets."restic/rest-env".path;
initialize = true;
repository =
"${my.homelab.services.restic.repositoryBase}/${config.networking.hostName}";
passwordFile = secrets."restic/repo-password".path;
inherit (config.services.forgejo) user;
paths = [ "/var/backup/forgejo" ];
timerConfig.OnCalendar = "*-*-* 5:30:00"; # daily at 05:30
backupCleanupCommand = my.mkResticBackupNotificationCmd {
name = "forgejo";
inherit pkgs secrets;
};
};
}