From 1e58fbe5f41df529d250c98e14a6a7401e3d58b5 Mon Sep 17 00:00:00 2001 From: Awen Lelu Date: Sat, 20 Dec 2025 11:06:23 +0100 Subject: [PATCH] use service:gluetune as network parameter --- hosts/sin/transmission.nix | 103 +++++++++++++++++++------------------ 1 file changed, 53 insertions(+), 50 deletions(-) diff --git a/hosts/sin/transmission.nix b/hosts/sin/transmission.nix index 88f59c6..698a1a1 100644 --- a/hosts/sin/transmission.nix +++ b/hosts/sin/transmission.nix @@ -1,9 +1,10 @@ -{config, ...}: { +{ config, ... }: +{ users.users."starr" = { extraGroups = [ "transmission" ]; }; - + users.users.transmission = { isSystemUser = true; group = "transmission"; @@ -14,56 +15,58 @@ transmission.gid = 989; }; - virtualisation.oci-containers = let - peerport = "63369"; - in { - backend = "docker"; - containers = { - gluetun = { - image = "qmcgaw/gluetun"; - environment = { - VPN_SERVICE_PROVIDER = "airvpn"; - VPN_TYPE = "wireguard"; - # WIREGUARD_PRIVATE_KEY = "from agenix"; - # WIREGUARD_PRESHARED_KEY = "from agenix"; - # WIREGUARD_ADDRESSES = "from agenix"; - # SERVER_COUNTRIES = "from agenix"; - FIREWALL_VPN_INPUT_PORTS = "13277,${peerport}"; + virtualisation.oci-containers = + let + peerport = "63369"; + in + { + backend = "docker"; + containers = { + gluetun = { + image = "qmcgaw/gluetun"; + environment = { + VPN_SERVICE_PROVIDER = "airvpn"; + VPN_TYPE = "wireguard"; + # WIREGUARD_PRIVATE_KEY = "from agenix"; + # WIREGUARD_PRESHARED_KEY = "from agenix"; + # WIREGUARD_ADDRESSES = "from agenix"; + # SERVER_COUNTRIES = "from agenix"; + FIREWALL_VPN_INPUT_PORTS = "13277,${peerport}"; + }; + environmentFiles = [ + config.age.secrets.airvpn-params.path + ]; + extraOptions = [ + "--cap-add=NET_ADMIN" + "--device=/dev/net/tun" + ]; + ports = [ + "13277:13277" + "9091:13277" + "${peerport}:${peerport}" + "${peerport}:${peerport}/udp" + ]; }; - environmentFiles = [ - config.age.secrets.airvpn-params.path - ]; - extraOptions = [ - "--cap-add=NET_ADMIN" - "--device=/dev/net/tun" - ]; - ports = [ - "13277:13277" - "9091:13277" - "${peerport}:${peerport}" - "${peerport}:${peerport}/udp" - ]; - }; - transmission = { - image = "docker.io/linuxserver/transmission:latest"; - volumes = [ - "/etc/transmission:/config" - "/etc/localtime:/etc/localtime:ro" - "/mnt/mediacenter/torrents:/mnt/mediacenter/torrents" - "/mnt/data/transmission_downloads:/mnt/data/transmission_downloads" - ]; - dependsOn = [ - "gluetun" - ]; - extraOptions = [ - "--network=container:gluetun" - ]; - environment = { - PUID = toString config.users.users.transmission.uid; - GUID = toString config.users.groups.transmission.gid; - PEERPORT = peerport; + transmission = { + image = "docker.io/linuxserver/transmission:latest"; + volumes = [ + "/etc/transmission:/config" + "/etc/localtime:/etc/localtime:ro" + "/mnt/mediacenter/torrents:/mnt/mediacenter/torrents" + "/mnt/data/transmission_downloads:/mnt/data/transmission_downloads" + ]; + dependsOn = [ + "gluetun" + ]; + extraOptions = [ + "--network=service:gluetun" + ]; + environment = { + PUID = toString config.users.users.transmission.uid; + GUID = toString config.users.groups.transmission.gid; + PEERPORT = peerport; + }; }; }; }; - }; }