Skip to content

Commit

Permalink
fix backupCfg option for arr module
Browse files Browse the repository at this point in the history
  • Loading branch information
ibizaman committed Nov 17, 2023
1 parent 7e5a447 commit 39c2c94
Show file tree
Hide file tree
Showing 3 changed files with 159 additions and 8 deletions.
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,10 @@ Currently supported services and features are:
- [ ] Gitea to deploy
- [ ] Scrutiny to monitor hard drives health
- [ ] Export metrics to Prometheus.
- [x] Tests
- [x] Unit tests for modules.
- [x] Running in CI.
- [ ] Integration tests with real nodes.

## Usage

Expand Down
18 changes: 10 additions & 8 deletions modules/arr.nix
Original file line number Diff line number Diff line change
Expand Up @@ -319,14 +319,16 @@ config.xml" templatedSettings) "${config.services.radarr.dataDir}/config.xml" (

shb.backup.instances =
let
backupConfig = name: _defaults: lib.mkIf (cfg.${name}.backupCfg != {}) {
${name} = {
sourceDirectories = [
config.shb.arr.${name}.dataDir
];
excludePatterns = [".db-shm" ".db-wal" ".mono"];
};
};
backupConfig = name: _defaults: lib.mkIf (cfg.${name}.backupCfg.enable or false) ({
${name} = (
cfg.${name}.backupCfg
// {
sourceDirectories = [
config.shb.arr.${name}.dataDir
];
excludePatterns = [".db-shm" ".db-wal" ".mono"];
});
});
in
lib.mkMerge (lib.mapAttrsToList backupConfig apps);
}
Expand Down
145 changes: 145 additions & 0 deletions test/modules/arr.nix
Original file line number Diff line number Diff line change
Expand Up @@ -50,4 +50,149 @@ in
};
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;
};
};
};
};
}

0 comments on commit 39c2c94

Please sign in to comment.