shill: Add Terraria server
Some checks failed
CI / Check, build and cache nixfiles (push) Failing after 7m4s
Some checks failed
CI / Check, build and cache nixfiles (push) Failing after 7m4s
This commit is contained in:
@@ -433,6 +433,7 @@ in
|
||||
ip6 daddr ${aa.simpcraft-staging-oci.internal.ipv6.address} tcp dport 25565 accept
|
||||
ip6 daddr ${aa.kevcraft-oci.internal.ipv6.address} tcp dport 25567 accept
|
||||
ip6 daddr ${aa.kinkcraft-oci.internal.ipv6.address} tcp dport 25568 accept
|
||||
ip6 daddr ${aa.gam.internal.ipv6.address} tcp dport 7777 accept
|
||||
return
|
||||
}
|
||||
chain routing-udp {
|
||||
@@ -442,6 +443,7 @@ in
|
||||
ip6 daddr ${aa.enshrouded-oci.internal.ipv6.address} udp dport { 15636-15637 } accept
|
||||
ip6 daddr ${aa.kevcraft-oci.internal.ipv6.address} udp dport 25567 accept
|
||||
ip6 daddr ${aa.kinkcraft-oci.internal.ipv6.address} udp dport 25568 accept
|
||||
ip6 daddr ${aa.gam.internal.ipv6.address} udp dport 7777 accept
|
||||
return
|
||||
}
|
||||
chain filter-routing {
|
||||
|
||||
@@ -168,6 +168,8 @@ in
|
||||
kevcraft IN AAAA ${allAssignments.kevcraft-oci.internal.ipv6.address}
|
||||
kinkcraft IN A ${assignments.internal.ipv4.address}
|
||||
kinkcraft IN AAAA ${allAssignments.kinkcraft-oci.internal.ipv6.address}
|
||||
terraria IN A ${assignments.internal.ipv4.address}
|
||||
terraria IN AAAA ${allAssignments.gam.internal.ipv6.address}
|
||||
|
||||
mail-vm IN A ${net.cidr.host 0 prefixes.mail.v4}
|
||||
mail-vm IN AAAA ${net.cidr.host 1 prefixes.mail.v6}
|
||||
|
||||
@@ -9,5 +9,6 @@
|
||||
./toot.nix
|
||||
./waffletail.nix
|
||||
./qclk
|
||||
./gam.nix
|
||||
];
|
||||
}
|
||||
|
||||
72
nixos/boxes/colony/vms/shill/containers/gam.nix
Normal file
72
nixos/boxes/colony/vms/shill/containers/gam.nix
Normal file
@@ -0,0 +1,72 @@
|
||||
{ lib, ... }:
|
||||
let
|
||||
inherit (lib.my) net;
|
||||
inherit (lib.my.c) pubDomain;
|
||||
inherit (lib.my.c.colony) domain prefixes;
|
||||
in
|
||||
{
|
||||
nixos.systems.gam = { config, ... }: {
|
||||
system = "x86_64-linux";
|
||||
nixpkgs = "mine";
|
||||
rendered = config.configuration.config.my.asContainer;
|
||||
|
||||
assignments = {
|
||||
internal = {
|
||||
name = "gam-ctr";
|
||||
inherit domain;
|
||||
ipv4.address = net.cidr.host 11 prefixes.ctrs.v4;
|
||||
ipv6 = {
|
||||
iid = "::11";
|
||||
address = net.cidr.host 11 prefixes.ctrs.v6;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
configuration = { lib, pkgs, config, assignments, allAssignments, ... }:
|
||||
let
|
||||
inherit (lib) mkMerge mkIf mkForce;
|
||||
inherit (lib.my) networkdAssignment;
|
||||
in
|
||||
{
|
||||
config = mkMerge [
|
||||
{
|
||||
my = {
|
||||
deploy.enable = false;
|
||||
server.enable = true;
|
||||
|
||||
secrets = {
|
||||
key = "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAvDlH3nT1kve741gBluYmn5KQs8yz7FAEt8qLt+f0K6";
|
||||
files = {
|
||||
"gam/terraria.conf" = {
|
||||
owner = "terraria";
|
||||
group = "terraria";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
systemd = {
|
||||
network.networks."80-container-host0" = networkdAssignment "host0" assignments.internal;
|
||||
};
|
||||
|
||||
services = {
|
||||
terraria = {
|
||||
enable = true;
|
||||
noUPnP = true;
|
||||
messageOfTheDay = "sup gamers";
|
||||
autoCreatedWorldSize = "large";
|
||||
worldPath = "/var/lib/terraria/NotWorld.wld";
|
||||
configFile = config.age.secrets."gam/terraria.conf".path;
|
||||
openFirewall = true;
|
||||
};
|
||||
};
|
||||
}
|
||||
(mkIf config.my.build.isDevVM {
|
||||
virtualisation = {
|
||||
forwardPorts = [ ];
|
||||
};
|
||||
})
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -217,6 +217,7 @@ in
|
||||
toot = {};
|
||||
waffletail = {};
|
||||
qclk = {};
|
||||
gam = {};
|
||||
};
|
||||
in
|
||||
mkMerge [
|
||||
|
||||
@@ -603,6 +603,16 @@ in
|
||||
}
|
||||
];
|
||||
})
|
||||
(mkIf config.services.terraria.enable {
|
||||
my.tmproot.persistence.config.directories = [
|
||||
{
|
||||
directory = config.services.terraria.dataDir;
|
||||
mode = "0755";
|
||||
user = "terraria";
|
||||
group = "terraria";
|
||||
}
|
||||
];
|
||||
})
|
||||
]))
|
||||
]);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user