104 lines
2.9 KiB
Nix
104 lines
2.9 KiB
Nix
{ pkgs, ... }:
|
|
|
|
let
|
|
delugeBase = {
|
|
environment = {
|
|
PUID = "600";
|
|
PGID = "100";
|
|
TZ = "America/New_York";
|
|
UMASK = "000";
|
|
DEBUG = "true";
|
|
DELUGE_DAEMON_LOG_LEVEL = "debug";
|
|
DELUGE_WEB_LOG_LEVEL = "debug";
|
|
};
|
|
};
|
|
|
|
vars = import ../vars.nix;
|
|
#docker_path = vars.primary_docker;
|
|
torr_path = vars.primary_torr;
|
|
deluge_path = "${torr_path}/deluge";
|
|
delugevpn_path = "${torr_path}/delugevpn";
|
|
|
|
genSopsConf = file: {
|
|
"${file}" = {
|
|
format = "binary";
|
|
sopsFile = ./wg/${file};
|
|
path = "${delugevpn_path}/config/wireguard/configs/${file}";
|
|
owner = "docker-service";
|
|
group = "users";
|
|
restartUnits = [ "docker-delugeVPN.service" ];
|
|
};
|
|
};
|
|
in
|
|
{
|
|
virtualisation.oci-containers.containers = {
|
|
deluge = delugeBase // {
|
|
image = "binhex/arch-deluge";
|
|
volumes = [
|
|
"${deluge_path}/config:/config"
|
|
"${deluge_path}/data/:/data"
|
|
"/etc/localtime:/etc/localtime:ro"
|
|
];
|
|
ports = [
|
|
"8084:8112"
|
|
"29433:29433"
|
|
];
|
|
};
|
|
delugeVPN = delugeBase // {
|
|
image = "binhex/arch-delugevpn";
|
|
extraOptions = [
|
|
"--privileged=true"
|
|
"--sysctl"
|
|
"net.ipv4.conf.all.src_valid_mark=1"
|
|
];
|
|
environment = delugeBase.environment // {
|
|
VPN_ENABLED = "yes";
|
|
VPN_CLIENT = "wireguard";
|
|
VPN_PROV = "custom";
|
|
ENABLE_PRIVOXY = "yes";
|
|
LAN_NETWORK = "192.168.0.0/16";
|
|
NAME_SERVERS = "194.242.2.9";
|
|
# note, delete /config/perms.txt to force a bulk permissions update
|
|
|
|
};
|
|
volumes = [
|
|
"${delugevpn_path}/config:/config"
|
|
"${delugevpn_path}/data:/data"
|
|
"/etc/localtime:/etc/localtime:ro"
|
|
];
|
|
ports = [
|
|
"8085:8112"
|
|
"8119:8118"
|
|
"39275:39275"
|
|
"39275:39275/udp"
|
|
];
|
|
};
|
|
};
|
|
|
|
systemd.services.docker-delugeVPN = {
|
|
serviceConfig = {
|
|
ExecStartPre = [
|
|
(
|
|
"${pkgs.bash}/bin/bash -c \"${pkgs.findutils}/bin/find ${delugevpn_path}/config/wireguard/configs "
|
|
+ "-type l -not -name wg0.conf "
|
|
+ "| ${pkgs.coreutils}/bin/shuf -n 1 "
|
|
+ "| ${pkgs.findutils}/bin/xargs -I {} cp -L {} ${delugevpn_path}/config/wireguard/wg0.conf &&"
|
|
+ "${pkgs.coreutils}/bin/chown docker-service:users ${delugevpn_path}/config/wireguard/wg0.conf &&"
|
|
+ "${pkgs.coreutils}/bin/chmod 440 ${delugevpn_path}/config/wireguard/wg0.conf\""
|
|
)
|
|
];
|
|
ExecStopPost = [ "${pkgs.coreutils}/bin/rm ${delugevpn_path}/config/wireguard/wg0.conf" ];
|
|
};
|
|
};
|
|
|
|
sops.secrets =
|
|
(genSopsConf "se-mma-wg-001.conf")
|
|
// (genSopsConf "se-mma-wg-002.conf")
|
|
// (genSopsConf "se-mma-wg-003.conf")
|
|
// (genSopsConf "se-mma-wg-004.conf")
|
|
// (genSopsConf "se-mma-wg-005.conf")
|
|
// (genSopsConf "se-mma-wg-101.conf")
|
|
// (genSopsConf "se-mma-wg-102.conf")
|
|
// (genSopsConf "se-mma-wg-103.conf");
|
|
}
|