Compare commits

...

2 Commits

Author SHA1 Message Date
6f2048fd32 minecraft: 1.21.1 -> 1.21.3 2024-11-12 12:41:54 -05:00
1bbd8e1a53 things and stuff 2024-11-12 12:33:17 -05:00
9 changed files with 76 additions and 62 deletions

View File

@@ -17,7 +17,8 @@
./services/immich.nix ./services/immich.nix
./services/gitea.nix ./services/gitea.nix
./services/minecraft.nix ./services/minecraft.nix
./services/llm.nix # ./services/llm.nix
# ./services/soulseek.nix
]; ];
systemd.targets = { systemd.targets = {
@@ -48,11 +49,12 @@
}; };
boot = { boot = {
# kernelPackages = pkgs.linuxPackages_6_10; kernelPackages = pkgs.linuxPackages_latest;
kernelPackages = pkgs.linuxPackages;
supportedFilesystems = [ "zfs" ]; supportedFilesystems = [ "zfs" ];
zfs.extraPools = [ "tank" ]; zfs.extraPools = [ "tank" ];
zfs.package = pkgs.zfsUnstable;
loader = { loader = {
# Use the systemd-boot EFI boot loader. # Use the systemd-boot EFI boot loader.
systemd-boot.enable = true; systemd-boot.enable = true;
@@ -207,6 +209,7 @@
hostId = "0f712d56"; hostId = "0f712d56";
firewall.enable = true; firewall.enable = true;
useDHCP = false; useDHCP = false;
enableIPv6 = false;
interfaces.${eth_interface} = { interfaces.${eth_interface} = {
ipv4.addresses = [ ipv4.addresses = [
@@ -215,6 +218,12 @@
prefixLength = 24; prefixLength = 24;
} }
]; ];
ipv6.addresses = [
{
address = "2603:9001:3900:f005:1779:17ed:4698:6259";
prefixLength = 64;
}
];
}; };
defaultGateway = { defaultGateway = {
address = "10.1.1.1"; address = "10.1.1.1";
@@ -240,9 +249,6 @@
"render" "render"
"minecraft" "minecraft"
config.services.gitea.group
config.services.jellyfin.group
config.services.caddy.group
]; ];
hashedPasswordFile = "/etc/nixos/secrets/hashedPass"; hashedPasswordFile = "/etc/nixos/secrets/hashedPass";

37
flake.lock generated
View File

@@ -34,22 +34,6 @@
"type": "github" "type": "github"
} }
}, },
"jellyfin": {
"locked": {
"lastModified": 1730145036,
"narHash": "sha256-amYxkGRsSbDe8YNgJ9x0lxDAgDvi3xxO3pRjImdy5DQ=",
"owner": "NixOS",
"repo": "nixpkgs",
"rev": "bf8b641d2d58a80650ac486525d7ec5a306b69da",
"type": "github"
},
"original": {
"owner": "NixOS",
"ref": "pull/351966/head",
"repo": "nixpkgs",
"type": "github"
}
},
"nix-minecraft": { "nix-minecraft": {
"inputs": { "inputs": {
"flake-compat": "flake-compat", "flake-compat": "flake-compat",
@@ -59,11 +43,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1730426071, "lastModified": 1731375802,
"narHash": "sha256-2BkSiHqyWikpz9HSgTBk5kikaQ5m0Rs60C9KA2kf53o=", "narHash": "sha256-CvWPEzrl2EA3xrtg9X6K8aqV7T5r0SaDz6PLpGA0yIY=",
"owner": "Infinidoge", "owner": "Infinidoge",
"repo": "nix-minecraft", "repo": "nix-minecraft",
"rev": "4b371c3d119493051d081ff5b6cff689a97ad1a1", "rev": "b873a123366b9a62f9262414ada8d83b03f1f0bf",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -74,11 +58,11 @@
}, },
"nixos-hardware": { "nixos-hardware": {
"locked": { "locked": {
"lastModified": 1730368399, "lastModified": 1731403644,
"narHash": "sha256-F8vJtG389i9fp3k2/UDYHMed3PLCJYfxCqwiVP7b9ig=", "narHash": "sha256-T9V7CTucjRZ4Qc6pUEV/kpgNGzQbHWfGcfK6JJLfUeI=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixos-hardware", "repo": "nixos-hardware",
"rev": "da14839ac5f38ee6adbdb4e6db09b5eef6d6ccdc", "rev": "f6581f1c3b137086e42a08a906bdada63045f991",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -90,16 +74,16 @@
}, },
"nixpkgs": { "nixpkgs": {
"locked": { "locked": {
"lastModified": 1730200266, "lastModified": 1731432729,
"narHash": "sha256-l253w0XMT8nWHGXuXqyiIC/bMvh1VRszGXgdpQlfhvU=", "narHash": "sha256-xMIgn4+PJrb9IQh/Llq4EOmeoHnz2rDWSqlF2BDPkNQ=",
"owner": "NixOS", "owner": "NixOS",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "807e9154dcb16384b1b765ebe9cd2bba2ac287fd", "rev": "9c66a68772c91490d7991b5136873e09e75d517d",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "NixOS", "owner": "NixOS",
"ref": "nixos-unstable", "ref": "master",
"repo": "nixpkgs", "repo": "nixpkgs",
"type": "github" "type": "github"
} }
@@ -126,7 +110,6 @@
}, },
"root": { "root": {
"inputs": { "inputs": {
"jellyfin": "jellyfin",
"nix-minecraft": "nix-minecraft", "nix-minecraft": "nix-minecraft",
"nixos-hardware": "nixos-hardware", "nixos-hardware": "nixos-hardware",
"nixpkgs": "nixpkgs", "nixpkgs": "nixpkgs",

View File

@@ -2,14 +2,13 @@
description = "Flake for server muffin"; description = "Flake for server muffin";
inputs = { inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; # nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
# nixpkgs.url = "github:NixOS/nixpkgs/master"; nixpkgs.url = "github:NixOS/nixpkgs/master";
nixos-hardware.url = "github:NixOS/nixos-hardware/master"; nixos-hardware.url = "github:NixOS/nixos-hardware/master";
quadlet-nix.url = "github:SEIAROTg/quadlet-nix"; quadlet-nix.url = "github:SEIAROTg/quadlet-nix";
quadlet-nix.inputs.nixpkgs.follows = "nixpkgs"; quadlet-nix.inputs.nixpkgs.follows = "nixpkgs";
jellyfin.url = "github:NixOS/nixpkgs/pull/351966/head";
nix-minecraft.url = "github:Infinidoge/nix-minecraft"; nix-minecraft.url = "github:Infinidoge/nix-minecraft";
nix-minecraft.inputs.nixpkgs.follows = "nixpkgs"; nix-minecraft.inputs.nixpkgs.follows = "nixpkgs";

View File

@@ -1,4 +1,9 @@
{ config, service_configs, ... }: {
config,
service_configs,
username,
...
}:
{ {
services.caddy = { services.caddy = {
enable = true; enable = true;
@@ -38,4 +43,8 @@
networking.firewall.allowedUDPPorts = [ networking.firewall.allowedUDPPorts = [
service_configs.ports.https service_configs.ports.https
]; ];
users.users.${username}.extraGroups = [
config.services.caddy.group
];
} }

View File

@@ -1,6 +1,7 @@
{ {
config, config,
service_configs, service_configs,
username,
... ...
}: }:
{ {
@@ -39,4 +40,8 @@
} }
]; ];
}; };
users.users.${username}.extraGroups = [
config.services.gitea.group
];
} }

View File

@@ -3,6 +3,7 @@
config, config,
service_configs, service_configs,
inputs, inputs,
username,
... ...
}: }:
{ {
@@ -17,9 +18,6 @@
# used for local streaming # used for local streaming
openFirewall = true; openFirewall = true;
# https://github.com/NixOS/nixpkgs/pull/351966
# package = inputs.jellyfin.legacyPackages.${pkgs.system}.jellyfin;
dataDir = service_configs.jellyfin.dir; dataDir = service_configs.jellyfin.dir;
cacheDir = config.services.jellyfin.dataDir + "_cache"; cacheDir = config.services.jellyfin.dataDir + "_cache";
}; };
@@ -28,4 +26,8 @@
"video" "video"
"render" "render"
]; ];
users.users.${username}.extraGroups = [
config.services.jellyfin.group
];
} }

View File

@@ -22,7 +22,7 @@ in
servers.${service_configs.minecraft.server_name} = { servers.${service_configs.minecraft.server_name} = {
enable = true; enable = true;
package = pkgs.fabricServers.fabric-1_21_1; package = pkgs.fabricServers.fabric-1_21_3;
jvmOpts = "-Xmx${heap_size} -Xms${heap_size} -XX:+UseZGC -XX:+ZGenerational"; jvmOpts = "-Xmx${heap_size} -Xms${heap_size} -XX:+UseZGC -XX:+ZGenerational";
@@ -41,8 +41,8 @@ in
"mods" = pkgs.linkFarmFromDrvs "mods" ( "mods" = pkgs.linkFarmFromDrvs "mods" (
builtins.attrValues { builtins.attrValues {
FabricApi = pkgs.fetchurl { FabricApi = pkgs.fetchurl {
url = "https://cdn.modrinth.com/data/P7dR8mSH/versions/thGkUOxt/fabric-api-0.107.0%2B1.21.1.jar"; url = "https://cdn.modrinth.com/data/P7dR8mSH/versions/MawoBGbv/fabric-api-0.107.3%2B1.21.3.jar";
sha512 = "04cf3f205c83882c7c741da392d10cbf9ab471fb44836d753f9673b7b37ddb9b2842cc8e72d6d7f36c48d121715f9f9dae8d20e597f2c0de3bb8abd37037baaa"; sha512 = "84e6bbdcd9819999e9d8873be7b6470bc9de898cdc0b878caeb8deb26e7cf3a1c532710e239815565d40afdb06db423746506f4c174fc3938c2790b5e6d5266f";
}; };
# https://github.com/malte0811/FerriteCore/issues/164 # https://github.com/malte0811/FerriteCore/issues/164
@@ -52,18 +52,13 @@ in
# }; # };
Lithium = pkgs.fetchurl { Lithium = pkgs.fetchurl {
url = "https://cdn.modrinth.com/data/gvQqBUqZ/versions/9x0igjLz/lithium-fabric-mc1.21.1-0.13.1.jar"; url = "https://cdn.modrinth.com/data/gvQqBUqZ/versions/2Ea7RMWZ/lithium-fabric-0.14.1-snapshot%2Bmc1.21.3-build.89.jar";
sha512 = "4250a630d43492da35c4c197ae43082186938fdcb42bafcb6ccad925b79f583abdfdc17ce792c6c6686883f7f109219baecb4906a65d524026d4e288bfbaf146"; sha512 = "d122b23a520cb2573c2eaba9556c07846ae5f2f8ee9aabdf5dce914334e44027a273c8cf2ef2243fe03cf86a8858eab2ddcc247d95661dee40cd783cf444aeff";
}; };
NoChatReports = pkgs.fetchurl { NoChatReports = pkgs.fetchurl {
url = "https://cdn.modrinth.com/data/qQyHxfxd/versions/sOHvPS0X/NoChatReports-FABRIC-1.21.1-v2.9.0.jar"; url = "https://cdn.modrinth.com/data/qQyHxfxd/versions/Cg7X9iDa/NoChatReports-FABRIC-1.21.3-v2.10.1.jar";
sha512 = "3326d278e57cc2d7bdb4348570c3876ed096af872e166241209ef5ac7c823829596a81570db029ac751e5a11b7686046f72119f259365350ca2eba10037f6d24"; sha512 = "8f1163ad515ebdfab5ef54a4985af05e643749c2efc0bf7b62e00074bbe61d91789b0c9e558bbe1b5c5d21a89b88084ce6350a11a5a9a3bea59eea9764a27171";
};
krypton = pkgs.fetchurl {
url = "https://cdn.modrinth.com/data/fQEb0iXm/versions/Acz3ttTp/krypton-0.2.8.jar";
sha512 = "5f8cf96c79bfd4d893f1d70da582e62026bed36af49a7fa7b1e00fb6efb28d9ad6a1eec147020496b4fe38693d33fe6bfcd1eebbd93475612ee44290c2483784";
}; };
tick-stasis = pkgs.fetchurl { tick-stasis = pkgs.fetchurl {
@@ -71,14 +66,9 @@ in
sha512 = "346fae7e0f1a62636525a9331643ac4343b781c240db6ef9bafe1b3a295d24d131d2b4b20cef8edc33835e9069fcaf1c2e2b3ce9ced9a2ec6e4e3d82770f52c6"; sha512 = "346fae7e0f1a62636525a9331643ac4343b781c240db6ef9bafe1b3a295d24d131d2b4b20cef8edc33835e9069fcaf1c2e2b3ce9ced9a2ec6e4e3d82770f52c6";
}; };
noisium = pkgs.fetchurl {
url = "https://cdn.modrinth.com/data/KuNKN7d2/versions/4sGQgiu2/noisium-fabric-2.3.0%2Bmc1.21-1.21.1.jar";
sha512 = "606ba78cf7f30d99e417c96aa042f600c1b626ed9c783919496d139de650013f1434fcf93545782e3889660322837ce6e85530d9e1a5cc20f9ad161357ede43e";
};
moonrise = pkgs.fetchurl { moonrise = pkgs.fetchurl {
url = "https://cdn.modrinth.com/data/KOHu7RCS/versions/1ZrRaRbq/Moonrise-Fabric-0.1.0-beta.8%2B68ea18b.jar"; url = "https://cdn.modrinth.com/data/KOHu7RCS/versions/S7ZBVFid/Moonrise-Fabric-0.2.0-beta.3%2Bbad5cae.jar";
sha512 = "7510ce6a908d384031b8134c719a6e4f959f35cc9f7889a12f5fc2188937c61f84c916eff8639786fa2c3411141316802437b1cbc105e00dee0f6a8cc6d96b92"; sha512 = "84831de3f402bd2f69fba1329412064f487571527fbb4182c45433eba3d716ef52c057d4f2e9f794821ac5147dbae774ef5c83776f4e376fc10ba3d80015cfde";
}; };
mixintrace = pkgs.fetchurl { mixintrace = pkgs.fetchurl {
@@ -87,9 +77,15 @@ in
}; };
better-fabric-console = pkgs.fetchurl { better-fabric-console = pkgs.fetchurl {
url = "https://cdn.modrinth.com/data/Y8o1j1Sf/versions/6FB2l9zd/better-fabric-console-mc1.21.1-1.2.0.jar"; url = "https://cdn.modrinth.com/data/Y8o1j1Sf/versions/QGfoAASu/better-fabric-console-mc1.21.3-1.2.1.jar";
sha512 = "3120f168a201a0d7eee55dc34788f0b1134754895d86ceca082f72b16902a00fc70ca05c73712b1d45bae8b74176af30a1821e636ba528f2abd60d94b1f35297"; sha512 = "3a88c281a65f26e44b17b3a7a5cc9f84046b013931bd3af7f2553f462987a96357b21c104a41593ca0516038e6c4398a890ee118046fe95a7e0c7f2d743d944a";
}; };
# hasn't updated to 1.21.3 yet (https://modrinth.com/mod/vivecraft/versions)
# vivecraft = pkgs.fetchurl {
# url = "https://cdn.modrinth.com/data/wGoQDPN5/versions/55ml9ENB/vivecraft-1.21.1-1.1.14-b2-fabric.jar";
# sha512 = "6241183987d6197a5e2b4b17f86db2ee9c594f0b6ec335153f1733c2c9ace9f21d07007150a9082e2834deead68b2c287e9443b23be5cd09a366db3f1593975b";
# };
} }
); );
}; };

View File

@@ -23,7 +23,6 @@
volumes = [ "${service_configs.gluetun.dir}:/gluetun:z" ]; volumes = [ "${service_configs.gluetun.dir}:/gluetun:z" ];
podmanArgs = [ podmanArgs = [
"--device=/dev/net/tun" "--device=/dev/net/tun"
"--security-opt label=disable"
]; ];
}; };
@@ -36,6 +35,7 @@
environments = { environments = {
WEBUI_PORT = service_configs.ports.torrent; WEBUI_PORT = service_configs.ports.torrent;
DOCKER_MODS = "ghcr.io/gabe565/linuxserver-mod-vuetorrent"; DOCKER_MODS = "ghcr.io/gabe565/linuxserver-mod-vuetorrent";
# PUID = config.users.users.${config.services.jellyfin.user}.uid;
PGID = config.users.groups.${config.services.jellyfin.group}.gid; PGID = config.users.groups.${config.services.jellyfin.group}.gid;
}; };

14
services/soulseek.nix Normal file
View File

@@ -0,0 +1,14 @@
{ pkgs, ... }:
{
services.slskd = {
enable = true;
openFirewall = true;
domain = "www.gardling.com";
settings = {
shares = {
directories = [ "/tank/music" ];
};
};
};
}