mirror of
https://github.com/nmasur/dotfiles
synced 2024-11-26 14:15:36 +00:00
decouple wireguard and transmission
This commit is contained in:
parent
18154b6579
commit
e3d4b36613
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
options = {
|
options = {
|
||||||
transmissionServer = lib.mkOption {
|
transmissionServer = lib.mkOption {
|
||||||
type = lib.types.str;
|
type = lib.types.nullOr lib.types.str;
|
||||||
description = "Hostname for Transmission";
|
description = "Hostname for Transmission";
|
||||||
default = null;
|
default = null;
|
||||||
};
|
};
|
||||||
@ -12,7 +12,7 @@
|
|||||||
namespace = config.networking.wireguard.interfaces.wg0.interfaceNamespace;
|
namespace = config.networking.wireguard.interfaces.wg0.interfaceNamespace;
|
||||||
vpnIp = lib.strings.removeSuffix "/32"
|
vpnIp = lib.strings.removeSuffix "/32"
|
||||||
(builtins.head config.networking.wireguard.interfaces.wg0.ips);
|
(builtins.head config.networking.wireguard.interfaces.wg0.ips);
|
||||||
in lib.mkIf (config.wireguard.enable && config.transmissionServer != null) {
|
in lib.mkIf (config.transmissionServer != null) {
|
||||||
|
|
||||||
# Setup transmission
|
# Setup transmission
|
||||||
services.transmission = {
|
services.transmission = {
|
||||||
@ -26,13 +26,13 @@
|
|||||||
rpc-host-whitelist = config.transmissionServer;
|
rpc-host-whitelist = config.transmissionServer;
|
||||||
rpc-host-whitelist-enabled = true;
|
rpc-host-whitelist-enabled = true;
|
||||||
rpc-whitelist = "127.0.0.1,${vpnIp}";
|
rpc-whitelist = "127.0.0.1,${vpnIp}";
|
||||||
rpc-whitelist-enabled = true;
|
rpc-whitelist-enabled = config.wireguard.enable;
|
||||||
};
|
};
|
||||||
credentialsFile = config.secrets.transmission.dest;
|
credentialsFile = config.secrets.transmission.dest;
|
||||||
};
|
};
|
||||||
|
|
||||||
# Bind transmission to wireguard namespace
|
# Bind transmission to wireguard namespace
|
||||||
systemd.services.transmission = {
|
systemd.services.transmission = lib.mkIf config.wireguard.enable {
|
||||||
bindsTo = [ "netns@${namespace}.service" ];
|
bindsTo = [ "netns@${namespace}.service" ];
|
||||||
requires = [ "network-online.target" "transmission-secret.service" ];
|
requires = [ "network-online.target" "transmission-secret.service" ];
|
||||||
after = [ "wireguard-wg0.service" "transmission-secret.service" ];
|
after = [ "wireguard-wg0.service" "transmission-secret.service" ];
|
||||||
@ -59,7 +59,7 @@
|
|||||||
boot.kernel.sysctl."net.core.rmem_max" = 4194304;
|
boot.kernel.sysctl."net.core.rmem_max" = 4194304;
|
||||||
|
|
||||||
# Allow inbound connections to reach namespace
|
# Allow inbound connections to reach namespace
|
||||||
systemd.services.transmission-web-netns = {
|
systemd.services.transmission-web-netns = lib.mkIf config.wireguard.enable {
|
||||||
description = "Forward to transmission in wireguard namespace";
|
description = "Forward to transmission in wireguard namespace";
|
||||||
requires = [ "transmission.service" ];
|
requires = [ "transmission.service" ];
|
||||||
after = [ "transmission.service" ];
|
after = [ "transmission.service" ];
|
||||||
|
Loading…
Reference in New Issue
Block a user