fmt and lint
This commit is contained in:
parent
ac2780eb5b
commit
30b3066a55
1 changed files with 76 additions and 74 deletions
|
|
@ -95,84 +95,86 @@ in {
|
||||||
};
|
};
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
services.tor.relay.onionServices =
|
services = {
|
||||||
builtins.foldl'
|
tor.relay.onionServices =
|
||||||
(acc: key:
|
builtins.foldl'
|
||||||
acc
|
(acc: key:
|
||||||
// {
|
|
||||||
"${key}" = {
|
|
||||||
map = [80];
|
|
||||||
inherit (cfg.${key}.onion) secretKey;
|
|
||||||
};
|
|
||||||
})
|
|
||||||
{}
|
|
||||||
(builtins.attrNames cfg);
|
|
||||||
|
|
||||||
services.caddy = {
|
|
||||||
enable = true;
|
|
||||||
virtualHosts = builtins.foldl' (acc: key: let
|
|
||||||
site = cfg.${key};
|
|
||||||
vhostKey = "${site.url} ${site.onion.url}";
|
|
||||||
extraCfg = ''
|
|
||||||
${site.virtualHostConfig or ""}
|
|
||||||
header Onion-Location ${site.onion.url}
|
|
||||||
'';
|
|
||||||
in
|
|
||||||
acc
|
|
||||||
// {
|
|
||||||
"${vhostKey}" = {
|
|
||||||
extraConfig = extraCfg;
|
|
||||||
};
|
|
||||||
}) {} (builtins.attrNames cfg);
|
|
||||||
};
|
|
||||||
|
|
||||||
services.borgbackup.jobs =
|
|
||||||
builtins.foldl'
|
|
||||||
(acc: key: let
|
|
||||||
site = cfg.${key};
|
|
||||||
dump = site.backup.database;
|
|
||||||
paths = builtins.concatLists [
|
|
||||||
site.backup.paths
|
|
||||||
(
|
|
||||||
if dump != null
|
|
||||||
then ["/var/backup/${key}.sql"]
|
|
||||||
else []
|
|
||||||
)
|
|
||||||
];
|
|
||||||
preHook = lib.mkIf (dump != null) ''
|
|
||||||
mkdir -p /var/backup
|
|
||||||
${pkgs.sudo}/bin/sudo -u postgres pg_dump ${dump} > /var/backup/postgres/${key}.sql
|
|
||||||
'';
|
|
||||||
postHook = lib.mkIf (dump != null) ''
|
|
||||||
rm -f /var/backup/postgres/${key}.sql
|
|
||||||
'';
|
|
||||||
in
|
|
||||||
if site.backup.enable
|
|
||||||
then
|
|
||||||
acc
|
acc
|
||||||
// {
|
// {
|
||||||
"${key}" = {
|
"${key}" = {
|
||||||
repo = backup_cfg.borgRepository + "/./${key}";
|
map = [80];
|
||||||
environment = {
|
inherit (cfg.${key}.onion) secretKey;
|
||||||
BORG_RSH = "ssh -i ${backup_cfg.borgSSHKey} -o 'StrictHostKeyChecking=no'";
|
|
||||||
};
|
|
||||||
inherit paths;
|
|
||||||
encryption = {
|
|
||||||
mode = "keyfile";
|
|
||||||
passCommand = backup_cfg.borgPassCommand;
|
|
||||||
};
|
|
||||||
compression = "auto,lzma";
|
|
||||||
startAt = "daily";
|
|
||||||
prune.keep = {
|
|
||||||
daily = 7;
|
|
||||||
weekly = 4;
|
|
||||||
monthly = -1;
|
|
||||||
};
|
|
||||||
inherit preHook;
|
|
||||||
inherit postHook;
|
|
||||||
};
|
};
|
||||||
}
|
})
|
||||||
else acc) {} (builtins.attrNames cfg);
|
{}
|
||||||
|
(builtins.attrNames cfg);
|
||||||
|
|
||||||
|
caddy = {
|
||||||
|
enable = true;
|
||||||
|
virtualHosts = builtins.foldl' (acc: key: let
|
||||||
|
site = cfg.${key};
|
||||||
|
vhostKey = "${site.url} ${site.onion.url}";
|
||||||
|
extraCfg = ''
|
||||||
|
${site.virtualHostConfig or ""}
|
||||||
|
header Onion-Location ${site.onion.url}
|
||||||
|
'';
|
||||||
|
in
|
||||||
|
acc
|
||||||
|
// {
|
||||||
|
"${vhostKey}" = {
|
||||||
|
extraConfig = extraCfg;
|
||||||
|
};
|
||||||
|
}) {} (builtins.attrNames cfg);
|
||||||
|
};
|
||||||
|
|
||||||
|
borgbackup.jobs =
|
||||||
|
builtins.foldl'
|
||||||
|
(acc: key: let
|
||||||
|
site = cfg.${key};
|
||||||
|
dump = site.backup.database;
|
||||||
|
paths = builtins.concatLists [
|
||||||
|
site.backup.paths
|
||||||
|
(
|
||||||
|
if dump != null
|
||||||
|
then ["/var/backup/${key}.sql"]
|
||||||
|
else []
|
||||||
|
)
|
||||||
|
];
|
||||||
|
preHook = lib.mkIf (dump != null) ''
|
||||||
|
mkdir -p /var/backup
|
||||||
|
${pkgs.sudo}/bin/sudo -u postgres pg_dump ${dump} > /var/backup/postgres/${key}.sql
|
||||||
|
'';
|
||||||
|
postHook = lib.mkIf (dump != null) ''
|
||||||
|
rm -f /var/backup/postgres/${key}.sql
|
||||||
|
'';
|
||||||
|
in
|
||||||
|
if site.backup.enable
|
||||||
|
then
|
||||||
|
acc
|
||||||
|
// {
|
||||||
|
"${key}" = {
|
||||||
|
repo = backup_cfg.borgRepository + "/./${key}";
|
||||||
|
environment = {
|
||||||
|
BORG_RSH = "ssh -i ${backup_cfg.borgSSHKey} -o 'StrictHostKeyChecking=no'";
|
||||||
|
};
|
||||||
|
inherit paths;
|
||||||
|
encryption = {
|
||||||
|
mode = "keyfile";
|
||||||
|
passCommand = backup_cfg.borgPassCommand;
|
||||||
|
};
|
||||||
|
compression = "auto,lzma";
|
||||||
|
startAt = "daily";
|
||||||
|
prune.keep = {
|
||||||
|
daily = 7;
|
||||||
|
weekly = 4;
|
||||||
|
monthly = -1;
|
||||||
|
};
|
||||||
|
inherit preHook;
|
||||||
|
inherit postHook;
|
||||||
|
};
|
||||||
|
}
|
||||||
|
else acc) {} (builtins.attrNames cfg);
|
||||||
|
};
|
||||||
|
|
||||||
systemd.tmpfiles.settings = {
|
systemd.tmpfiles.settings = {
|
||||||
"99-borgdatabasebackups"."/var/backup/postgres".d = {
|
"99-borgdatabasebackups"."/var/backup/postgres".d = {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue