use service:gluetune as network parameter
All checks were successful
/ perform flake analysis (push) Successful in 1m20s
/ build hive configuration (push) Successful in 8m23s

This commit is contained in:
Awen Lelu
2025-12-20 11:06:23 +01:00
parent f06e325736
commit 1e58fbe5f4

View File

@@ -1,9 +1,10 @@
{config, ...}: { { config, ... }:
{
users.users."starr" = { users.users."starr" = {
extraGroups = [ "transmission" ]; extraGroups = [ "transmission" ];
}; };
users.users.transmission = { users.users.transmission = {
isSystemUser = true; isSystemUser = true;
group = "transmission"; group = "transmission";
@@ -14,56 +15,58 @@
transmission.gid = 989; transmission.gid = 989;
}; };
virtualisation.oci-containers = let virtualisation.oci-containers =
peerport = "63369"; let
in { peerport = "63369";
backend = "docker"; in
containers = { {
gluetun = { backend = "docker";
image = "qmcgaw/gluetun"; containers = {
environment = { gluetun = {
VPN_SERVICE_PROVIDER = "airvpn"; image = "qmcgaw/gluetun";
VPN_TYPE = "wireguard"; environment = {
# WIREGUARD_PRIVATE_KEY = "from agenix"; VPN_SERVICE_PROVIDER = "airvpn";
# WIREGUARD_PRESHARED_KEY = "from agenix"; VPN_TYPE = "wireguard";
# WIREGUARD_ADDRESSES = "from agenix"; # WIREGUARD_PRIVATE_KEY = "from agenix";
# SERVER_COUNTRIES = "from agenix"; # WIREGUARD_PRESHARED_KEY = "from agenix";
FIREWALL_VPN_INPUT_PORTS = "13277,${peerport}"; # 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 = [ transmission = {
config.age.secrets.airvpn-params.path image = "docker.io/linuxserver/transmission:latest";
]; volumes = [
extraOptions = [ "/etc/transmission:/config"
"--cap-add=NET_ADMIN" "/etc/localtime:/etc/localtime:ro"
"--device=/dev/net/tun" "/mnt/mediacenter/torrents:/mnt/mediacenter/torrents"
]; "/mnt/data/transmission_downloads:/mnt/data/transmission_downloads"
ports = [ ];
"13277:13277" dependsOn = [
"9091:13277" "gluetun"
"${peerport}:${peerport}" ];
"${peerport}:${peerport}/udp" extraOptions = [
]; "--network=service:gluetun"
}; ];
transmission = { environment = {
image = "docker.io/linuxserver/transmission:latest"; PUID = toString config.users.users.transmission.uid;
volumes = [ GUID = toString config.users.groups.transmission.gid;
"/etc/transmission:/config" PEERPORT = peerport;
"/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;
}; };
}; };
}; };
};
} }