nixos/whale2: Add Valheim server 😳
This commit is contained in:
@@ -192,6 +192,17 @@
|
||||
port = 8448;
|
||||
dst = allAssignments.middleman.internal.ipv4.address + ":8448";
|
||||
}
|
||||
|
||||
{
|
||||
port = 2456;
|
||||
dst = allAssignments.valheim-oci.internal.ipv4.address + ":2456";
|
||||
proto = "udp";
|
||||
}
|
||||
{
|
||||
port = 2457;
|
||||
dst = allAssignments.valheim-oci.internal.ipv4.address + ":2457";
|
||||
proto = "udp";
|
||||
}
|
||||
];
|
||||
};
|
||||
extraRules =
|
||||
@@ -209,6 +220,7 @@
|
||||
tcp dport ssh accept
|
||||
|
||||
${matchInet "tcp dport { http, https, 8448 } accept" "middleman"}
|
||||
${matchInet "udp dport { 2456-2457 } accept" "valheim-oci"}
|
||||
|
||||
return
|
||||
}
|
||||
|
@@ -203,9 +203,13 @@ in
|
||||
ns IN ALIAS ${config.networking.fqdn}.
|
||||
|
||||
@ IN ALIAS ${config.networking.fqdn}.
|
||||
|
||||
http IN A ${assignments.internal.ipv4.address}
|
||||
http IN AAAA ${allAssignments.middleman.internal.ipv6.address}
|
||||
|
||||
valheim IN A ${assignments.internal.ipv4.address}
|
||||
valheim IN AAAA ${allAssignments.valheim-oci.internal.ipv6.address}
|
||||
|
||||
$TTL 3
|
||||
_acme-challenge IN LUA TXT @@FILE@@
|
||||
|
||||
|
@@ -1,4 +1,8 @@
|
||||
{ lib, ... }: {
|
||||
{ lib, ... }:
|
||||
let
|
||||
inherit (builtins) mapAttrs;
|
||||
in
|
||||
{
|
||||
nixos.systems.whale2 = {
|
||||
system = "x86_64-linux";
|
||||
nixpkgs = "mine";
|
||||
@@ -25,9 +29,20 @@
|
||||
};
|
||||
};
|
||||
|
||||
extraAssignments = mapAttrs (n: i: {
|
||||
internal = {
|
||||
name = n;
|
||||
domain = lib.my.colony.domain;
|
||||
ipv4.address = "${lib.my.colony.start.oci.v4}${toString i}";
|
||||
ipv6.address = "${lib.my.colony.start.oci.v6}${toString i}";
|
||||
};
|
||||
}) {
|
||||
valheim-oci = 2;
|
||||
};
|
||||
|
||||
configuration = { lib, pkgs, modulesPath, config, assignments, allAssignments, ... }:
|
||||
let
|
||||
inherit (builtins) mapAttrs toJSON;
|
||||
inherit (builtins) toJSON;
|
||||
inherit (lib) mkIf mkMerge mkForce;
|
||||
inherit (lib.my) networkdAssignment;
|
||||
in
|
||||
@@ -35,7 +50,7 @@
|
||||
imports = [
|
||||
"${modulesPath}/profiles/qemu-guest.nix"
|
||||
|
||||
|
||||
./valheim.nix
|
||||
];
|
||||
|
||||
config = mkMerge [
|
||||
@@ -75,6 +90,9 @@
|
||||
podman = {
|
||||
enable = true;
|
||||
};
|
||||
oci-containers = {
|
||||
backend = "podman";
|
||||
};
|
||||
};
|
||||
|
||||
environment = {
|
||||
|
38
nixos/boxes/colony/vms/whale2/valheim.nix
Normal file
38
nixos/boxes/colony/vms/whale2/valheim.nix
Normal file
@@ -0,0 +1,38 @@
|
||||
{ lib, config, allAssignments, ... }:
|
||||
let
|
||||
inherit (lib.my) dockerNetAssignment;
|
||||
in
|
||||
{
|
||||
config = {
|
||||
virtualisation.oci-containers.containers = {
|
||||
valheim = {
|
||||
image = "lloesche/valheim-server@sha256:8d910b15e3ab645a31c85799338d3dc043cabe891a34b43cbd574a1453837205";
|
||||
|
||||
environment = {
|
||||
SERVER_NAME = "amogus sus";
|
||||
SERVER_PUBLIC = "true";
|
||||
WORLD_NAME = "simpland2";
|
||||
ADMINLIST_IDS = "76561198049818986";
|
||||
TZ = "Europe/Dublin";
|
||||
};
|
||||
environmentFiles = [ config.age.secrets."whale2/valheim.env".path ];
|
||||
|
||||
volumes = [
|
||||
"data:/config"
|
||||
"server:/opt/valheim"
|
||||
];
|
||||
|
||||
extraOptions = [
|
||||
''--network=colony:${dockerNetAssignment allAssignments "valheim-oci"}''
|
||||
"--cap-add=SYS_NICE"
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
my = {
|
||||
secrets.files = {
|
||||
"whale2/valheim.env" = {};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
Reference in New Issue
Block a user