Backup Config
This commit is contained in:
50
machines/hippocampus/backup.nix
Normal file
50
machines/hippocampus/backup.nix
Normal file
@@ -0,0 +1,50 @@
|
||||
{ config, lib, pkgs, ...}: let
|
||||
secretPerm = {
|
||||
owner = "root";
|
||||
mode = "0400";
|
||||
};
|
||||
in {
|
||||
imports = [
|
||||
./backups/postgresql.nix
|
||||
./backups/gitea.nix
|
||||
];
|
||||
|
||||
sops.secrets."restic/repo" = secretPerm;
|
||||
|
||||
sops.secrets."restic/passwd" = secretPerm;
|
||||
|
||||
sops.secrets."restic/backblaze" = secretPerm;
|
||||
|
||||
services.restic.backups.hippocampus = {
|
||||
user = "root";
|
||||
initialize = true;
|
||||
timerConfig = {
|
||||
OnCalendar = "03:00";
|
||||
Persistent = true;
|
||||
};
|
||||
|
||||
passwordFile = config.sops.secrets."restic/passwd".path;
|
||||
|
||||
paths = [
|
||||
"/etc/group"
|
||||
"/etc/machine-id"
|
||||
"/etc/passwd"
|
||||
"/etc/subgid"
|
||||
"/home"
|
||||
"/root"
|
||||
"/var/backup"
|
||||
"/var/lib"
|
||||
"/jelly/conf"
|
||||
];
|
||||
|
||||
# USE REPOSITORYFILE
|
||||
repositoryFile = config.sops.secrets."restic/repo".path;
|
||||
environmentFile = config.sops.secrets."restic/backblaze".path;
|
||||
|
||||
pruneOpts = [
|
||||
"--keep-daily 2"
|
||||
"--keep-weekly 4"
|
||||
"--keep-yearly 8"
|
||||
];
|
||||
};
|
||||
}
|
||||
6
machines/hippocampus/backups/gitea.nix
Normal file
6
machines/hippocampus/backups/gitea.nix
Normal file
@@ -0,0 +1,6 @@
|
||||
{ ... }: {
|
||||
services.gitea.dump = {
|
||||
enable = true;
|
||||
interval = "2:45";
|
||||
};
|
||||
}
|
||||
7
machines/hippocampus/backups/postgresql.nix
Normal file
7
machines/hippocampus/backups/postgresql.nix
Normal file
@@ -0,0 +1,7 @@
|
||||
{ config, lib, pkgs, ... }: {
|
||||
services.postgresqlBackup = {
|
||||
enable = true;
|
||||
startAt = "*-*-* 02:45:00";
|
||||
location = "/var/backup/postgresql";
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user