Fix
This commit is contained in:
@@ -6,6 +6,10 @@
|
|||||||
}:
|
}:
|
||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.nixarr.audiobookshelf;
|
cfg = config.nixarr.audiobookshelf;
|
||||||
|
uid = 242;
|
||||||
|
user = "streamer";
|
||||||
|
group = "streamer";
|
||||||
|
port = 9292;
|
||||||
nixarr = config.nixarr;
|
nixarr = config.nixarr;
|
||||||
in {
|
in {
|
||||||
options.nixarr.audiobookshelf = {
|
options.nixarr.audiobookshelf = {
|
||||||
@@ -43,7 +47,7 @@ in {
|
|||||||
|
|
||||||
port = mkOption {
|
port = mkOption {
|
||||||
type = types.port;
|
type = types.port;
|
||||||
default = 9292;
|
default = port;
|
||||||
example = 8000;
|
example = 8000;
|
||||||
description = ''
|
description = ''
|
||||||
Default port for Audiobookshelf. The default is 8000 in nixpkgs,
|
Default port for Audiobookshelf. The default is 8000 in nixpkgs,
|
||||||
@@ -113,7 +117,9 @@ in {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf (nixarr.enable && cfg.enable) {
|
config = let
|
||||||
|
host = if cfg.vpn.enable then "192.168.15.1" else "127.0.0.1";
|
||||||
|
in mkIf (nixarr.enable && cfg.enable) {
|
||||||
assertions = [
|
assertions = [
|
||||||
{
|
{
|
||||||
assertion = cfg.vpn.enable -> nixarr.vpn.enable;
|
assertion = cfg.vpn.enable -> nixarr.vpn.enable;
|
||||||
@@ -147,20 +153,21 @@ in {
|
|||||||
];
|
];
|
||||||
|
|
||||||
users = {
|
users = {
|
||||||
groups.streamer = {};
|
groups."${group}" = {};
|
||||||
users.streamer = {
|
users."${user}" = {
|
||||||
isSystemUser = true;
|
isSystemUser = true;
|
||||||
group = "streamer";
|
group = group;
|
||||||
|
uid = uid;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.tmpfiles.rules = [
|
systemd.tmpfiles.rules = [
|
||||||
"d '${cfg.stateDir}' 0700 streamer root - -"
|
"d '${cfg.stateDir}' 0700 ${user} root - -"
|
||||||
|
|
||||||
# Media Dirs
|
# Media Dirs
|
||||||
"d '${nixarr.mediaDir}/library/books' 0775 streamer media - -"
|
"d '${nixarr.mediaDir}/library/books' 0775 ${user} ${group} - -"
|
||||||
"d '${nixarr.mediaDir}/library/audio-books' 0775 streamer media - -"
|
"d '${nixarr.mediaDir}/library/audio-books' 0775 ${user} ${group} - -"
|
||||||
"d '${nixarr.mediaDir}/library/podcasts' 0775 streamer media - -"
|
"d '${nixarr.mediaDir}/library/podcasts' 0775 ${user} ${group} - -"
|
||||||
];
|
];
|
||||||
|
|
||||||
systemd.services.audiobookshelf = {
|
systemd.services.audiobookshelf = {
|
||||||
@@ -172,11 +179,11 @@ in {
|
|||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
IOSchedulingPriority = 0;
|
IOSchedulingPriority = 0;
|
||||||
Type = "simple";
|
Type = "simple";
|
||||||
User = cfg.user;
|
User = user;
|
||||||
Group = cfg.group;
|
Group = group;
|
||||||
StateDirectory = cfg.dataDir;
|
StateDirectory = cfg.stateDir;
|
||||||
WorkingDirectory = cfg.dataDir;
|
WorkingDirectory = cfg.stateDir;
|
||||||
ExecStart = "${cfg.package}/bin/audiobookshelf --host ${cfg.host} --port ${toString cfg.port}";
|
ExecStart = "${cfg.package}/bin/audiobookshelf --host ${host} --port ${toString cfg.port}";
|
||||||
Restart = "on-failure";
|
Restart = "on-failure";
|
||||||
|
|
||||||
# Security
|
# Security
|
||||||
@@ -195,17 +202,10 @@ in {
|
|||||||
RemoveIPC = true;
|
RemoveIPC = true;
|
||||||
PrivateMounts = true;
|
PrivateMounts = true;
|
||||||
ProtectSystem = "strict";
|
ProtectSystem = "strict";
|
||||||
ReadWritePaths = [cfg.configDir];
|
ReadWritePaths = [cfg.stateDir];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
users.users.audiobookshelf = {
|
|
||||||
isSystemUser = true;
|
|
||||||
group = cfg.group;
|
|
||||||
home = cfg.stateDir;
|
|
||||||
};
|
|
||||||
users.groups.audiobookshelf = { };
|
|
||||||
|
|
||||||
networking.firewall = mkIf cfg.expose.https.enable {
|
networking.firewall = mkIf cfg.expose.https.enable {
|
||||||
allowedTCPPorts = [80 443];
|
allowedTCPPorts = [80 443];
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -7,6 +7,8 @@
|
|||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.nixarr.bazarr;
|
cfg = config.nixarr.bazarr;
|
||||||
port = 6767;
|
port = 6767;
|
||||||
|
user = "bazarr";
|
||||||
|
group = "media";
|
||||||
nixarr = config.nixarr;
|
nixarr = config.nixarr;
|
||||||
in {
|
in {
|
||||||
options.nixarr.bazarr = {
|
options.nixarr.bazarr = {
|
||||||
@@ -78,7 +80,7 @@ in {
|
|||||||
];
|
];
|
||||||
|
|
||||||
systemd.tmpfiles.rules = [
|
systemd.tmpfiles.rules = [
|
||||||
"d '${cfg.dataDir}' 0700 bazarr root - -"
|
"d '${cfg.stateDir}' 0700 ${user} root - -"
|
||||||
];
|
];
|
||||||
|
|
||||||
systemd.services.bazarr = {
|
systemd.services.bazarr = {
|
||||||
@@ -88,8 +90,8 @@ in {
|
|||||||
|
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
Type = "simple";
|
Type = "simple";
|
||||||
User = "bazarr";
|
User = user;
|
||||||
Group = "media";
|
Group = group;
|
||||||
SyslogIdentifier = "bazarr";
|
SyslogIdentifier = "bazarr";
|
||||||
ExecStart = pkgs.writeShellScript "start-bazarr" ''
|
ExecStart = pkgs.writeShellScript "start-bazarr" ''
|
||||||
${pkgs.bazarr}/bin/bazarr \
|
${pkgs.bazarr}/bin/bazarr \
|
||||||
@@ -102,14 +104,16 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
networking.firewall = mkIf cfg.openFirewall {
|
networking.firewall = mkIf cfg.openFirewall {
|
||||||
allowedTCPPorts = [cfg.listenPort];
|
allowedTCPPorts = [cfg.port];
|
||||||
};
|
};
|
||||||
|
|
||||||
users.users.bazarr = {
|
users = {
|
||||||
isSystemUser = true;
|
users."${user}" = {
|
||||||
group = "media";
|
isSystemUser = true;
|
||||||
|
group = group;
|
||||||
|
};
|
||||||
|
groups."${group}" = {};
|
||||||
};
|
};
|
||||||
users.groups.bazarr = {};
|
|
||||||
|
|
||||||
# Enable and specify VPN namespace to confine service in.
|
# Enable and specify VPN namespace to confine service in.
|
||||||
systemd.services.bazarr.vpnConfinement = mkIf cfg.vpn.enable {
|
systemd.services.bazarr.vpnConfinement = mkIf cfg.vpn.enable {
|
||||||
|
|||||||
+15
-11
@@ -7,6 +7,9 @@
|
|||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.nixarr.jellyfin;
|
cfg = config.nixarr.jellyfin;
|
||||||
defaultPort = 8096;
|
defaultPort = 8096;
|
||||||
|
uid = 242;
|
||||||
|
user = "streamer";
|
||||||
|
group = "streamer";
|
||||||
nixarr = config.nixarr;
|
nixarr = config.nixarr;
|
||||||
in {
|
in {
|
||||||
options.nixarr.jellyfin = {
|
options.nixarr.jellyfin = {
|
||||||
@@ -138,22 +141,23 @@ in {
|
|||||||
];
|
];
|
||||||
|
|
||||||
users = {
|
users = {
|
||||||
groups.streamer = {};
|
groups."${group}" = {};
|
||||||
users.streamer = {
|
users."${user}" = {
|
||||||
isSystemUser = true;
|
isSystemUser = true;
|
||||||
group = "streamer";
|
group = group;
|
||||||
|
uid = uid;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.tmpfiles.rules = [
|
systemd.tmpfiles.rules = [
|
||||||
"d '${cfg.stateDir}' 0700 streamer root - -"
|
"d '${cfg.stateDir}' 0700 ${user} root - -"
|
||||||
|
|
||||||
# Media Dirs
|
# Media Dirs
|
||||||
"d '${nixarr.mediaDir}/library' 0775 streamer media - -"
|
"d '${nixarr.mediaDir}/library' 0775 ${user} ${group} - -"
|
||||||
"d '${nixarr.mediaDir}/library/shows' 0775 streamer media - -"
|
"d '${nixarr.mediaDir}/library/shows' 0775 ${user} ${group} - -"
|
||||||
"d '${nixarr.mediaDir}/library/movies' 0775 streamer media - -"
|
"d '${nixarr.mediaDir}/library/movies' 0775 ${user} ${group} - -"
|
||||||
"d '${nixarr.mediaDir}/library/music' 0775 streamer media - -"
|
"d '${nixarr.mediaDir}/library/music' 0775 ${user} ${group} - -"
|
||||||
"d '${nixarr.mediaDir}/library/books' 0775 streamer media - -"
|
"d '${nixarr.mediaDir}/library/books' 0775 ${user} ${group} - -"
|
||||||
];
|
];
|
||||||
|
|
||||||
# Always prioritise Jellyfin IO
|
# Always prioritise Jellyfin IO
|
||||||
@@ -162,8 +166,8 @@ in {
|
|||||||
services.jellyfin = {
|
services.jellyfin = {
|
||||||
enable = cfg.enable;
|
enable = cfg.enable;
|
||||||
package = cfg.package;
|
package = cfg.package;
|
||||||
user = "streamer";
|
user = user;
|
||||||
group = "media";
|
group = group;
|
||||||
openFirewall = cfg.openFirewall;
|
openFirewall = cfg.openFirewall;
|
||||||
logDir = "${cfg.stateDir}/log";
|
logDir = "${cfg.stateDir}/log";
|
||||||
cacheDir = "${cfg.stateDir}/cache";
|
cacheDir = "${cfg.stateDir}/cache";
|
||||||
|
|||||||
@@ -8,6 +8,9 @@ with lib; let
|
|||||||
cfg = config.nixarr.jellyseerr;
|
cfg = config.nixarr.jellyseerr;
|
||||||
nixarr = config.nixarr;
|
nixarr = config.nixarr;
|
||||||
port = 5055;
|
port = 5055;
|
||||||
|
uid = 294;
|
||||||
|
user = "jellyseerr";
|
||||||
|
group = "jellyseerr";
|
||||||
in {
|
in {
|
||||||
options.nixarr.jellyseerr = {
|
options.nixarr.jellyseerr = {
|
||||||
enable = mkOption {
|
enable = mkOption {
|
||||||
@@ -184,16 +187,13 @@ in {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
users.users = mkIf (cfg.user == "jellyseerr") {
|
users = {
|
||||||
jellyseerr = {
|
users."${user}" = {
|
||||||
group = cfg.group;
|
isSystemUser = true;
|
||||||
home = cfg.configDir;
|
group = group;
|
||||||
uid = 294;
|
uid = uid;
|
||||||
};
|
};
|
||||||
};
|
groups."${group}" = {};
|
||||||
|
|
||||||
users.groups = mkIf (cfg.group == "jellyseerr") {
|
|
||||||
jellyseerr = {};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
networking.firewall = mkIf cfg.expose.https.enable {
|
networking.firewall = mkIf cfg.expose.https.enable {
|
||||||
|
|||||||
@@ -8,6 +8,8 @@ with lib; let
|
|||||||
cfg = config.nixarr.lidarr;
|
cfg = config.nixarr.lidarr;
|
||||||
nixarr = config.nixarr;
|
nixarr = config.nixarr;
|
||||||
port = 8686;
|
port = 8686;
|
||||||
|
user = "lidarr";
|
||||||
|
group = "media";
|
||||||
in {
|
in {
|
||||||
options.nixarr.lidarr = {
|
options.nixarr.lidarr = {
|
||||||
enable = mkOption {
|
enable = mkOption {
|
||||||
@@ -80,8 +82,8 @@ in {
|
|||||||
services.lidarr = {
|
services.lidarr = {
|
||||||
enable = cfg.enable;
|
enable = cfg.enable;
|
||||||
package = cfg.package;
|
package = cfg.package;
|
||||||
user = "lidarr";
|
user = user;
|
||||||
group = "media";
|
group = group;
|
||||||
settings.server.port = cfg.port;
|
settings.server.port = cfg.port;
|
||||||
openFirewall = cfg.openFirewall;
|
openFirewall = cfg.openFirewall;
|
||||||
dataDir = cfg.stateDir;
|
dataDir = cfg.stateDir;
|
||||||
|
|||||||
+15
-11
@@ -7,6 +7,9 @@
|
|||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.nixarr.plex;
|
cfg = config.nixarr.plex;
|
||||||
defaultPort = 32400;
|
defaultPort = 32400;
|
||||||
|
uid = 242;
|
||||||
|
user = "streamer";
|
||||||
|
group = "media";
|
||||||
nixarr = config.nixarr;
|
nixarr = config.nixarr;
|
||||||
in {
|
in {
|
||||||
options.nixarr.plex = {
|
options.nixarr.plex = {
|
||||||
@@ -138,22 +141,23 @@ in {
|
|||||||
];
|
];
|
||||||
|
|
||||||
users = {
|
users = {
|
||||||
groups.streamer = {};
|
groups."${group}" = {};
|
||||||
users.streamer = {
|
users."${user}" = {
|
||||||
isSystemUser = true;
|
isSystemUser = true;
|
||||||
group = "streamer";
|
group = group;
|
||||||
|
uid = uid;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.tmpfiles.rules = [
|
systemd.tmpfiles.rules = [
|
||||||
"d '${cfg.stateDir}' 0700 streamer root - -"
|
"d '${cfg.stateDir}' 0700 ${user} root - -"
|
||||||
|
|
||||||
# Media Dirs
|
# Media Dirs
|
||||||
"d '${nixarr.mediaDir}/library' 0775 streamer media - -"
|
"d '${nixarr.mediaDir}/library' 0775 ${user} ${group} - -"
|
||||||
"d '${nixarr.mediaDir}/library/shows' 0775 streamer media - -"
|
"d '${nixarr.mediaDir}/library/shows' 0775 ${user} ${group} - -"
|
||||||
"d '${nixarr.mediaDir}/library/movies' 0775 streamer media - -"
|
"d '${nixarr.mediaDir}/library/movies' 0775 ${user} ${group} - -"
|
||||||
"d '${nixarr.mediaDir}/library/music' 0775 streamer media - -"
|
"d '${nixarr.mediaDir}/library/music' 0775 ${user} ${group} - -"
|
||||||
"d '${nixarr.mediaDir}/library/books' 0775 streamer media - -"
|
"d '${nixarr.mediaDir}/library/books' 0775 ${user} ${group} - -"
|
||||||
];
|
];
|
||||||
|
|
||||||
# Always prioritise Plex IO
|
# Always prioritise Plex IO
|
||||||
@@ -162,8 +166,8 @@ in {
|
|||||||
services.plex = {
|
services.plex = {
|
||||||
enable = cfg.enable;
|
enable = cfg.enable;
|
||||||
package = cfg.package;
|
package = cfg.package;
|
||||||
user = "streamer";
|
user = user;
|
||||||
group = "media";
|
group = group;
|
||||||
openFirewall = cfg.openFirewall;
|
openFirewall = cfg.openFirewall;
|
||||||
dataDir = cfg.stateDir;
|
dataDir = cfg.stateDir;
|
||||||
};
|
};
|
||||||
|
|||||||
+13
-11
@@ -8,6 +8,8 @@ with lib; let
|
|||||||
cfg = config.nixarr.prowlarr;
|
cfg = config.nixarr.prowlarr;
|
||||||
nixarr = config.nixarr;
|
nixarr = config.nixarr;
|
||||||
uid = 293;
|
uid = 293;
|
||||||
|
user = "prowlarr";
|
||||||
|
group = "prowlarr";
|
||||||
port = 9696;
|
port = 9696;
|
||||||
in {
|
in {
|
||||||
options.nixarr.prowlarr = {
|
options.nixarr.prowlarr = {
|
||||||
@@ -81,21 +83,19 @@ in {
|
|||||||
];
|
];
|
||||||
|
|
||||||
systemd.tmpfiles.rules = [
|
systemd.tmpfiles.rules = [
|
||||||
"d '${cfg.dataDir}' 0700 ${cfg.user} ${cfg.group} - -"
|
"d '${cfg.stateDir}' 0700 ${user} ${group} - -"
|
||||||
];
|
];
|
||||||
|
|
||||||
systemd.services.prowlarr = {
|
systemd.services.prowlarr = {
|
||||||
description = "prowlarr";
|
description = "prowlarr";
|
||||||
after = ["network.target"];
|
after = ["network.target"];
|
||||||
wantedBy = ["multi-user.target"];
|
wantedBy = ["multi-user.target"];
|
||||||
environment = {
|
environment.PROWLARR__SERVER__PORT = builtins.toString cfg.port;
|
||||||
PROWLARR__SERVER__PORT = cfg.port;
|
|
||||||
};
|
|
||||||
|
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
Type = "simple";
|
Type = "simple";
|
||||||
User = cfg.user;
|
User = user;
|
||||||
Group = cfg.group;
|
Group = group;
|
||||||
ExecStart = "${lib.getExe cfg.package} -nobrowser -data=${cfg.stateDir}";
|
ExecStart = "${lib.getExe cfg.package} -nobrowser -data=${cfg.stateDir}";
|
||||||
Restart = "on-failure";
|
Restart = "on-failure";
|
||||||
};
|
};
|
||||||
@@ -105,12 +105,14 @@ in {
|
|||||||
allowedTCPPorts = [cfg.port];
|
allowedTCPPorts = [cfg.port];
|
||||||
};
|
};
|
||||||
|
|
||||||
users.users.prowlarr = {
|
users = {
|
||||||
group = "prowlarr";
|
groups."${group}" = {};
|
||||||
home = cfg.stateDir;
|
users."${user}" = {
|
||||||
uid = uid;
|
group = "prowlarr";
|
||||||
|
home = cfg.stateDir;
|
||||||
|
uid = uid;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
users.groups.prowlarr = {};
|
|
||||||
|
|
||||||
# Enable and specify VPN namespace to confine service in.
|
# Enable and specify VPN namespace to confine service in.
|
||||||
systemd.services.prowlarr.vpnConfinement = mkIf cfg.vpn.enable {
|
systemd.services.prowlarr.vpnConfinement = mkIf cfg.vpn.enable {
|
||||||
|
|||||||
@@ -7,6 +7,8 @@
|
|||||||
with lib; let
|
with lib; let
|
||||||
cfg = config.nixarr.radarr;
|
cfg = config.nixarr.radarr;
|
||||||
port = 7878;
|
port = 7878;
|
||||||
|
user = "radarr";
|
||||||
|
group = "media";
|
||||||
nixarr = config.nixarr;
|
nixarr = config.nixarr;
|
||||||
in {
|
in {
|
||||||
options.nixarr.radarr = {
|
options.nixarr.radarr = {
|
||||||
|
|||||||
@@ -8,6 +8,8 @@ with lib; let
|
|||||||
cfg = config.nixarr.readarr-audiobook;
|
cfg = config.nixarr.readarr-audiobook;
|
||||||
nixarr = config.nixarr;
|
nixarr = config.nixarr;
|
||||||
uid = 269;
|
uid = 269;
|
||||||
|
user = "readarr";
|
||||||
|
group = "readarr";
|
||||||
port = 9494;
|
port = 9494;
|
||||||
in {
|
in {
|
||||||
options.nixarr.readarr-audiobook = {
|
options.nixarr.readarr-audiobook = {
|
||||||
@@ -81,21 +83,19 @@ in {
|
|||||||
];
|
];
|
||||||
|
|
||||||
systemd.tmpfiles.rules = [
|
systemd.tmpfiles.rules = [
|
||||||
"d '${cfg.dataDir}' 0700 ${cfg.user} ${cfg.group} - -"
|
"d '${cfg.stateDir}' 0700 ${user} ${group} - -"
|
||||||
];
|
];
|
||||||
|
|
||||||
systemd.services.readarr-audiobook = {
|
systemd.services.readarr-audiobook = {
|
||||||
description = "Readarr-Audiobook";
|
description = "Readarr-Audiobook";
|
||||||
after = ["network.target"];
|
after = ["network.target"];
|
||||||
wantedBy = ["multi-user.target"];
|
wantedBy = ["multi-user.target"];
|
||||||
environment = {
|
environment.READARR__SERVER__PORT = builtins.toString cfg.port;
|
||||||
READARR__SERVER__PORT = cfg.port;
|
|
||||||
};
|
|
||||||
|
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
Type = "simple";
|
Type = "simple";
|
||||||
User = cfg.user;
|
User = user;
|
||||||
Group = cfg.group;
|
Group = group;
|
||||||
ExecStart = "${lib.getExe cfg.package} -nobrowser -data=${cfg.stateDir}";
|
ExecStart = "${lib.getExe cfg.package} -nobrowser -data=${cfg.stateDir}";
|
||||||
Restart = "on-failure";
|
Restart = "on-failure";
|
||||||
};
|
};
|
||||||
@@ -105,12 +105,12 @@ in {
|
|||||||
allowedTCPPorts = [cfg.port];
|
allowedTCPPorts = [cfg.port];
|
||||||
};
|
};
|
||||||
|
|
||||||
users.users.readarr-audiobook = {
|
users.users."${user}" = {
|
||||||
group = "readarr-audiobook";
|
group = group;
|
||||||
home = cfg.stateDir;
|
home = cfg.stateDir;
|
||||||
uid = uid;
|
uid = uid;
|
||||||
};
|
};
|
||||||
users.groups.readarr-audiobook = {};
|
users.groups."${group}" = {};
|
||||||
|
|
||||||
# Enable and specify VPN namespace to confine service in.
|
# Enable and specify VPN namespace to confine service in.
|
||||||
systemd.services.readarr-audiobook.vpnConfinement = mkIf cfg.vpn.enable {
|
systemd.services.readarr-audiobook.vpnConfinement = mkIf cfg.vpn.enable {
|
||||||
|
|||||||
@@ -8,6 +8,8 @@ with lib; let
|
|||||||
cfg = config.nixarr.readarr;
|
cfg = config.nixarr.readarr;
|
||||||
nixarr = config.nixarr;
|
nixarr = config.nixarr;
|
||||||
uid = 250;
|
uid = 250;
|
||||||
|
user = "readarr";
|
||||||
|
group = "readarr";
|
||||||
port = 8787;
|
port = 8787;
|
||||||
in {
|
in {
|
||||||
options.nixarr.readarr = {
|
options.nixarr.readarr = {
|
||||||
@@ -79,21 +81,19 @@ in {
|
|||||||
];
|
];
|
||||||
|
|
||||||
systemd.tmpfiles.rules = [
|
systemd.tmpfiles.rules = [
|
||||||
"d '${cfg.dataDir}' 0700 ${cfg.user} ${cfg.group} - -"
|
"d '${cfg.stateDir}' 0700 ${user} ${group} - -"
|
||||||
];
|
];
|
||||||
|
|
||||||
systemd.services.readarr = {
|
systemd.services.readarr = {
|
||||||
description = "Readarr";
|
description = "Readarr";
|
||||||
after = ["network.target"];
|
after = ["network.target"];
|
||||||
wantedBy = ["multi-user.target"];
|
wantedBy = ["multi-user.target"];
|
||||||
environment = {
|
environment.READARR__SERVER__PORT = builtins.toString cfg.port;
|
||||||
READARR__SERVER__PORT = cfg.port;
|
|
||||||
};
|
|
||||||
|
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
Type = "simple";
|
Type = "simple";
|
||||||
User = cfg.user;
|
User = user;
|
||||||
Group = cfg.group;
|
Group = group;
|
||||||
ExecStart = "${lib.getExe cfg.package} -nobrowser -data=${cfg.stateDir}";
|
ExecStart = "${lib.getExe cfg.package} -nobrowser -data=${cfg.stateDir}";
|
||||||
Restart = "on-failure";
|
Restart = "on-failure";
|
||||||
};
|
};
|
||||||
@@ -104,7 +104,7 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
users.users.readarr = {
|
users.users.readarr = {
|
||||||
group = "readarr";
|
group = group;
|
||||||
home = cfg.stateDir;
|
home = cfg.stateDir;
|
||||||
uid = uid;
|
uid = uid;
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user