From a0b2c41899070fa302ec188b9377207db400b016 Mon Sep 17 00:00:00 2001 From: ulic-youthlic Date: Fri, 24 Jan 2025 17:06:45 +0800 Subject: [PATCH] add transmission module for downloads bt torrent --- flake.lock | 17 ++++++++++ flake.nix | 5 +++ nixos/configurations/Tytonidae/default.nix | 1 + nixos/modules/default.nix | 1 + nixos/modules/transmission.nix | 38 ++++++++++++++++++++++ secrets/transmission.yaml | 30 +++++++++++++++++ 6 files changed, 92 insertions(+) create mode 100644 nixos/modules/transmission.nix create mode 100644 secrets/transmission.yaml diff --git a/flake.lock b/flake.lock index 71238ed..d2f9238 100644 --- a/flake.lock +++ b/flake.lock @@ -66,6 +66,22 @@ "type": "github" } }, + "bt-tracker": { + "flake": false, + "locked": { + "lastModified": 1737706116, + "narHash": "sha256-jMrl9cy/1vlJgpljPG0jGlnlGSfCdseKe14guF/EMPo=", + "owner": "XIU2", + "repo": "TrackersListCollection", + "rev": "d56981366bbe7ce97655111d0b8db5b1b91d4540", + "type": "github" + }, + "original": { + "owner": "XIU2", + "repo": "TrackersListCollection", + "type": "github" + } + }, "crane": { "locked": { "lastModified": 1727974419, @@ -1066,6 +1082,7 @@ }, "root": { "inputs": { + "bt-tracker": "bt-tracker", "dae": "dae", "disko": "disko", "firefox-addons": "firefox-addons", diff --git a/flake.nix b/flake.nix index ef023b7..963b84a 100644 --- a/flake.nix +++ b/flake.nix @@ -70,6 +70,11 @@ url = "github:nix-community/disko"; inputs.nixpkgs.follows = "nixpkgs"; }; + + bt-tracker = { + url = "github:XIU2/TrackersListCollection"; + flake = false; + }; }; outputs = { diff --git a/nixos/configurations/Tytonidae/default.nix b/nixos/configurations/Tytonidae/default.nix index e9b0b47..db632ed 100644 --- a/nixos/configurations/Tytonidae/default.nix +++ b/nixos/configurations/Tytonidae/default.nix @@ -37,6 +37,7 @@ unixName = "david"; }; open-webui.enable = true; + transmission.enable = true; }; gui.enabled = "cosmic"; }; diff --git a/nixos/modules/default.nix b/nixos/modules/default.nix index 7adf5f2..1a935a5 100644 --- a/nixos/modules/default.nix +++ b/nixos/modules/default.nix @@ -28,6 +28,7 @@ ./kanata.nix ./kvm.nix ./open-webui.nix + ./transmission.nix ]; config = { diff --git a/nixos/modules/transmission.nix b/nixos/modules/transmission.nix new file mode 100644 index 0000000..c32f5a1 --- /dev/null +++ b/nixos/modules/transmission.nix @@ -0,0 +1,38 @@ +{ + pkgs, + config, + lib, + inputs, + rootPath, + ... +}: +let + cfg = config.youthlic.programs.transmission; +in +{ + options = { + youthlic.programs.transmission = { + enable = lib.mkEnableOption "transmission"; + }; + }; + config = lib.mkIf cfg.enable { + users.groups."${config.services.transmission.group}".members = [ + config.youthlic.home-manager.unixName + ]; + sops.secrets."transmission-config" = { + sopsFile = rootPath + "/secrets/transmission.yaml"; + }; + services.transmission = { + enable = true; + package = pkgs.transmission_4; + settings = { + utp-enabled = true; + watch-dir-enabled = true; + default-trackers = builtins.readFile "${inputs.bt-tracker}/all.txt"; + }; + openRPCPort = true; + openPeerPorts = true; + credentialsFile = "${config.sops.secrets.transmission-config.path}"; + }; + }; +} diff --git a/secrets/transmission.yaml b/secrets/transmission.yaml new file mode 100644 index 0000000..36d30d8 --- /dev/null +++ b/secrets/transmission.yaml @@ -0,0 +1,30 @@ +transmission-config: ENC[AES256_GCM,data:SlEGhKDvHW66Tg5TGkxhpNscJsncT4QK7kKwqxQu3mWn5PTEf9BohpN1fZ3fvTxkBOEvYkwRzP+9yUnlFjFwEve2WUcfFuX6tdpBueChcyzn5WB38rlgRlUwL07agaHVv3ZXEtX6L/h7hml8fWfh9240uej9,iv:sXY0AIyfQ1Q5wtu1mxESmd9QPgUPSMetikctSO7bDrw=,tag:sYo8DlURb2rW8qdPvCpd1A==,type:str] +sops: + kms: [] + gcp_kms: [] + azure_kv: [] + hc_vault: [] + age: + - recipient: age1smmqun9h3cszaza85ty33yenyaqtat572u9r3we4l5gh85njgvws6q680g + enc: | + -----BEGIN AGE ENCRYPTED FILE----- + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSByNUJGTHV3Nkd3NmFkUEVm + OTJjSG00eVAwRTlQUHk3THgvczRYQlhkK1M0ClFHZDVBVWRnMytIQ1JOMDVhZWpr + QkV5YVQ1dEo1cFRBSVEySUZQNnVTQ00KLS0tIHhMTVRaY3lCL1pXL0NGbkdEVzBu + ZkVpNCtnWFdodHFYbWhFWTVsbGZ3N2cKz8+iOr5Jpg7r+fZrmEfv7GT+U9GGYFsA + uwLrJBYkyh+nS0KpgK/II3xBW+OLK//Q4qXhX2xNR3PrCEyYNepWyg== + -----END AGE ENCRYPTED FILE----- + - recipient: age1emhsx2l0ell6smavzaackwkk7n2u4zf6chdp9xcds3dqp7s444ds9fcaga + enc: | + -----BEGIN AGE ENCRYPTED FILE----- + YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBUNmQxU04yYWdKdFJqaUQ1 + UkE4Ykt5UmJESVB3NnZpS1d4VmlNSjZVK2xnCmo0SEJQM28vWWd3enhDRFZxRmRZ + aEpDa05vZmthY0FHR0djaGpBc2l4cTgKLS0tIHIvRUh0aTJqdFc4eHE2ZFJCRmJY + S21ySVFCWTlPQUZXci90RjY3QnhmaVkKk5et+gjlm7m/llWru16Lomx2cSLvgFBc + mUFUECsaOgTTLoCBj7fS/tPH94kXj4+vk/2OwihOWX6lSyKfkGtuRg== + -----END AGE ENCRYPTED FILE----- + lastmodified: "2025-01-24T08:58:17Z" + mac: ENC[AES256_GCM,data:YJPmgWY0U8xEauUnVIjOqwZkSFRYWCcn/HbmS4M2ZFlblM7GkMJAqrDhZIlKUlUbsDtoUKRZH/DmUNj6jB8ejabUE1psu0eOvdP5svoMhGJf7JMkEWiLikqpw9eadt8FdidKjPjTGR0G4oSq+vdbFy2TsKjhyHuab8cLCm3MfkY=,iv:SrviiLHDTjgpr5588suDbF7Pfw3yhnCmz4x0FSvzypo=,tag:2WP8wLsT/iANcbisRmp9mA==,type:str] + pgp: [] + unencrypted_suffix: _unencrypted + version: 3.9.3