server-config/services/quadlet.nix
2024-10-07 23:16:04 -04:00

62 lines
1.5 KiB
Nix

{ service_configs, config, ... }:
{
virtualisation.quadlet = {
containers = {
gluetun.containerConfig = {
image = "docker.io/qmcgaw/gluetun";
name = "gluetun";
# autoUpdate = "registry";
addCapabilities = [
"NET_ADMIN"
"MKNOD"
];
environments = import ../secrets/mullvad.nix;
publishPorts = [
"6081:6081"
"6081:6081/udp"
"${builtins.toString service_configs.ports.torrent}:6011"
];
volumes = [ "${service_configs.gluetun.dir}:/gluetun:z" ];
podmanArgs = [
"--device=/dev/net/tun"
"--security-opt label=disable"
];
};
qbittorrent = {
containerConfig = {
image = "lscr.io/linuxserver/qbittorrent:latest";
name = "qbittorrent";
autoUpdate = "registry";
environments = {
WEBUI_PORT = service_configs.ports.torrent;
DOCKER_MODS = "ghcr.io/gabe565/linuxserver-mod-vuetorrent";
PGID = config.users.groups.${config.services.jellyfin.group}.gid;
};
volumes = [
"${service_configs.torrent.config_dir}:/config:z"
"${service_configs.torrent.download_dir}:/downloads:z"
];
networks = [ "container:gluetun" ];
};
serviceConfig = {
requires = [ "gluetun.service" ];
after = [ "gluetun.service" ];
};
};
};
networks = {
internal.networkConfig.subnets = [ "10.0.123.1/24" ];
};
};
}