85 lines
2.3 KiB
Nix
85 lines
2.3 KiB
Nix
{ service_configs, ... }:
|
|
{
|
|
virtualisation.quadlet = {
|
|
containers =
|
|
let
|
|
baseContainerConfig = {
|
|
autoUpdate = "registry";
|
|
environments = {
|
|
PUID = 1000;
|
|
PGID = 1000;
|
|
};
|
|
};
|
|
in
|
|
{
|
|
minecraft-server.containerConfig = baseContainerConfig // {
|
|
image = "docker.io/itzg/minecraft-server:java21-graalvm";
|
|
name = "minecraft";
|
|
|
|
environments = {
|
|
TYPE = "QUILT";
|
|
MEMORY = "4G";
|
|
MOD_PLATFORM = "MODRINTH";
|
|
USE_AIKAR_FLAGS = true;
|
|
JVM_OPTS = "-XX:-UseJVMCICompiler";
|
|
MODRINTH_MODPACK = "https://modrinth.com/modpack/sop";
|
|
VERSION = "1.21.1";
|
|
};
|
|
|
|
publishPorts = [ "${builtins.toString service_configs.ports.minecraft}:25565" ];
|
|
volumes = [ "${service_configs.minecraft.dir}:/data:z" ];
|
|
};
|
|
|
|
gluetun.containerConfig = baseContainerConfig // {
|
|
image = "docker.io/qmcgaw/gluetun";
|
|
name = "gluetun";
|
|
|
|
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 = baseContainerConfig // {
|
|
image = "lscr.io/linuxserver/qbittorrent:latest";
|
|
name = "qbittorrent";
|
|
environments = {
|
|
WEBUI_PORT = service_configs.ports.torrent;
|
|
DOCKER_MODS = "ghcr.io/gabe565/linuxserver-mod-vuetorrent";
|
|
};
|
|
|
|
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" ];
|
|
};
|
|
};
|
|
}
|