From 3e3a1087078217e08e5f452225a48065697a9494 Mon Sep 17 00:00:00 2001 From: soraefir Date: Sun, 17 May 2026 21:38:46 +0200 Subject: [PATCH] Add settings for transmission --- .../server/containers/apps/transmission.nix | 14 +++- .../data/transmission/settings.json | 70 +++++++++++++++++++ modules/server/sops/server.yaml | 6 +- 3 files changed, 85 insertions(+), 5 deletions(-) create mode 100644 modules/server/containers/data/transmission/settings.json diff --git a/modules/server/containers/apps/transmission.nix b/modules/server/containers/apps/transmission.nix index 55a5d5f..214d990 100644 --- a/modules/server/containers/apps/transmission.nix +++ b/modules/server/containers/apps/transmission.nix @@ -23,7 +23,7 @@ in { owner = "1000:1000"; mode = "0755"; }{ - path = "${serverCfg.dataPath}/transmission/config"; + path = "${serverCfg.configPath}/transmission/config"; owner = "1000:1000"; mode = "0755"; }]; @@ -50,10 +50,20 @@ in { volumes = [ "${serverCfg.dataPath}/transmission/complete:/downloads/complete" "${serverCfg.dataPath}/transmission/incomplete:/downloads/incomplete" - "${serverCfg.dataPath}/transmission/config:/config" + "${serverCfg.configPath}/transmission/config:/config" ]; }; }; }; + + setup = { + trigger = "server"; + envFile = [ config.sops.secrets."CUSTOM".path ]; + script = pkgs.writeShellScript "setup" '' + + ${pkgs.gettext}/bin/envsubst < "${../data/transmission/settings.json}" > "${serverCfg.configPath}/transmission/config/settings.json" + ''; + }; + } \ No newline at end of file diff --git a/modules/server/containers/data/transmission/settings.json b/modules/server/containers/data/transmission/settings.json new file mode 100644 index 0000000..951610b --- /dev/null +++ b/modules/server/containers/data/transmission/settings.json @@ -0,0 +1,70 @@ +{ + "alt-speed-down": 50, + "alt-speed-enabled": false, + "alt-speed-time-begin": 540, + "alt-speed-time-day": 127, + "alt-speed-time-enabled": false, + "alt-speed-time-end": 1020, + "alt-speed-up": 50, + "bind-address-ipv4": "0.0.0.0", + "bind-address-ipv6": "::", + "blocklist-enabled": false, + "blocklist-url": "http://www.example.com/blocklist", + "cache-size-mb": 4, + "dht-enabled": true, + "download-dir": "/downloads/complete", + "download-queue-enabled": true, + "download-queue-size": 5, + "encryption": 1, + "idle-seeding-limit": 30, + "idle-seeding-limit-enabled": false, + "incomplete-dir": "/downloads/incomplete", + "incomplete-dir-enabled": true, + "lpd-enabled": false, + "message-level": 2, + "peer-congestion-algorithm": "", + "peer-id-ttl-hours": 6, + "peer-limit-global": 200, + "peer-limit-per-torrent": 50, + "peer-port": 51413, + "peer-port-random-high": 65535, + "peer-port-random-low": 49152, + "peer-port-random-on-start": false, + "peer-socket-tos": "default", + "pex-enabled": true, + "port-forwarding-enabled": true, + "preallocation": 1, + "prefetch-enabled": 1, + "queue-stalled-enabled": true, + "queue-stalled-minutes": 30, + "ratio-limit": 2, + "ratio-limit-enabled": false, + "rename-partial-files": true, + "rpc-authentication-required": false, + "rpc-bind-address": "0.0.0.0", + "rpc-enabled": true, + "rpc-password": "$TRANSMISSION_RPC_PASSWORD", + "rpc-port": 9091, + "rpc-url": "/transmission/", + "rpc-username": "", + "rpc-host-whitelist": "127.0.0.1", + "rpc-host-whitelist-enabled": false, + "rpc-whitelist": "127.0.0.1", + "rpc-whitelist-enabled": false, + "scrape-paused-torrents-enabled": true, + "script-torrent-done-enabled": false, + "script-torrent-done-filename": "", + "seed-queue-enabled": false, + "seed-queue-size": 10, + "speed-limit-down": 100, + "speed-limit-down-enabled": false, + "speed-limit-up": 100, + "speed-limit-up-enabled": false, + "start-added-torrents": true, + "trash-original-torrent-files": false, + "umask": 2, + "upload-slots-per-torrent": 14, + "utp-enabled": false, + "watch-dir": "/watch", + "watch-dir-enabled": true +} \ No newline at end of file diff --git a/modules/server/sops/server.yaml b/modules/server/sops/server.yaml index 433dbde..8f07b71 100644 --- a/modules/server/sops/server.yaml +++ b/modules/server/sops/server.yaml @@ -1,4 +1,4 @@ -CUSTOM: ENC[AES256_GCM,data:8+973kGKWFbxGHTSnc+UDKC1Q5KKiTeESY68XHX2e2BVw7zpl2oYLPYv7wQ3JA2u6q5rFXrokNvh3ti6JcvQ/302APloPrw6YfC8RofjX7h+WVS9cBaND+AlliQqf+vGWI0VQoEFmJKogxbliIN9nGiL9FLa1QJHRJb1X4P76daakh1+P1eJlE4pgPvblPygDezabC/Pa2k3qCaGAvyOOyZYFNj5ttufmB0FlNQZMVLLuyA3xe92z6I/zbFPBY9RNa10v1+Wm5GRdD8JZHsJfPD1bLqH61mt/ZtczVY7fXnX9n3vbYYGaHiF/ylunydXgmAsDXjSWKwq5r7TCDnQR5lPqDpNtbLpnD+aY22e8AOSRlKLOhVUH2CU3B3Ry8pIYbVZz983DHgMoymd8ZISoHE+,iv:8/DRKfCYp+IG/UgxxxN2PgFjdd24Rc4wNpcVHP9KsAo=,tag:/ikcKONeiE5BWVLYoaWaCw==,type:str] +CUSTOM: ENC[AES256_GCM,data:JP+FhvZVtGfrQNT4/qQkdTGJpIRT2mG35U5gwzWVjJ5tkv3ZqdYW1oUZluWTNQw1ayC82o9o2HKK6GiahMQUYvTnaJhVjwibE9fXHwQlExW5bKdeh43IYBRnWgejvlC6/LF9GK/23u8CzgsLIeQglrZcpITppgShuUt11TZRHY4r8lUIR+xDOiovIkIE+ZXXYBYg6e0/IS6C0SgEO6lIKR9WShVZ3Avm5fmPEGC2ipuQKDhNIc8T7e9CVc1ieKj58gXo6Xd6SH2XDDdkOR8wGkV/uZmYgaMMKo2a4CASgXCdwPfQxa/GdU8/05KgVP7ihCZn4ufXIA+BwMAdoGdLkO2KOQqyOuVVT/qXHUaWbBZQ3lDvqC8MaOuNxKWEhTQoJjX5eir7fe/GOqC8/yofu1+OpVwRedZmUdx3lIVd/Tv9A1LVrp0aldLuWdUJgW3994xK+K1hOXbruFWAkUznOMZiRvFnCCGc4CNo3TIO1krkRMQKffPjvF8OCoU9ojaGHw96AYdPQywnOLCPI2wy+tCITExLgGItDz0ewNE=,iv:/H03Fer5ZF6mpoO9pEfHVLxuULuWy5sDhCjR4eWsSXk=,tag:Ato0XXHZ0fo0xLKD+uGcSg==,type:str] TRAEFIK: ENC[AES256_GCM,data:Ei+/OL7xwNaOEg3rSaz95N78nvp51lC63XCplNzeD+bBMGcK9G7HoyQxfpaJ7S0MkuMW0ZXT2nJ4GES40GoJCZIrnEiSBm2tpjDfNjlS/rFwxx0wVfM1nsEuBf3pL5dqiCNa9+Lad2Cd,iv:d1MH0ive+E8xuUK0CIOXZeEigHJKVGlFaq0iH4KSbZA=,tag:VTARuNeotr2I0+fdOk+iqA==,type:str] AUTHENTIK: ENC[AES256_GCM,data:HlUFb7JjzSMTM345miSLlUE4SEXgaRAx7SkDDQzaJzs9VuifJKtOE2M4PCKc35VjVt9xIFH+YoIE93re10Rwbe+QEaUphPOgb/G7jRhaaPV/roBYuv6uO5xy68jaVJZpobxajOSVUmJa1JANCh1qrX0+Imr6udYULvK6wQzAnu2tEDkElQ3eZtezUa4E5ia1j7RCYTTPW9oie+YEVJl5Aws2HzPK5q0wKojZOmHanbnKzij3KnSgtsMc3ftL1Fam3wlSk2n3Tw0nz8aBag9IPwYje5zdBkDJY6qiBwYKcBPQUIW+Na0xX2JHymwJSzMdKmW8cEV9b1fXCPsnYVXulb4VMVkTk4MibZ3YT57wlFhqhSy7D39ZTySllIZg8sOrj8cKhpJ3HlSbceD1GnPJatVzZkDkDeyICLu9sYX3B+KrCDlL5sUMPagUFc3g3HUAPxLVPltoP69ro69acUoz5w8gkAwHlE45I3biC/jLz4telEcW8GkF868j3gsHiayE3f87T5MOPvuvhAFdSMl3SF1ND3mWjJq7+FmA6BhxgESg4m+vPnYyVumcbXJnbgfW69BgPYcL1CWZcA+SP6OWg9GOYT5SuWixkaGn2TgRAUj3nlCcAja8,iv:uXAyOIBl9lGYBvALMdvp2hf6cj6QGWRcyUvEsjIDr1I=,tag:iLxO/qYT2zafXhFGVVUYkA==,type:str] NEXTCLOUD: ENC[AES256_GCM,data:IWitzubILQ5SrGdO3UQZboisqAECt5lXOqHVg4yAKxedG7ZLOgVp6jPV+4VVDC13KEkxIsiYjjNvjqnOXCdYWQIC13YZ+o2IBDI9PgavBB3nmjfi0Q7BVki6C8qCtbM5H9uFlQ3h7rkPyEbE3pHa3dY5uwgdtmvw3qKf2UAZGIJCU7dKamjuTCucGitOEG434jFQik9duHZs7EV3AZrkLXqOfdvftvdpciDb/4/K7h/4uEYSXJ94Lf0b16/NRUcR,iv:1UvcbqC3hJEHU9t6Z+N226DTJEcgM315ynYkxPKpYSM=,tag:FGkXlUw+7LRu1/cpMys7OA==,type:str] @@ -31,8 +31,8 @@ sops: S1NaTVFTL0FCdm1EQmRsUnlhclZNZlEKEgIe60qkvY8+UocjQU+WM2dTL/1y3Kqk d4RrlLP9NSozwVsPYI4ntygvMSApbT4v0YvoO7gV90lkGWEvW1YDfA== -----END AGE ENCRYPTED FILE----- - lastmodified: "2026-05-15T14:26:21Z" - mac: ENC[AES256_GCM,data:fIG4gFNzgbyfkn1ofd23c45MzCCExrga47y9/2vtuzRU5xXmB9A9uA80JQHCoRTdu/2NlJIrGyOKoZK4RENo75s8s2ZK+HzcTNGWyZptLjrRBIiBQJyDHDaAE34Ghdm96m8YwOyBsnanbgz8LhR8gyIDxSMEcqx+OQcOHqPGd20=,iv:fa7ToxI8mWqc5NqPjITqzxLvtTNodj7yohLkP51b058=,tag:DhXrHxqFON5zjI3uNclnxw==,type:str] + lastmodified: "2026-05-17T19:38:18Z" + mac: ENC[AES256_GCM,data:om9ymlUPb/nNvA/7KTx4vEtUsFYiB53Q7+X5bqFRqdPriJQOqS0XkD93zkdgMWllto9/0srzb6o9J17XKLM2k6mXC9Bi8x8uccU9ru3CWuoODnbuWpnGtgMF65y19D9+czMZisr4ofFgAwzofoQgxK2GghQbIoK1JFMxtTNU05g=,iv:KIhAlCArmgTiSaUnUwLju/CtYbDtrCHbmc3Ox4wYio8=,tag:TUAimihweg/OTjv/G4GSeQ==,type:str] pgp: - created_at: "2026-05-05T23:46:27Z" enc: |-