3.4 KiB
Agrarian Dedicated Server Build Runbook
Agrarian's multiplayer server target is Linux. Windows-Builder remains the interactive Unreal build machine, but the server artifact should run on an Ubuntu cloud VM or other Linux host.
Public Endpoint Convention
Use this MVP gameplay endpoint unless a later deployment requires a different host name:
- DNS name:
play.agrariangame.com - Unreal gameplay traffic:
7777/udp - SSH: admin IPs only
When the first Ubuntu gameplay VM is created, point the play A/AAAA record at
that VM. Do not point this name at the tile server; tile delivery and gameplay
should remain separate until a deliberate combined-host decision is made.
Build Machine
Use Windows-Builder for the first repeatable build lane:
- Unreal Engine
5.7 - VS 2022 Build Tools toolchain compatible with Unreal
5.7 - Epic Linux cross-compile toolchain for Unreal
5.7 - Project path:
P:\AgrarianGameBulidwhen mapped from\\DevBox\projects
The server target is AgrarianGameServer, defined in
Source/AgrarianGameServer.Target.cs.
Ubuntu Host Bootstrap
Prepare a new Ubuntu gameplay host with:
sudo Operations/cloud-game-server/bootstrap_ubuntu_game_server.sh play.agrariangame.com
The script installs baseline packages, creates an agrarian service user,
creates /opt/agrarian/server, writes a systemd unit named
agrarian-game-server, and opens 7777/udp with ufw when available.
For DigitalOcean or another cloud provider later, create an Ubuntu LTS droplet
or VM, copy this repository or just the script onto the host, run the bootstrap
script, then copy the Builds/LinuxServerDevelopment package contents into
/opt/agrarian/server.
Build Command
From an elevated or normal Command Prompt on Windows-Builder:
cd /d P:\AgrarianGameBulid
Scripts\BuildLinuxDedicatedServer-Windows.bat
Expected output:
- Logs:
Saved\BuildLogs\BuildLinuxDedicatedServer.log - Archive:
Builds\LinuxServerDevelopment
If the script fails before compile with a Linux toolchain error, install Epic's
Unreal 5.7 Linux cross-compile toolchain on Windows-Builder, reopen the
terminal, and run the script again.
Initial Runtime Shape
The first server package cooks the Ground Zero MVP map:
/Game/Agrarian/Maps/L_GroundZeroTerrain_Test
First cloud/server launch target:
./AgrarianGameServer L_GroundZeroTerrain_Test?listen -log -port=7777
Systemd launch target created by the bootstrap script:
sudo systemctl restart agrarian-game-server
sudo journalctl -u agrarian-game-server -f
Open firewall ports only as needed:
7777/udpfor Unreal gameplay traffic.- SSH from trusted admin IPs only.
Do not expose editor, SMB, RDP, database, or admin ports on the public server.
Smoke Test
For the first MVP validation:
- Build the Linux server package on Windows-Builder.
- Copy the archived server package to an Ubuntu test VM.
- Start the server with
-log -port=7777. - Confirm the log reaches map load without fatal errors.
- Connect from a packaged Windows Development client on the LAN or test VPN.
- Record the commit, package date, map, client build, and server log path.
Current Limits
This runbook creates the repeatable build lane. It does not yet prove a full external multiplayer session. That remains a later roadmap item after the project has a clean server package and a stable deploy target.