even more backups of things
This commit is contained in:
parent
b8d125d448
commit
630f9b0074
46 changed files with 1166 additions and 197 deletions
107
hosts/lithium/microvms/palworld/default.nix
Normal file
107
hosts/lithium/microvms/palworld/default.nix
Normal file
|
|
@ -0,0 +1,107 @@
|
|||
{ config, pkgs, lib, ... }:
|
||||
{
|
||||
# Host Firewall
|
||||
networking.firewall.allowedUDPPorts = [ 8211 ];
|
||||
#networking.nat = {
|
||||
#enable = true;
|
||||
#enableIPv6 = true;
|
||||
#externalInterface = "eth0";
|
||||
#internalInterfaces = [ "microvm" ];
|
||||
#};
|
||||
|
||||
microvm.vms.palworld-server = {
|
||||
# Basic Requirements
|
||||
# https://docs.palworldgame.com/getting-started/requirements
|
||||
#hypervisor = "qemu";
|
||||
vcpu = 4;
|
||||
memory = 16348;
|
||||
|
||||
# Networking
|
||||
interfaces = [{ type = "user"; id = "main-net"; }];
|
||||
|
||||
# Interface Name on the Host
|
||||
# Ethernet Address of MicroVM's interface.
|
||||
# Locally administered have one of 2/6/A/E in the second nibble.
|
||||
#interfaces = [{type = "tap";id = "vm-palworld";mac = "02:00:00:00:00:01";}];
|
||||
#forwardPorts = [
|
||||
#{ proto = "udp"; from = "host"; host.port = 8211; guest.port = 8211; }
|
||||
# Optional: If you need RCON or other ports, add them here
|
||||
# { proto = "tcp"; from = "host"; host.port = 25575; guest.port = 25575; }
|
||||
#];
|
||||
|
||||
# Persistent Data
|
||||
sharedDirectories = [
|
||||
{
|
||||
source = "/var/lib/palworld-data";
|
||||
target = "/var/lib/palworld-server";
|
||||
readonly = false;
|
||||
}
|
||||
];
|
||||
|
||||
# VM NixOS Configuration
|
||||
config = {
|
||||
imports = [ pkgs.nixosModules.notDetected ];
|
||||
|
||||
networking.hostName = "palworld-vm";
|
||||
time.timeZone = "America/Chicago";
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
steamcmd
|
||||
#glibc
|
||||
#gnumake
|
||||
#cff
|
||||
];
|
||||
|
||||
# Pre-VM-Start
|
||||
binScripts.tap-up = lib.mkAfter ''
|
||||
${lib.getExe' pkgs.iproute2 "ip"} link set dev 'vm-ixp-as11201p' master 'ixp-peering'
|
||||
'';
|
||||
|
||||
# Service Definition
|
||||
systemd.services.palworld-dedicated = {
|
||||
description = "Palworld Dedicated Server";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network.target" ];
|
||||
serviceConfig = {
|
||||
Type = "simple";
|
||||
User = "palworld";
|
||||
Group = "palworld";
|
||||
# Working Directory points to where steamcmd installs the server
|
||||
WorkingDirectory = "/var/lib/palworld-server/Pal/Binaries/Win64";
|
||||
ExecStart = ''
|
||||
${pkgs.steam-run}/bin/steam-run ${pkgs.bash}/bin/bash -c '\
|
||||
${pkgs.steamcmd}/bin/steamcmd \
|
||||
+force_install_dur /var/lib/palworld-server \
|
||||
+login anonymous \
|
||||
+app_update 2394010 validate \
|
||||
+quit \
|
||||
&& \
|
||||
./PalServer.sh -userperfthreads -NoAsyncLoadingThread -UseNvidiaServers -nosteamclient \
|
||||
-Players=8 -Port=8211 -queryport=27015 -PublicPort=8211 -PublicIP=\"\" -RCONEnabled=False
|
||||
'
|
||||
'';
|
||||
Restart = "on-failure";
|
||||
RestartSec = "5s";
|
||||
LimitNPROC = 10000;
|
||||
LimitNOFILE = 100000;
|
||||
};
|
||||
};
|
||||
|
||||
# User and Group Configuration
|
||||
users.users.palworld = {
|
||||
isSystem = true;
|
||||
group = "palworld";
|
||||
createHome = false;
|
||||
};
|
||||
users.groups.palworld = {};
|
||||
|
||||
# Firewall Configuration
|
||||
networking.firewall.allowedUDPPorts = [ 8211 ];
|
||||
|
||||
# Ensure correct permissions for shared directory
|
||||
systemd.tmpfiles.rules = [
|
||||
"d /var/lib/palworld-server 0755 palworld palworld -"
|
||||
];
|
||||
};
|
||||
};
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue