112 lines
2.7 KiB
Nix
112 lines
2.7 KiB
Nix
{
|
|
config,
|
|
pkgs,
|
|
lib,
|
|
...
|
|
}:
|
|
{
|
|
|
|
users.users."starr" = {
|
|
extraGroups = [ "transmission" ];
|
|
};
|
|
|
|
users.users.transmission = {
|
|
isSystemUser = true;
|
|
group = "transmission";
|
|
uid = 992;
|
|
};
|
|
|
|
users.groups = {
|
|
transmission.gid = 989;
|
|
};
|
|
|
|
# systemd.services = {
|
|
# docker-transmission-network = {
|
|
# after = [
|
|
# "network.target"
|
|
# "docker-gluetun.service"
|
|
# "docker-transmission.service"
|
|
# ];
|
|
# wantedBy = [
|
|
# "docker-gluetun.service"
|
|
# "docker-transmission.service"
|
|
# ];
|
|
# serviceConfig = {
|
|
# ExecStart = "${lib.getExe pkgs.docker} network create docker-transmission; exit 0";
|
|
# };
|
|
# };
|
|
# };
|
|
|
|
virtualisation.oci-containers =
|
|
let
|
|
peerport = "44161";
|
|
webport = "44160";
|
|
in
|
|
{
|
|
backend = "docker";
|
|
containers = {
|
|
gluetun = {
|
|
image = "qmcgaw/gluetun:latest";
|
|
environment = {
|
|
VPN_SERVICE_PROVIDER = "airvpn";
|
|
VPN_TYPE = "wireguard";
|
|
SERVER_NAMES = "Taiyangshou";
|
|
FIREWALL_VPN_INPUT_PORTS = "${peerport},${webport}";
|
|
|
|
TZ = "Europe/Paris";
|
|
};
|
|
environmentFiles = [
|
|
config.age.secrets.airvpn-params.path
|
|
];
|
|
extraOptions = [
|
|
"--cap-add=NET_ADMIN"
|
|
"--device=/dev/net/tun"
|
|
# "--network=docker-transmission"
|
|
];
|
|
ports = [
|
|
"13277:13277"
|
|
"${webport}:${webport}"
|
|
"${peerport}:${peerport}"
|
|
"${peerport}:${peerport}/udp"
|
|
];
|
|
volumes = [
|
|
"/etc/gluetun:/gluetun"
|
|
];
|
|
};
|
|
qbittorrent = {
|
|
image = "lscr.io/linuxserver/qbittorrent:latest";
|
|
volumes = [
|
|
"/etc/localtime:/etc/localtime:ro"
|
|
|
|
"/mnt/mediacenter/torrents:/mnt/mediacenter/torrents"
|
|
"/mnt/data/transmission_downloads:/mnt/data/transmission_downloads"
|
|
|
|
"/mnt/data/downloads:/downloads"
|
|
|
|
"/etc/qbittorrent:/config"
|
|
];
|
|
dependsOn = [
|
|
"gluetun"
|
|
];
|
|
extraOptions = [
|
|
"--network=container:gluetun"
|
|
# "-u=992:989"
|
|
# "-u=${toString config.users.users.transmission.uid}:${toString config.users.groups.starr.gid}"
|
|
];
|
|
environment = {
|
|
PUID = toString config.users.users.transmission.uid;
|
|
PGID = toString config.users.groups.starr.gid;
|
|
TZ = "Europe/Paris";
|
|
|
|
WEBUI_PORT = "${webport}";
|
|
TORRENTING_PORT = "${peerport}";
|
|
};
|
|
};
|
|
};
|
|
};
|
|
networking.firewall.allowedTCPPorts = [
|
|
44160
|
|
13277
|
|
];
|
|
}
|