Compare commits
2 Commits
0ff38f405f
...
4e14b6b379
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4e14b6b379 | ||
|
|
338b8be3d9 |
@@ -16,7 +16,10 @@
|
|||||||
users.users.alex = {
|
users.users.alex = {
|
||||||
isNormalUser = true;
|
isNormalUser = true;
|
||||||
description = "alex";
|
description = "alex";
|
||||||
extraGroups = [ "wheel" ];
|
extraGroups = [
|
||||||
|
"wheel"
|
||||||
|
"storage"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.systemPackages = with pkgs; [
|
environment.systemPackages = with pkgs; [
|
||||||
|
|||||||
@@ -3,6 +3,33 @@
|
|||||||
imports = [ inputs.disko.nixosModules.disko ];
|
imports = [ inputs.disko.nixosModules.disko ];
|
||||||
|
|
||||||
config = {
|
config = {
|
||||||
|
users.groups.storage = { };
|
||||||
|
|
||||||
|
users.users.storage = {
|
||||||
|
isSystemUser = true;
|
||||||
|
description = "storage";
|
||||||
|
group = "storage";
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.tmpfiles.settings = {
|
||||||
|
"10-media-public" = {
|
||||||
|
"/mnt/media/public" = {
|
||||||
|
d = {
|
||||||
|
# Create directory
|
||||||
|
user = "storage";
|
||||||
|
group = "storage";
|
||||||
|
mode = "2775";
|
||||||
|
};
|
||||||
|
z = {
|
||||||
|
# Ensure permissions are inherited
|
||||||
|
user = "storage";
|
||||||
|
group = "storage";
|
||||||
|
mode = "2775";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
networking.hostId = "0a9474e7"; # Required by ZFS
|
networking.hostId = "0a9474e7"; # Required by ZFS
|
||||||
disko.devices = {
|
disko.devices = {
|
||||||
disk = {
|
disk = {
|
||||||
|
|||||||
@@ -12,6 +12,8 @@ in
|
|||||||
|
|
||||||
ssh.enable = true;
|
ssh.enable = true;
|
||||||
git.enable = true;
|
git.enable = true;
|
||||||
|
|
||||||
|
transmission.enable = true;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
48
hosts/manatee/modules/transmission/default.nix
Normal file
48
hosts/manatee/modules/transmission/default.nix
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
let
|
||||||
|
enabled = config.mod.transmission.enable;
|
||||||
|
in
|
||||||
|
{
|
||||||
|
options = {
|
||||||
|
mod.transmission = {
|
||||||
|
enable = lib.mkEnableOption "enable transmission module";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
config = lib.mkIf enabled {
|
||||||
|
services = {
|
||||||
|
transmission = {
|
||||||
|
enable = true;
|
||||||
|
package = pkgs.transmission_4;
|
||||||
|
|
||||||
|
openFirewall = true;
|
||||||
|
|
||||||
|
user = "storage";
|
||||||
|
group = "storage";
|
||||||
|
|
||||||
|
home = "/mnt/media/public/.ts-home";
|
||||||
|
downloadDirPermissions = "775";
|
||||||
|
|
||||||
|
settings = {
|
||||||
|
incomplete-dir-enabled = false;
|
||||||
|
download-dir = "/mnt/media/public/downloads";
|
||||||
|
|
||||||
|
rpc-bind-address = "0.0.0.0";
|
||||||
|
|
||||||
|
# Required to have empty user/pass to satisfy transmissionA
|
||||||
|
# https://github.com/transmission/transmission/discussions/1941#discussioncomment-1472352
|
||||||
|
rpc-whitelist-enabled = false;
|
||||||
|
rpc-authentication-required = true;
|
||||||
|
rpc-username = "";
|
||||||
|
rpc-password = "";
|
||||||
|
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user