Game Server

Introduction

The game server module runs Abiotic Factor, Minecraft, and Valheim through the Podman server abstraction.

Requirements

Game containers require the Podman server and shared storage. Secrets such as server passwords come from agenix, and optional public port mappings are declared through UPnP.

Persistence

Each enabled game declares an application dataset under storage.datasets.app.children. Preserve these datasets; container images and writable layers are replaceable, but world and save data are not.

Troubleshooting

Inspect abiotic.service, minecraft.service, or valheim.service and verify the corresponding /storage/app/{abiotic,minecraft,valheim} dataset is mounted. Generated secrets and settings come from /run/podman-server/{abiotic,minecraft,valheim}.env; inspect the matching podman-server-<game>-env.service when an environment file is missing. For connection failures, check Abiotic UDP 7777/27015, Minecraft TCP 25565, or Valheim UDP 2456/2457 against the firewall and generated UPnP forwards.

Options

gameServer.abiotic.enable

Enable Abiotic Factor server.

Type: boolean

Default:

false

Declared by:

gameServer.minecraft.enable

Enable Minecraft server.

Type: boolean

Default:

false

Declared by:

gameServer.minecraft.ops

Minecraft usernames granted operator privileges.

Type: list of string

Default:

[ ]

Declared by:

gameServer.minecraft.users

Minecraft usernames allowed to join the server.

Type: list of string

Default:

[ ]

Declared by:

gameServer.upnp.enable

Whether game-server services declare their UPnP forwards.

Type: boolean

Default:

true

Declared by:

gameServer.valheim.enable

Enable Valheim server.

Type: boolean

Default:

false

Declared by:

gameServer.valheim.admins

Valheim administrator usernames mapped to SteamID64 values.

Type: attribute set of string

Default:

{ }

Declared by:

gameServer.valheim.modifiers.combat

Valheim combat difficulty modifier.

Type: null or one of “veryeasy”, “easy”, “hard”, “veryhard”

Default:

null

Declared by:

gameServer.valheim.modifiers.deathPenalty

Valheim death penalty modifier.

Type: null or one of “casual”, “veryeasy”, “easy”, “hard”, “hardcore”

Default:

null

Declared by:

gameServer.valheim.modifiers.playerBasedRaids

Scale Valheim raids based on the participating players.

Type: boolean

Default:

false

Declared by:

gameServer.valheim.modifiers.portals

Valheim portal restriction modifier.

Type: null or one of “casual”, “hard”, “veryhard”

Default:

null

Declared by:

gameServer.valheim.modifiers.raids

Valheim raid frequency modifier.

Type: null or one of “none”, “muchless”, “less”, “more”, “muchmore”

Default:

null

Declared by:

gameServer.valheim.modifiers.resources

Valheim resource rate modifier.

Type: null or one of “muchless”, “less”, “more”, “muchmore”, “most”

Default:

null

Declared by:

gameServer.valheim.permittedUsers

Permitted Valheim usernames mapped to SteamID64 values.

Type: attribute set of string

Default:

{ }

Declared by:

gameServer.valheim.serverName

Name shown in the Valheim server browser.

Type: string

Default:

"bovbel"

Declared by:

gameServer.valheim.worldName

Name of the Valheim world to load.

Type: string

Default:

"Dedicated"

Declared by: