Moved some files
This commit is contained in:
parent
863438fb14
commit
4e17989a59
5 changed files with 0 additions and 183 deletions
|
|
@ -1,126 +0,0 @@
|
||||||
{ config, lib, pkgs, ... }:
|
|
||||||
|
|
||||||
with lib;
|
|
||||||
|
|
||||||
let
|
|
||||||
cfg = config.services.qbittorrent;
|
|
||||||
UID = 888;
|
|
||||||
GID = 888;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
options.services.qbittorrent = {
|
|
||||||
enable = mkEnableOption (lib.mdDoc "qBittorrent headless");
|
|
||||||
|
|
||||||
dataDir = mkOption {
|
|
||||||
type = types.path;
|
|
||||||
default = "/var/lib/qbittorrent";
|
|
||||||
description = lib.mdDoc ''
|
|
||||||
The directory where qBittorrent stores its data files.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
user = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
default = "qbittorrent";
|
|
||||||
description = lib.mdDoc ''
|
|
||||||
User account under which qBittorrent runs.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
group = mkOption {
|
|
||||||
type = types.str;
|
|
||||||
default = "qbittorrent";
|
|
||||||
description = lib.mdDoc ''
|
|
||||||
Group under which qBittorrent runs.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
port = mkOption {
|
|
||||||
type = types.port;
|
|
||||||
default = 8080;
|
|
||||||
description = lib.mdDoc ''
|
|
||||||
qBittorrent web UI port.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
openFirewall = mkOption {
|
|
||||||
type = types.bool;
|
|
||||||
default = false;
|
|
||||||
description = lib.mdDoc ''
|
|
||||||
Open services.qBittorrent.port to the outside network.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
|
|
||||||
package = mkOption {
|
|
||||||
type = types.package;
|
|
||||||
default = pkgs.qbittorrent-nox;
|
|
||||||
defaultText = literalExpression "pkgs.qbittorrent-nox";
|
|
||||||
description = lib.mdDoc ''
|
|
||||||
The qbittorrent package to use.
|
|
||||||
'';
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
config = mkIf cfg.enable {
|
|
||||||
networking.firewall = mkIf cfg.openFirewall {
|
|
||||||
allowedTCPPorts = [ cfg.port ];
|
|
||||||
};
|
|
||||||
|
|
||||||
systemd.services.qbittorrent = {
|
|
||||||
# based on the plex.nix service module and
|
|
||||||
# https://github.com/qbittorrent/qBittorrent/blob/master/dist/unix/systemd/qbittorrent-nox%40.service.in
|
|
||||||
description = "qBittorrent-nox service";
|
|
||||||
documentation = [ "man:qbittorrent-nox(1)" ];
|
|
||||||
after = [ "network.target" ];
|
|
||||||
wantedBy = [ "multi-user.target" ];
|
|
||||||
|
|
||||||
serviceConfig = {
|
|
||||||
Type = "simple";
|
|
||||||
User = cfg.user;
|
|
||||||
Group = cfg.group;
|
|
||||||
|
|
||||||
# Run the pre-start script with full permissions (the "!" prefix) so it
|
|
||||||
# can create the data directory if necessary.
|
|
||||||
ExecStartPre =
|
|
||||||
let
|
|
||||||
preStartScript = pkgs.writeScript "qbittorrent-run-prestart" ''
|
|
||||||
#!${pkgs.bash}/bin/bash
|
|
||||||
|
|
||||||
# Create data directory if it doesn't exist
|
|
||||||
if ! test -d "$QBT_PROFILE"; then
|
|
||||||
echo "Creating initial qBittorrent data directory in: $QBT_PROFILE"
|
|
||||||
install -d -m 0755 -o "${cfg.user}" -g "${cfg.group}" "$QBT_PROFILE"
|
|
||||||
fi
|
|
||||||
'';
|
|
||||||
in
|
|
||||||
"!${preStartScript}";
|
|
||||||
|
|
||||||
#ExecStart = "${pkgs.qbittorrent-nox}/bin/qbittorrent-nox";
|
|
||||||
ExecStart = "${cfg.package}/bin/qbittorrent-nox";
|
|
||||||
# To prevent "Quit & shutdown daemon" from working; we want systemd to
|
|
||||||
# manage it!
|
|
||||||
#Restart = "on-success";
|
|
||||||
#UMask = "0002";
|
|
||||||
#LimitNOFILE = cfg.openFilesLimit;
|
|
||||||
};
|
|
||||||
|
|
||||||
environment = {
|
|
||||||
QBT_PROFILE = cfg.dataDir;
|
|
||||||
QBT_WEBUI_PORT = toString cfg.port;
|
|
||||||
QBT_EULA = "accept";
|
|
||||||
# QBT_EULA = toString cfg.acceptEula;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
# users.users = mkIf (cfg.user == "qbittorrent") {
|
|
||||||
# qbittorrent = {
|
|
||||||
# group = cfg.group;
|
|
||||||
# uid = UID;
|
|
||||||
# };
|
|
||||||
# };
|
|
||||||
|
|
||||||
# users.groups = mkIf (cfg.group == "qbittorrent") {
|
|
||||||
# qbittorrent = { gid = GID; };
|
|
||||||
# };
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
||||||
{ pkgs ? import <nixpkgs> { }, lib, }:
|
|
||||||
|
|
||||||
with pkgs;
|
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
|
||||||
pname = "rutorrent";
|
|
||||||
version = "4.3.6";
|
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
|
||||||
owner = "Novik";
|
|
||||||
repo = "ruTorrent";
|
|
||||||
rev = "v${version}";
|
|
||||||
sha256 = "sha256-pwmMH3ZwwAzuyVCJAPfTcSdvUP3HPRVpUSEROMD7XfE=";
|
|
||||||
};
|
|
||||||
|
|
||||||
installPhase = ''
|
|
||||||
mkdir -p $out/
|
|
||||||
cp -r . $out/
|
|
||||||
'';
|
|
||||||
|
|
||||||
meta = with lib; {
|
|
||||||
description = "Yet another web front-end for rTorrent";
|
|
||||||
homepage = "https://github.com/Novik/ruTorrent";
|
|
||||||
license = licenses.gpl3Plus;
|
|
||||||
platforms = platforms.unix;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,29 +0,0 @@
|
||||||
# qBittorrent service activation
|
|
||||||
#
|
|
||||||
# The shell script 'fixdlperms' is also created and should be added to the
|
|
||||||
# "Run external program on finished" section with the full path:
|
|
||||||
# /run/current-system/sw/bin/fixdlperms
|
|
||||||
|
|
||||||
{ pkgs, ... }:
|
|
||||||
|
|
||||||
let
|
|
||||||
downloadDir = "/data/multimedia/downloads";
|
|
||||||
fixDownloadPerms = pkgs.writeShellScriptBin "fixdlperms" ''
|
|
||||||
find ${downloadDir} -type d -exec chmod 2775 {} +
|
|
||||||
find ${downloadDir} -type f -exec chmod 0664 {} +
|
|
||||||
'';
|
|
||||||
in
|
|
||||||
{
|
|
||||||
services.qbittorrent = {
|
|
||||||
enable = true;
|
|
||||||
openFirewall = true;
|
|
||||||
dataDir = "/srv/qbittorrent";
|
|
||||||
port = 58080;
|
|
||||||
user = "qbittorrent";
|
|
||||||
};
|
|
||||||
|
|
||||||
# Allow qbittorrent to save files in the multimedia share
|
|
||||||
# users.users.qbittorrent.extraGroups = [ "multimedia" ];
|
|
||||||
|
|
||||||
environment.systemPackages = [ fixDownloadPerms ];
|
|
||||||
}
|
|
||||||
|
|
@ -61,7 +61,6 @@ in
|
||||||
];
|
];
|
||||||
nginx = {
|
nginx = {
|
||||||
enable = true;
|
enable = true;
|
||||||
# exposeInsecureRPC2mount = true;
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue