outline: Configure backups

This commit is contained in:
SebastianStork 2025-09-30 23:43:54 +02:00
parent 33e53f46da
commit 996cbb34ee
2 changed files with 22 additions and 3 deletions

View file

@ -37,20 +37,21 @@
forgejo = { forgejo = {
enable = true; enable = true;
doBackups = true;
domain = "git.sstork.dev"; domain = "git.sstork.dev";
doBackups = true;
ssh.enable = true; ssh.enable = true;
}; };
hedgedoc = { hedgedoc = {
enable = true; enable = true;
doBackups = true;
domain = "docs.${sproutedDomain}"; domain = "docs.${sproutedDomain}";
doBackups = true;
}; };
outline = { outline = {
enable = true; enable = true;
domain = "wiki.${sproutedDomain}"; domain = "wiki.${sproutedDomain}";
doBackups = true;
}; };
it-tools = { it-tools = {

View file

@ -1,6 +1,14 @@
{ config, lib, ... }: {
config,
pkgs,
lib,
...
}:
let let
cfg = config.custom.services.outline; cfg = config.custom.services.outline;
dataDir = "/var/lib/outline";
inherit (config.services.outline) user;
in in
{ {
options.custom.services.outline = { options.custom.services.outline = {
@ -13,6 +21,7 @@ in
type = lib.types.port; type = lib.types.port;
default = 32886; default = 32886;
}; };
doBackups = lib.mkEnableOption "";
}; };
config = lib.mkIf cfg.enable { config = lib.mkIf cfg.enable {
@ -60,5 +69,14 @@ in
}; };
systemd.services.outline.enableStrictShellChecks = false; systemd.services.outline.enableStrictShellChecks = false;
custom.services.resticBackups.outline = lib.mkIf cfg.doBackups {
conflictingService = "outline.service";
paths = [ dataDir ];
extraConfig.backupPrepareCommand = ''
${lib.getExe pkgs.sudo} --user=${user} ${lib.getExe' config.services.postgresql.package "pg_dump"} outline --format=custom --file=${dataDir}/db.dump
'';
restoreCommand.postRestore = "sudo --user=${user} pg_restore --clean --if-exists --dbname outline ${dataDir}/db.dump";
};
}; };
} }