Merge pull request #5 from ediblerope/claude/setup-vrising-docker-server-c4zIe

Add V-Rising dedicated server via Docker
This commit is contained in:
ediblerope 2026-04-11 14:48:45 +00:00 committed by GitHub
commit 93bb85d2af
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 63 additions and 30 deletions

View file

@ -18,7 +18,7 @@
# Services #
./services/server-permissions.nix
#./services/game-servers.nix
./services/game-servers.nix
./services/qbittorrent-nox.nix
./services/nginx.nix
./services/go2rtc.nix

View file

@ -1,36 +1,69 @@
{ config, pkgs, lib, ... }:
{
config = lib.mkIf (config.networking.hostName == "FredOS-Mediaserver") {
## <----- HYTALE ----> ##
systemd.services.hytale-server = {
description = "Hytale Dedicated Server";
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
path = with pkgs; [ bash jdk unzip gawk gnugrep coreutils screen ]; # Added screen
environment = {
HYTALE_MEMORY = "8G";
};
serviceConfig = {
Type = "forking"; # Changed from "simple"
User = "fred";
Group = "users";
WorkingDirectory = "/home/fred/docker/hytale-server/Server";
ExecStart = "${pkgs.screen}/bin/screen -dmS hytale /home/fred/docker/hytale-server/start-hytale.sh";
ExecStop = "${pkgs.screen}/bin/screen -S hytale -X stuff 'stop^M'";
RemainAfterExit = "yes";
Restart = "on-failure";
RestartSec = "10s";
TimeoutStopSec = "30s";
# Security hardening
NoNewPrivileges = true;
PrivateTmp = true;
## <----- V-RISING ----> ##
virtualisation.docker.enable = true;
systemd.tmpfiles.rules = [
"d /var/lib/v-rising 0755 root root -"
"d /var/lib/v-rising/server 0755 root root -"
"d /var/lib/v-rising/persistentdata 0755 root root -"
];
virtualisation.oci-containers = {
backend = "docker";
containers.v-rising = {
image = "trueosiris/vrising:latest";
volumes = [
"/var/lib/v-rising/server:/mnt/vrising/server"
"/var/lib/v-rising/persistentdata:/mnt/vrising/persistentdata"
];
ports = [
"9876:9876/udp"
"9877:9877/udp"
];
environment = {
TZ = "Europe/Stockholm";
SERVERNAME = "FredOS V-Rising";
WORLDNAME = "world1";
# SERVERPASSWORD = "";
};
};
};
networking.firewall.allowedUDPPorts = [ 5520 ];
## <----- HYTALE ----> ##
# systemd.services.hytale-server = {
# description = "Hytale Dedicated Server";
# wantedBy = [ "multi-user.target" ];
# after = [ "network.target" ];
#
# path = with pkgs; [ bash jdk unzip gawk gnugrep coreutils screen ];
#
# environment = {
# HYTALE_MEMORY = "8G";
# };
#
# serviceConfig = {
# Type = "forking";
# User = "fred";
# Group = "users";
# WorkingDirectory = "/home/fred/docker/hytale-server/Server";
# ExecStart = "${pkgs.screen}/bin/screen -dmS hytale /home/fred/docker/hytale-server/start-hytale.sh";
# ExecStop = "${pkgs.screen}/bin/screen -S hytale -X stuff 'stop^M'";
# RemainAfterExit = "yes";
# Restart = "on-failure";
# RestartSec = "10s";
# TimeoutStopSec = "30s";
#
# # Security hardening
# NoNewPrivileges = true;
# PrivateTmp = true;
# };
# };
networking.firewall.allowedUDPPorts = [ 9876 9877 ];
};
}