formatted and fixed a transmission bug
This commit is contained in:
+3
-2
@@ -17,10 +17,11 @@
|
|||||||
optionsDocNixos = nixosOptionsDoc {
|
optionsDocNixos = nixosOptionsDoc {
|
||||||
inherit (evalNixos) options;
|
inherit (evalNixos) options;
|
||||||
};
|
};
|
||||||
in pkgs.stdenv.mkDerivation {
|
in
|
||||||
|
pkgs.stdenv.mkDerivation {
|
||||||
name = "nixdocs2html";
|
name = "nixdocs2html";
|
||||||
src = ./.;
|
src = ./.;
|
||||||
buildInputs = with pkgs; [ pandoc ];
|
buildInputs = with pkgs; [pandoc];
|
||||||
phases = ["unpackPhase" "buildPhase"];
|
phases = ["unpackPhase" "buildPhase"];
|
||||||
buildPhase = ''
|
buildPhase = ''
|
||||||
tmpdir=$(mktemp -d)
|
tmpdir=$(mktemp -d)
|
||||||
|
|||||||
@@ -161,17 +161,6 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
systemd.tmpfiles.rules = [
|
systemd.tmpfiles.rules = [
|
||||||
# State dirs
|
|
||||||
"d '${cfg.stateDir}' 0755 root root - -"
|
|
||||||
"d '${cfg.stateDir}/nixarr' 0755 root root - -"
|
|
||||||
"d '${cfg.stateDir}/nixarr/jellyfin' 0700 jellyfin root - -"
|
|
||||||
"d '${cfg.stateDir}/nixarr/transmission' 0700 transmission root - -"
|
|
||||||
"d '${cfg.stateDir}/nixarr/sonarr' 0700 sonarr root - -"
|
|
||||||
"d '${cfg.stateDir}/nixarr/radarr' 0700 radarr root - -"
|
|
||||||
"d '${cfg.stateDir}/nixarr/readarr' 0700 readarr root - -"
|
|
||||||
"d '${cfg.stateDir}/nixarr/lidarr' 0700 lidarr root - -"
|
|
||||||
"d '${cfg.stateDir}/nixarr/prowlarr' 0700 prowlarr root - -"
|
|
||||||
|
|
||||||
# Media dirs
|
# Media dirs
|
||||||
"d '${cfg.mediaDir}' 0775 root media - -"
|
"d '${cfg.mediaDir}' 0775 root media - -"
|
||||||
"d '${cfg.mediaDir}/library' 0775 jellyfin media - -"
|
"d '${cfg.mediaDir}/library' 0775 jellyfin media - -"
|
||||||
|
|||||||
@@ -52,21 +52,25 @@ in {
|
|||||||
#assert (cfg.expose.enable -> (cfg.expose.domainName != null && cfg.expose.acmeMail != null)) || abort "Both expose.domain and expose.acmeMail needs to be set if expose.enable is set.";
|
#assert (cfg.expose.enable -> (cfg.expose.domainName != null && cfg.expose.acmeMail != null)) || abort "Both expose.domain and expose.acmeMail needs to be set if expose.enable is set.";
|
||||||
mkIf cfg.enable
|
mkIf cfg.enable
|
||||||
{
|
{
|
||||||
|
systemd.tmpfiles.rules = [
|
||||||
|
"d '${cfg.stateDir}/nixarr/jellyfin' 0700 jellyfin root - -"
|
||||||
|
];
|
||||||
|
|
||||||
services.jellyfin = {
|
services.jellyfin = {
|
||||||
enable = cfg.enable;
|
enable = cfg.enable;
|
||||||
logDir = "${cfg.stateDir}/log";
|
logDir = "${cfg.stateDir}/log";
|
||||||
cacheDir = "${cfg.stateDir}/cache";
|
cacheDir = "${cfg.stateDir}/cache";
|
||||||
dataDir = "${cfg.stateDir}/data";
|
dataDir = "${cfg.stateDir}/data";
|
||||||
configDir = "${cfg.stateDir}/config";
|
configDir = "${cfg.stateDir}/config";
|
||||||
};
|
};
|
||||||
|
|
||||||
networking.firewall = mkIf cfg.expose.enable {
|
networking.firewall = mkIf cfg.expose.enable {
|
||||||
allowedTCPPorts = [ 80 443 ];
|
allowedTCPPorts = [80 443];
|
||||||
};
|
};
|
||||||
|
|
||||||
util-nixarr.upnp = mkIf cfg.expose.upnp.enable {
|
util-nixarr.upnp = mkIf cfg.expose.upnp.enable {
|
||||||
enable = true;
|
enable = true;
|
||||||
openTcpPorts = [ 80 443 ];
|
openTcpPorts = [80 443];
|
||||||
};
|
};
|
||||||
|
|
||||||
services.nginx = mkIf (cfg.expose.enable || cfg.vpn.enable) {
|
services.nginx = mkIf (cfg.expose.enable || cfg.vpn.enable) {
|
||||||
|
|||||||
@@ -24,6 +24,10 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
systemd.tmpfiles.rules = [
|
||||||
|
"d '${cfg.stateDir}/nixarr/lidarr' 0700 lidarr root - -"
|
||||||
|
];
|
||||||
|
|
||||||
services.lidarr = {
|
services.lidarr = {
|
||||||
enable = cfg.enable;
|
enable = cfg.enable;
|
||||||
user = "lidarr";
|
user = "lidarr";
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
# TODO: Dir creation and file permissions in nix
|
# TODO: Dir creation and file permissions in nix
|
||||||
{
|
{
|
||||||
pkgs,
|
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
@@ -31,6 +30,10 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
systemd.tmpfiles.rules = [
|
||||||
|
"d '${cfg.stateDir}/nixarr/prowlarr' 0700 prowlarr root - -"
|
||||||
|
];
|
||||||
|
|
||||||
util-nixarr.services.prowlarr = mkIf (!cfg.vpn.enable) {
|
util-nixarr.services.prowlarr = mkIf (!cfg.vpn.enable) {
|
||||||
enable = true;
|
enable = true;
|
||||||
dataDir = cfg.stateDir;
|
dataDir = cfg.stateDir;
|
||||||
|
|||||||
@@ -1,16 +1,17 @@
|
|||||||
{ config, pkgs, lib, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.util-nixarr.services.prowlarr;
|
|
||||||
in
|
|
||||||
{
|
{
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
with lib; let
|
||||||
|
cfg = config.util-nixarr.services.prowlarr;
|
||||||
|
in {
|
||||||
options = {
|
options = {
|
||||||
util-nixarr.services.prowlarr = {
|
util-nixarr.services.prowlarr = {
|
||||||
enable = mkEnableOption "Prowlarr";
|
enable = mkEnableOption "Prowlarr";
|
||||||
|
|
||||||
package = mkPackageOption pkgs "prowlarr" { };
|
package = mkPackageOption pkgs "prowlarr" {};
|
||||||
|
|
||||||
user = mkOption {
|
user = mkOption {
|
||||||
type = types.str;
|
type = types.str;
|
||||||
@@ -45,8 +46,8 @@ in
|
|||||||
|
|
||||||
systemd.services.prowlarr = {
|
systemd.services.prowlarr = {
|
||||||
description = "Prowlarr";
|
description = "Prowlarr";
|
||||||
after = [ "network.target" ];
|
after = ["network.target"];
|
||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = ["multi-user.target"];
|
||||||
|
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
Type = "simple";
|
Type = "simple";
|
||||||
@@ -58,7 +59,7 @@ in
|
|||||||
};
|
};
|
||||||
|
|
||||||
networking.firewall = mkIf cfg.openFirewall {
|
networking.firewall = mkIf cfg.openFirewall {
|
||||||
allowedTCPPorts = [ 9696 ];
|
allowedTCPPorts = [9696];
|
||||||
};
|
};
|
||||||
|
|
||||||
users.users = mkIf (cfg.user == "prowlarr") {
|
users.users = mkIf (cfg.user == "prowlarr") {
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
# TODO: Dir creation and file permissions in nix
|
# TODO: Dir creation and file permissions in nix
|
||||||
{
|
{
|
||||||
pkgs,
|
|
||||||
config,
|
config,
|
||||||
lib,
|
lib,
|
||||||
...
|
...
|
||||||
@@ -27,6 +26,10 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
systemd.tmpfiles.rules = [
|
||||||
|
"d '${cfg.stateDir}/nixarr/radarr' 0700 radarr root - -"
|
||||||
|
];
|
||||||
|
|
||||||
services.radarr = mkIf (!cfg.vpn.enable) {
|
services.radarr = mkIf (!cfg.vpn.enable) {
|
||||||
enable = cfg.enable;
|
enable = cfg.enable;
|
||||||
user = "radarr";
|
user = "radarr";
|
||||||
|
|||||||
@@ -24,6 +24,10 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
systemd.tmpfiles.rules = [
|
||||||
|
"d '${cfg.stateDir}/nixarr/readarr' 0700 readarr root - -"
|
||||||
|
];
|
||||||
|
|
||||||
services.readarr = {
|
services.readarr = {
|
||||||
enable = cfg.enable;
|
enable = cfg.enable;
|
||||||
user = "readarr";
|
user = "readarr";
|
||||||
|
|||||||
@@ -30,6 +30,10 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
systemd.tmpfiles.rules = [
|
||||||
|
"d '${cfg.stateDir}/nixarr/sonarr' 0700 sonarr root - -"
|
||||||
|
];
|
||||||
|
|
||||||
services.sonarr = mkIf (!cfg.vpn.enable) {
|
services.sonarr = mkIf (!cfg.vpn.enable) {
|
||||||
enable = cfg.enable;
|
enable = cfg.enable;
|
||||||
user = "sonarr";
|
user = "sonarr";
|
||||||
|
|||||||
@@ -17,8 +17,8 @@ in {
|
|||||||
type = types.path;
|
type = types.path;
|
||||||
default = "${nixarr.stateDir}/nixarr/transmission";
|
default = "${nixarr.stateDir}/nixarr/transmission";
|
||||||
description = ''
|
description = ''
|
||||||
The state directory for Transmission.
|
The state directory for Transmission.
|
||||||
|
|
||||||
**BUG**: Only works when the `nixarr.transmission.vpn.enable` option
|
**BUG**: Only works when the `nixarr.transmission.vpn.enable` option
|
||||||
is set.
|
is set.
|
||||||
'';
|
'';
|
||||||
@@ -66,7 +66,7 @@ in {
|
|||||||
default = {};
|
default = {};
|
||||||
description = ''
|
description = ''
|
||||||
Extra config settings for the Transmission service.
|
Extra config settings for the Transmission service.
|
||||||
|
|
||||||
See the `services.transmission.settings` nixos options in
|
See the `services.transmission.settings` nixos options in
|
||||||
the relevant section of the `configuration.nix` manual or on
|
the relevant section of the `configuration.nix` manual or on
|
||||||
[search.nixos.org](https://search.nixos.org/options?channel=unstable&query=services.transmission.settings).
|
[search.nixos.org](https://search.nixos.org/options?channel=unstable&query=services.transmission.settings).
|
||||||
@@ -75,6 +75,12 @@ in {
|
|||||||
};
|
};
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
|
systemd.tmpfiles.rules = [
|
||||||
|
"d '${cfg.stateDir}/nixarr/transmission' 0700 transmission root - -"
|
||||||
|
# This is fixes a bug in nixpks TODO: create nixpkgs issue
|
||||||
|
"d '${cfg.stateDir}/nixarr/transmission/.config/transmission-daemon' 0700 transmission root - -"
|
||||||
|
];
|
||||||
|
|
||||||
services.transmission = mkIf (!cfg.vpn.enable) {
|
services.transmission = mkIf (!cfg.vpn.enable) {
|
||||||
enable = true;
|
enable = true;
|
||||||
group = "media";
|
group = "media";
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ with lib; let
|
|||||||
cfg = config.util-nixarr.vpnnamespace;
|
cfg = config.util-nixarr.vpnnamespace;
|
||||||
in {
|
in {
|
||||||
options.util-nixarr.vpnnamespace = {
|
options.util-nixarr.vpnnamespace = {
|
||||||
enable = mkEnableOption ''
|
enable = mkEnableOption ''
|
||||||
Whether to enable the VPN namespace.
|
Whether to enable the VPN namespace.
|
||||||
|
|
||||||
To access the namespace a veth pair is used to
|
To access the namespace a veth pair is used to
|
||||||
|
|||||||
Reference in New Issue
Block a user