2025-01-22 20:08:13 +00:00
|
|
|
{config, ...}: let
|
2025-01-10 09:07:36 +00:00
|
|
|
openVpnPwd = config.sops.secrets."software/proton/openvpn_password".path;
|
|
|
|
openVpnUser = config.sops.secrets."software/proton/openvpn_user".path;
|
2025-01-07 16:35:16 +00:00
|
|
|
in {
|
2025-01-10 09:07:36 +00:00
|
|
|
sops.secrets = {
|
|
|
|
"software/proton/openvpn_password" = {};
|
|
|
|
"software/proton/openvpn_user" = {};
|
|
|
|
};
|
|
|
|
|
2025-01-22 20:08:13 +00:00
|
|
|
networking = {
|
|
|
|
firewall = {
|
|
|
|
enable = true;
|
|
|
|
allowedTCPPorts = [
|
|
|
|
6887
|
|
|
|
];
|
|
|
|
allowedUDPPorts = [
|
|
|
|
6887
|
|
|
|
];
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2025-01-07 16:35:16 +00:00
|
|
|
virtualisation.arion = {
|
|
|
|
backend = "podman-socket";
|
2025-01-10 09:07:36 +00:00
|
|
|
projects.arrstack = {
|
2025-01-07 16:35:16 +00:00
|
|
|
settings = {
|
|
|
|
services.gluetun.service = {
|
|
|
|
ports = [
|
2025-01-10 09:07:36 +00:00
|
|
|
"8076:8076" # qbittorrent webui port
|
|
|
|
"6887:6887" # qbittorrent torrenting port
|
|
|
|
"6887:6887/udp" # qbittorrent torrenting port
|
2025-02-28 11:30:33 +00:00
|
|
|
"9696:9696" # prowlarr port
|
|
|
|
"8191:8191" # prowlarr port
|
2025-01-07 16:35:16 +00:00
|
|
|
];
|
|
|
|
image = "qmcgaw/gluetun";
|
2025-01-22 20:08:13 +00:00
|
|
|
capabilities = {NET_ADMIN = true;};
|
2025-01-10 09:07:36 +00:00
|
|
|
container_name = "glutun";
|
2025-01-07 16:35:16 +00:00
|
|
|
restart = "always";
|
|
|
|
volumes = [
|
2025-01-12 16:10:35 +00:00
|
|
|
"/srv/docker/media-server/arrstack/gluetun:/gluetun"
|
2025-01-10 09:07:36 +00:00
|
|
|
"${openVpnPwd}:/run/secrets/openvpn_password"
|
|
|
|
"${openVpnUser}:/run/secrets/openvpn_user"
|
2025-01-07 16:35:16 +00:00
|
|
|
];
|
|
|
|
environment = {
|
2025-01-10 09:07:36 +00:00
|
|
|
VPN_SERVICE_PROVIDER = "protonvpn";
|
2025-01-07 16:35:16 +00:00
|
|
|
VPN_TYPE = "openvpn";
|
|
|
|
SERVER_COUNTRIES = "Switzerland";
|
2025-01-22 20:08:13 +00:00
|
|
|
VPN_PORT_FORWARDING = "on";
|
2025-01-07 16:35:16 +00:00
|
|
|
};
|
|
|
|
devices = ["/dev/net/tun:/dev/net/tun"];
|
2025-01-10 09:07:36 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
services.qbittorrent.service = {
|
|
|
|
image = "lscr.io/linuxserver/qbittorrent:latest";
|
|
|
|
container_name = "qbittorrent";
|
|
|
|
restart = "always";
|
|
|
|
volumes = [
|
2025-01-12 16:10:35 +00:00
|
|
|
"/srv/docker/media-server/arrstack/qbittorrent:/config"
|
2025-01-22 20:46:37 +00:00
|
|
|
"/media/media/downloads:/downloads"
|
2025-01-07 16:35:16 +00:00
|
|
|
];
|
2025-01-10 09:07:36 +00:00
|
|
|
environment = {
|
2025-01-22 20:08:13 +00:00
|
|
|
TZ = "Europe/London";
|
|
|
|
WEBUI_PORT = 8076;
|
|
|
|
TORRENTING_PORT = 6887;
|
|
|
|
PUID = 1000;
|
|
|
|
PGID = 1000;
|
2025-01-10 09:07:36 +00:00
|
|
|
};
|
|
|
|
network_mode = "service:gluetun";
|
2025-01-07 16:35:16 +00:00
|
|
|
};
|
2025-02-28 11:30:33 +00:00
|
|
|
|
|
|
|
services.prowlarr.service = {
|
|
|
|
image = "lscr.io/linuxserver/prowlarr:latest";
|
|
|
|
container_name = "prowlarr";
|
|
|
|
restart = "always";
|
|
|
|
volumes = [
|
|
|
|
"/srv/docker/media-server/arrstack/prowlarr:/config"
|
|
|
|
"/media/media/downloads:/downloads"
|
|
|
|
];
|
|
|
|
environment = {
|
|
|
|
TZ = "Europe/London";
|
|
|
|
PUID = 1000;
|
|
|
|
PGID = 1000;
|
|
|
|
};
|
|
|
|
network_mode = "service:gluetun";
|
|
|
|
};
|
|
|
|
|
|
|
|
services.flaresolverr.service = {
|
|
|
|
image = "ghcr.io/flaresolverr/flaresolverr:latest";
|
|
|
|
container_name = "flaresolverr";
|
|
|
|
restart = "always";
|
|
|
|
environment = {
|
|
|
|
TZ = "Europe/London";
|
|
|
|
LOG_LEVEL = "\${LOG_LEVEL:-info}";
|
|
|
|
LOG_HTML = "\${LOG_HTML:-false}";
|
|
|
|
CAPTCHA_SOLVER = "\${CAPTCHA_SOLVER:-none}";
|
|
|
|
};
|
|
|
|
network_mode = "service:gluetun";
|
|
|
|
};
|
2025-01-07 16:35:16 +00:00
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
}
|