Working on cross-seed and updated the thanks
This commit is contained in:
@@ -238,8 +238,8 @@ you. However, this also means that you don't have to give _any_ personal data.
|
||||
## Thanks
|
||||
|
||||
A big thanks to [Maroka-chan](https://github.com/Maroka-chan) for the heavy
|
||||
lifting on the VPN-submodule, that was integral to making this project
|
||||
possible.
|
||||
lifting on the [VPN-submodule](https://github.com/Maroka-chan/VPN-Confinement),
|
||||
that was integral to making this project possible.
|
||||
|
||||
I would also like to thank [Lasse](https://github.com/lassebomh) for helping
|
||||
out with the website.
|
||||
|
||||
+4
-4
@@ -37,10 +37,10 @@ in
|
||||
|
||||
pandoc \
|
||||
--standalone \
|
||||
--highlight-style docs/pandoc/gruvbox.theme \
|
||||
--metadata title="Nixarr - Option Documentation" \
|
||||
--template docs/pandoc/template.html \
|
||||
--metadata date="$(date -u '+%Y-%m-%d - %H:%M:%S %Z')" \
|
||||
--highlight-style docs/pandoc/gruvbox.theme \
|
||||
--template docs/pandoc/template.html \
|
||||
--css docs/pandoc/style.css \
|
||||
--lua-filter docs/pandoc/lua/anchor-links.lua \
|
||||
--lua-filter docs/pandoc/lua/code-default-to-nix.lua \
|
||||
@@ -56,11 +56,11 @@ in
|
||||
"$tmpdir"/nixos.md
|
||||
|
||||
pandoc \
|
||||
--metadata title="Nixarr" \
|
||||
--metadata date="$(date -u '+%Y-%m-%d - %H:%M:%S %Z')" \
|
||||
--standalone \
|
||||
--highlight-style docs/pandoc/gruvbox.theme \
|
||||
--template docs/pandoc/template.html \
|
||||
--metadata date="$(date -u '+%Y-%m-%d - %H:%M:%S %Z')" \
|
||||
--metadata title="Nixarr" \
|
||||
--css docs/pandoc/style.css \
|
||||
-V lang=en \
|
||||
-V --mathjax \
|
||||
|
||||
@@ -0,0 +1,75 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.util-nixarr.services.prowlarr;
|
||||
#settingsFormat = pkgs.formats.json {};
|
||||
#settingsFile = settingsFormat.generate "settings.json" cfg.settings;
|
||||
cross-seedPkg = import ../../../pkgs/cross-seed { inherit (pkgs) stdenv lib fetchFromGitHub; };
|
||||
in {
|
||||
options = {
|
||||
util-nixarr.services.prowlarr = {
|
||||
enable = mkEnableOption "cross-seed";
|
||||
|
||||
configFile = mkOption {
|
||||
type = with types; nullOr path;
|
||||
default = null;
|
||||
example = "/var/lib/secrets/cross-seed/settings.js";
|
||||
description = "";
|
||||
};
|
||||
|
||||
dataDir = mkOption {
|
||||
type = types.path;
|
||||
default = "/var/lib/cross-seed";
|
||||
};
|
||||
|
||||
user = mkOption {
|
||||
type = types.str;
|
||||
default = "cross-seed";
|
||||
description = "User account under which cross-seed runs.";
|
||||
};
|
||||
|
||||
group = mkOption {
|
||||
type = types.str;
|
||||
default = "cross-seed";
|
||||
description = "Group under which cross-seed runs.";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
systemd.tmpfiles.rules = [
|
||||
"d '${cfg.dataDir}' 0700 ${cfg.user} ${cfg.group} - -"
|
||||
];
|
||||
|
||||
systemd.services.prowlarr = {
|
||||
description = "cross-seed";
|
||||
after = ["network.target"];
|
||||
wantedBy = ["multi-user.target"];
|
||||
|
||||
environment.CONFIG_DIR = cfg.dataDir;
|
||||
|
||||
serviceConfig = {
|
||||
ExecStartPre = [("+" + pkgs.writeShellScript "transmission-prestart" ''
|
||||
mv ${cfg.configFile} ${cfg.dataDir}
|
||||
'')];
|
||||
Type = "simple";
|
||||
User = cfg.user;
|
||||
Group = cfg.group;
|
||||
ExecStart = "${getExe cross-seedPkg} daemon";
|
||||
Restart = "on-failure";
|
||||
};
|
||||
};
|
||||
|
||||
users.users = mkIf (cfg.user == "cross-seed") {
|
||||
cross-seed = {
|
||||
group = cfg.group;
|
||||
};
|
||||
};
|
||||
|
||||
users.groups = mkIf (cfg.group == "cross-seed") {};
|
||||
};
|
||||
}
|
||||
@@ -41,7 +41,8 @@ in {
|
||||
|
||||
flood.enable = mkEnableOption "the flood web-UI for the transmission web-UI.";
|
||||
|
||||
privateTrackers = mkOption {
|
||||
privateTrackers = {
|
||||
disableDhtPex = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
@@ -54,6 +55,16 @@ in {
|
||||
their rules ¯\\_(ツ)_/¯.
|
||||
'';
|
||||
};
|
||||
cross-seed = {
|
||||
enable = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Enable the cross-seed service.
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
messageLevel = mkOption {
|
||||
type = types.enum [
|
||||
@@ -94,6 +105,10 @@ in {
|
||||
};
|
||||
};
|
||||
|
||||
imports = [
|
||||
./cross-seed
|
||||
];
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
assertions = [
|
||||
{
|
||||
@@ -103,6 +118,12 @@ in {
|
||||
nixarr.vpn.enable option to be set, but it was not.
|
||||
'';
|
||||
}
|
||||
{
|
||||
assertion = cfg.privateTrackers.cross-seed.enable -> nixarr.prowlarr.enable;
|
||||
message = ''
|
||||
TODO: todo
|
||||
'';
|
||||
}
|
||||
];
|
||||
|
||||
systemd.tmpfiles.rules = [
|
||||
@@ -150,7 +171,6 @@ in {
|
||||
anti-brute-force-enabled = true;
|
||||
anti-brute-force-threshold = 10;
|
||||
|
||||
# 0 = None, 1 = Critical, 2 = Error, 3 = Warn, 4 = Info, 5 = Debug, 6 = Trace
|
||||
message-level =
|
||||
if cfg.messageLevel == "none"
|
||||
then 0
|
||||
@@ -171,6 +191,13 @@ in {
|
||||
// cfg.extraConfig;
|
||||
};
|
||||
|
||||
services.cross-seed = mkIf cfg.cross-seed.enable {
|
||||
enable = true;
|
||||
group = "media";
|
||||
dataDir = cfg.privateTrackers.cross-seed.dataDir;
|
||||
configFile = cfg.privateTrackers.cross-seed.configFile;
|
||||
};
|
||||
|
||||
util-nixarr.vpnnamespace = mkIf cfg.vpn.enable {
|
||||
portMappings = [
|
||||
{
|
||||
|
||||
@@ -0,0 +1,75 @@
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
with lib; let
|
||||
cfg = config.util-nixarr.services.prowlarr;
|
||||
settingsFormat = pkgs.formats.json {};
|
||||
settingsFile = settingsFormat.generate "settings.json" cfg.settings;
|
||||
cross-seedPkg = import ../../../pkgs/cross-seed { inherit (pkgs) stdenv lib fetchFromGitHub; };
|
||||
in {
|
||||
options = {
|
||||
util-nixarr.services.prowlarr = {
|
||||
enable = mkEnableOption "cross-seed";
|
||||
|
||||
configFile = mkOption {
|
||||
type = with types; nullOr path;
|
||||
default = null;
|
||||
example = "/var/lib/secrets/cross-seed/settings.json";
|
||||
description = "";
|
||||
};
|
||||
|
||||
dataDir = mkOption {
|
||||
type = types.path;
|
||||
default = "/var/lib/cross-seed";
|
||||
};
|
||||
|
||||
user = mkOption {
|
||||
type = types.str;
|
||||
default = "cross-seed";
|
||||
description = "User account under which cross-seed runs.";
|
||||
};
|
||||
|
||||
group = mkOption {
|
||||
type = types.str;
|
||||
default = "cross-seed";
|
||||
description = "Group under which cross-seed runs.";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
systemd.tmpfiles.rules = [
|
||||
"d '${cfg.dataDir}' 0700 ${cfg.user} ${cfg.group} - -"
|
||||
];
|
||||
|
||||
systemd.services.prowlarr = {
|
||||
description = "cross-seed";
|
||||
after = ["network.target"];
|
||||
wantedBy = ["multi-user.target"];
|
||||
|
||||
environment.CONFIG_DIR = cfg.dataDir;
|
||||
|
||||
serviceConfig = {
|
||||
ExecStartPre = [("+" + pkgs.writeShellScript "transmission-prestart" ''
|
||||
mv ${cfg.configFile} ${cfg.dataDir}
|
||||
'')];
|
||||
Type = "simple";
|
||||
User = cfg.user;
|
||||
Group = cfg.group;
|
||||
ExecStart = "${getExe cross-seedPkg} daemon";
|
||||
Restart = "on-failure";
|
||||
};
|
||||
};
|
||||
|
||||
users.users = mkIf (cfg.user == "cross-seed") {
|
||||
cross-seed = {
|
||||
group = cfg.group;
|
||||
};
|
||||
};
|
||||
|
||||
users.groups = mkIf (cfg.group == "cross-seed") {};
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user