Compare commits
2 Commits
3026897113
...
a766e67fec
| Author | SHA1 | Date | |
|---|---|---|---|
|
a766e67fec
|
|||
|
fdb1b559bc
|
@@ -119,7 +119,6 @@
|
|||||||
https = {
|
https = {
|
||||||
certs = services_dir + "/http_certs";
|
certs = services_dir + "/http_certs";
|
||||||
domain = "gardling.com";
|
domain = "gardling.com";
|
||||||
wg_ip = "192.168.15.1";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
gitea = {
|
gitea = {
|
||||||
@@ -224,6 +223,11 @@
|
|||||||
nix-minecraft.overlay
|
nix-minecraft.overlay
|
||||||
(import ./modules/overlays.nix)
|
(import ./modules/overlays.nix)
|
||||||
];
|
];
|
||||||
|
nixpkgs.config.allowUnfreePredicate =
|
||||||
|
pkg:
|
||||||
|
builtins.elem (nixpkgs.lib.getName pkg) [
|
||||||
|
"minecraft-server"
|
||||||
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
lanzaboote.nixosModules.lanzaboote
|
lanzaboote.nixosModules.lanzaboote
|
||||||
|
|||||||
@@ -26,6 +26,6 @@
|
|||||||
|
|
||||||
services.caddy.virtualHosts."bitmagnet.${service_configs.https.domain}".extraConfig = ''
|
services.caddy.virtualHosts."bitmagnet.${service_configs.https.domain}".extraConfig = ''
|
||||||
import ${config.age.secrets.caddy_auth.path}
|
import ${config.age.secrets.caddy_auth.path}
|
||||||
reverse_proxy ${service_configs.https.wg_ip}:${builtins.toString service_configs.ports.bitmagnet}
|
reverse_proxy ${config.vpnNamespaces.wg.namespaceAddress}:${builtins.toString service_configs.ports.bitmagnet}
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -44,7 +44,7 @@
|
|||||||
|
|
||||||
environment = {
|
environment = {
|
||||||
JELLYFIN_URL = "http://localhost:${builtins.toString service_configs.ports.jellyfin}";
|
JELLYFIN_URL = "http://localhost:${builtins.toString service_configs.ports.jellyfin}";
|
||||||
QBITTORRENT_URL = "http://${service_configs.https.wg_ip}:${builtins.toString service_configs.ports.torrent}";
|
QBITTORRENT_URL = "http://${config.vpnNamespaces.wg.namespaceAddress}:${builtins.toString service_configs.ports.torrent}";
|
||||||
CHECK_INTERVAL = "30";
|
CHECK_INTERVAL = "30";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -17,19 +17,6 @@
|
|||||||
inputs.nix-minecraft.nixosModules.minecraft-servers
|
inputs.nix-minecraft.nixosModules.minecraft-servers
|
||||||
];
|
];
|
||||||
|
|
||||||
environment.systemPackages = [
|
|
||||||
(pkgs.writeScriptBin "mc-console" ''
|
|
||||||
#!/bin/sh
|
|
||||||
${pkgs.tmux}/bin/tmux -S /run/minecraft/${service_configs.minecraft.server_name}.sock attach
|
|
||||||
'')
|
|
||||||
];
|
|
||||||
|
|
||||||
nixpkgs.config.allowUnfreePredicate =
|
|
||||||
pkg:
|
|
||||||
builtins.elem (lib.getName pkg) [
|
|
||||||
"minecraft-server"
|
|
||||||
];
|
|
||||||
|
|
||||||
services.minecraft-servers = {
|
services.minecraft-servers = {
|
||||||
enable = true;
|
enable = true;
|
||||||
eula = true;
|
eula = true;
|
||||||
|
|||||||
@@ -104,7 +104,7 @@
|
|||||||
|
|
||||||
services.caddy.virtualHosts."torrent.${service_configs.https.domain}".extraConfig = ''
|
services.caddy.virtualHosts."torrent.${service_configs.https.domain}".extraConfig = ''
|
||||||
import ${config.age.secrets.caddy_auth.path}
|
import ${config.age.secrets.caddy_auth.path}
|
||||||
reverse_proxy ${service_configs.https.wg_ip}:${builtins.toString config.services.qbittorrent.webuiPort}
|
reverse_proxy ${config.vpnNamespaces.wg.namespaceAddress}:${builtins.toString config.services.qbittorrent.webuiPort}
|
||||||
'';
|
'';
|
||||||
|
|
||||||
users.users.${config.services.qbittorrent.user}.extraGroups = [
|
users.users.${config.services.qbittorrent.user}.extraGroups = [
|
||||||
|
|||||||
@@ -6,6 +6,17 @@
|
|||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
|
testServiceConfigs = {
|
||||||
|
minecraft = {
|
||||||
|
server_name = "main";
|
||||||
|
parent_dir = "/var/lib/minecraft";
|
||||||
|
};
|
||||||
|
https = {
|
||||||
|
domain = "test.local";
|
||||||
|
};
|
||||||
|
zpool_ssds = "";
|
||||||
|
};
|
||||||
|
|
||||||
# Create pkgs with nix-minecraft overlay and unfree packages allowed
|
# Create pkgs with nix-minecraft overlay and unfree packages allowed
|
||||||
testPkgs = import inputs.nixpkgs {
|
testPkgs = import inputs.nixpkgs {
|
||||||
system = pkgs.stdenv.targetPlatform.system;
|
system = pkgs.stdenv.targetPlatform.system;
|
||||||
@@ -15,42 +26,21 @@ let
|
|||||||
(import ../modules/overlays.nix)
|
(import ../modules/overlays.nix)
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
# Create a wrapper module that imports the actual minecraft service
|
|
||||||
minecraftService =
|
|
||||||
{ config, ... }:
|
|
||||||
{
|
|
||||||
imports = [
|
|
||||||
(import ../services/minecraft.nix {
|
|
||||||
inherit lib config inputs;
|
|
||||||
pkgs = testPkgs;
|
|
||||||
service_configs = {
|
|
||||||
minecraft = {
|
|
||||||
server_name = "main";
|
|
||||||
parent_dir = "/var/lib/minecraft";
|
|
||||||
};
|
|
||||||
https = {
|
|
||||||
domain = "test.local";
|
|
||||||
};
|
|
||||||
zpool_ssds = "";
|
|
||||||
};
|
|
||||||
username = "testuser";
|
|
||||||
})
|
|
||||||
];
|
|
||||||
# Override nixpkgs config to prevent conflicts in test environment
|
|
||||||
nixpkgs.config = lib.mkForce {
|
|
||||||
allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ "minecraft-server" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
in
|
in
|
||||||
testPkgs.testers.runNixOSTest {
|
testPkgs.testers.runNixOSTest {
|
||||||
name = "minecraft server startup test";
|
name = "minecraft server startup test";
|
||||||
|
|
||||||
|
node.specialArgs = {
|
||||||
|
inherit inputs lib;
|
||||||
|
service_configs = testServiceConfigs;
|
||||||
|
username = "testuser";
|
||||||
|
};
|
||||||
|
|
||||||
nodes.machine =
|
nodes.machine =
|
||||||
{ ... }:
|
{ lib, ... }:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
minecraftService
|
../services/minecraft.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
# Enable caddy service (required by minecraft service)
|
# Enable caddy service (required by minecraft service)
|
||||||
|
|||||||
Reference in New Issue
Block a user