fix backupCfg option for arr module
This commit is contained in:
parent
7e5a447257
commit
39c2c943a1
3 changed files with 159 additions and 8 deletions
|
@ -104,6 +104,10 @@ Currently supported services and features are:
|
||||||
- [ ] Gitea to deploy
|
- [ ] Gitea to deploy
|
||||||
- [ ] Scrutiny to monitor hard drives health
|
- [ ] Scrutiny to monitor hard drives health
|
||||||
- [ ] Export metrics to Prometheus.
|
- [ ] Export metrics to Prometheus.
|
||||||
|
- [x] Tests
|
||||||
|
- [x] Unit tests for modules.
|
||||||
|
- [x] Running in CI.
|
||||||
|
- [ ] Integration tests with real nodes.
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
|
|
|
@ -319,14 +319,16 @@ config.xml" templatedSettings) "${config.services.radarr.dataDir}/config.xml" (
|
||||||
|
|
||||||
shb.backup.instances =
|
shb.backup.instances =
|
||||||
let
|
let
|
||||||
backupConfig = name: _defaults: lib.mkIf (cfg.${name}.backupCfg != {}) {
|
backupConfig = name: _defaults: lib.mkIf (cfg.${name}.backupCfg.enable or false) ({
|
||||||
${name} = {
|
${name} = (
|
||||||
sourceDirectories = [
|
cfg.${name}.backupCfg
|
||||||
config.shb.arr.${name}.dataDir
|
// {
|
||||||
];
|
sourceDirectories = [
|
||||||
excludePatterns = [".db-shm" ".db-wal" ".mono"];
|
config.shb.arr.${name}.dataDir
|
||||||
};
|
];
|
||||||
};
|
excludePatterns = [".db-shm" ".db-wal" ".mono"];
|
||||||
|
});
|
||||||
|
});
|
||||||
in
|
in
|
||||||
lib.mkMerge (lib.mapAttrsToList backupConfig apps);
|
lib.mkMerge (lib.mapAttrsToList backupConfig apps);
|
||||||
}
|
}
|
||||||
|
|
|
@ -50,4 +50,149 @@ in
|
||||||
};
|
};
|
||||||
expr = testConfig {};
|
expr = testConfig {};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
testRadarr = {
|
||||||
|
expected = {
|
||||||
|
systemd.services.radarr = {
|
||||||
|
preStart = "ln -fs /nix/store/z7gk6xfj51sr1n1bjj6lsadjrwjxzc5d--config.xml /var/lib/radarr/config.xml.template\nrm /var/lib/radarr/config.xml || :\nsed -e \"s|%APIKEY%|$(cat /run/radarr/apikey)|\" /var/lib/radarr/config.xml.template > /var/lib/radarr/config.xml\n";
|
||||||
|
serviceConfig = {
|
||||||
|
StateDirectoryMode = "0750";
|
||||||
|
UMask = "0027";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
systemd.services.jackett = {};
|
||||||
|
systemd.tmpfiles.rules = [
|
||||||
|
"d '/var/lib/radarr' 0750 radarr radarr - -"
|
||||||
|
];
|
||||||
|
shb.backup = {};
|
||||||
|
shb.nginx.autheliaProtect = [
|
||||||
|
{
|
||||||
|
autheliaRules = [
|
||||||
|
{
|
||||||
|
domain = "radarr.example.com";
|
||||||
|
policy = "bypass";
|
||||||
|
resources = [
|
||||||
|
"^/api.*"
|
||||||
|
];
|
||||||
|
}
|
||||||
|
{
|
||||||
|
domain = "radarr.example.com";
|
||||||
|
policy = "two_factor";
|
||||||
|
subject = [
|
||||||
|
"group:arr_user"
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
domain = "example.com";
|
||||||
|
oidcEndpoint = "https://oidc.example.com";
|
||||||
|
subdomain = "radarr";
|
||||||
|
upstream = "http://127.0.0.1:7001";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
users.users.radarr.extraGroups = [ "media" ];
|
||||||
|
users.groups.radarr.members = [ "backup" ];
|
||||||
|
services.bazarr = {};
|
||||||
|
services.jackett = {};
|
||||||
|
services.lidarr = {};
|
||||||
|
services.radarr = {
|
||||||
|
enable = true;
|
||||||
|
dataDir = "/var/lib/radarr";
|
||||||
|
user = "radarr";
|
||||||
|
group = "radarr";
|
||||||
|
};
|
||||||
|
services.readarr = {};
|
||||||
|
services.sonarr = {};
|
||||||
|
};
|
||||||
|
expr = testConfig {
|
||||||
|
services.radarr.user = "radarr";
|
||||||
|
services.radarr.group = "radarr";
|
||||||
|
|
||||||
|
shb.arr.radarr = {
|
||||||
|
subdomain = "radarr";
|
||||||
|
domain = "example.com";
|
||||||
|
enable = true;
|
||||||
|
oidcEndpoint = "https://oidc.example.com";
|
||||||
|
settings = {
|
||||||
|
APIKeyFile = "/run/radarr/apikey";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
testRadarrWithBackup = {
|
||||||
|
expected = {
|
||||||
|
systemd.services.radarr = {
|
||||||
|
preStart = "ln -fs /nix/store/z7gk6xfj51sr1n1bjj6lsadjrwjxzc5d--config.xml /var/lib/radarr/config.xml.template\nrm /var/lib/radarr/config.xml || :\nsed -e \"s|%APIKEY%|$(cat /run/radarr/apikey)|\" /var/lib/radarr/config.xml.template > /var/lib/radarr/config.xml\n";
|
||||||
|
serviceConfig = {
|
||||||
|
StateDirectoryMode = "0750";
|
||||||
|
UMask = "0027";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
systemd.services.jackett = {};
|
||||||
|
systemd.tmpfiles.rules = [
|
||||||
|
"d '/var/lib/radarr' 0750 radarr radarr - -"
|
||||||
|
];
|
||||||
|
shb.backup.instances = {
|
||||||
|
radarr = {
|
||||||
|
enable = true;
|
||||||
|
sourceDirectories = [ "/var/lib/radarr" ];
|
||||||
|
excludePatterns = [ ".db-shm" ".db-wal" ".mono" ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
shb.nginx.autheliaProtect = [
|
||||||
|
{
|
||||||
|
autheliaRules = [
|
||||||
|
{
|
||||||
|
domain = "radarr.example.com";
|
||||||
|
policy = "bypass";
|
||||||
|
resources = [
|
||||||
|
"^/api.*"
|
||||||
|
];
|
||||||
|
}
|
||||||
|
{
|
||||||
|
domain = "radarr.example.com";
|
||||||
|
policy = "two_factor";
|
||||||
|
subject = [
|
||||||
|
"group:arr_user"
|
||||||
|
];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
domain = "example.com";
|
||||||
|
oidcEndpoint = "https://oidc.example.com";
|
||||||
|
subdomain = "radarr";
|
||||||
|
upstream = "http://127.0.0.1:7001";
|
||||||
|
}
|
||||||
|
];
|
||||||
|
users.users.radarr.extraGroups = [ "media" ];
|
||||||
|
users.groups.radarr.members = [ "backup" ];
|
||||||
|
services.bazarr = {};
|
||||||
|
services.jackett = {};
|
||||||
|
services.lidarr = {};
|
||||||
|
services.radarr = {
|
||||||
|
enable = true;
|
||||||
|
dataDir = "/var/lib/radarr";
|
||||||
|
user = "radarr";
|
||||||
|
group = "radarr";
|
||||||
|
};
|
||||||
|
services.readarr = {};
|
||||||
|
services.sonarr = {};
|
||||||
|
};
|
||||||
|
expr = testConfig {
|
||||||
|
services.radarr.user = "radarr";
|
||||||
|
services.radarr.group = "radarr";
|
||||||
|
|
||||||
|
shb.arr.radarr = {
|
||||||
|
subdomain = "radarr";
|
||||||
|
domain = "example.com";
|
||||||
|
enable = true;
|
||||||
|
oidcEndpoint = "https://oidc.example.com";
|
||||||
|
settings = {
|
||||||
|
APIKeyFile = "/run/radarr/apikey";
|
||||||
|
};
|
||||||
|
backupCfg = {
|
||||||
|
enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue