mirror of
https://github.com/SebastianStork/nixos-config.git
synced 2026-01-21 21:01:34 +01:00
Move nspawn containers into nspawn directory
This commit is contained in:
parent
be488a91a7
commit
5b1fc56176
14 changed files with 2 additions and 1 deletions
59
hosts/stratus/containers/nspawn/forgejo/backup.nix
Normal file
59
hosts/stratus/containers/nspawn/forgejo/backup.nix
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
dataDir,
|
||||
...
|
||||
}:
|
||||
{
|
||||
systemd.tmpfiles.rules = [ "d ${dataDir}/backup 750 forgejo forgejo -" ];
|
||||
|
||||
security.polkit = {
|
||||
enable = true;
|
||||
extraConfig = ''
|
||||
polkit.addRule(function(action, subject) {
|
||||
if (action.id == "org.freedesktop.systemd1.manage-units" &&
|
||||
action.lookup("unit") == "forgejo.service" &&
|
||||
subject.user == "forgejo") {
|
||||
return polkit.Result.YES;
|
||||
}
|
||||
});
|
||||
'';
|
||||
};
|
||||
|
||||
myConfig.resticBackup.forgejo = {
|
||||
enable = true;
|
||||
user = config.users.users.forgejo.name;
|
||||
healthchecks.enable = true;
|
||||
|
||||
extraConfig = {
|
||||
backupPrepareCommand = ''
|
||||
${lib.getExe' pkgs.systemd "systemctl"} stop forgejo.service
|
||||
${lib.getExe' config.services.postgresql.package "pg_dump"} forgejo --format=custom --file=${dataDir}/backup/db.dump
|
||||
'';
|
||||
backupCleanupCommand = ''
|
||||
${lib.getExe' pkgs.systemd "systemctl"} start forgejo.service
|
||||
'';
|
||||
paths = [
|
||||
"${dataDir}/home/custom"
|
||||
"${dataDir}/home/data"
|
||||
"${dataDir}/home/repositories"
|
||||
"${dataDir}/home/.ssh"
|
||||
"${dataDir}/backup"
|
||||
];
|
||||
extraBackupArgs = [ "--exclude='${dataDir}/home/custom/conf/app.ini'" ];
|
||||
};
|
||||
};
|
||||
|
||||
environment.systemPackages = [
|
||||
(pkgs.writeShellApplication {
|
||||
name = "forgejo-restore";
|
||||
text = ''
|
||||
systemctl stop forgejo.service
|
||||
sudo -u forgejo restic-forgejo restore --target / latest
|
||||
sudo -u forgejo pg_restore --clean --if-exists --dbname forgejo ${dataDir}/backup/db.dump
|
||||
systemctl start forgejo.service
|
||||
'';
|
||||
})
|
||||
];
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue