Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Dedicated Server Linux: Difference between revisions

From MARNE Wiki
Twig (talk | contribs)
No edit summary
Twig (talk | contribs)
No edit summary
 
(11 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Running the MARNE Dedicated Server on Linux ==
== Running dedicated server on GNU/Linux ==


=== Prerequisites ===
=== Prerequisites ===
Line 99: Line 99:
=== Anti-Cheat Bypass and dinput8.dll ===
=== Anti-Cheat Bypass and dinput8.dll ===


Rename the original anti-cheat launcher:
Rename the anti-cheat launcher:


<pre>
<pre>
Line 106: Line 106:
</pre>
</pre>


Download and place the MARNE DLL:
Download and place the dinput8.dll:


<pre>
<pre>
Line 134: Line 134:
Get a VPS with RDP setup or use waypipe (Frosty CLI is still way too WIP to be of use)
Get a VPS with RDP setup or use waypipe (Frosty CLI is still way too WIP to be of use)


Outside podman install umu and proton for your distro like so (these commands are here as reference please go ahead and grab the latest version of everything);
Run this inside podman


<pre>
<pre>
wget -O /opt/games/BF_FMM_Linux.tar.gz https://github.com/Twig6943/FrostyToolsuiteBattlefieldLinux/releases/latest/download/BF_FMM_Linux.tar.gz
tar -xzf /opt/games/BF_FMM_Linux.tar.gz -C /opt/games
</pre>
Outside of podman, install umu and ge-proton for your distro like so (these commands are here as reference please go ahead and grab the latest version of everything);
<pre>
export PROTON_ENABLE_WAYLAND=1 # If you're on a wayland session
export PROTONPATH=$HOME/.local/share/Steam/compatibilitytools.d/GE-Proton10-32
export PROTONPATH=$HOME/.local/share/Steam/compatibilitytools.d/GE-Proton10-32
export WINEDLLOVERRIDES=winmm=n,b
 
wget -O $HOME/ge-proton.tar.gz https://github.com/GloriousEggroll/proton-ge-custom/releases/download/GE-Proton10-32/GE-Proton10-32.tar.gz
tar -xzf $HOME/ge-proton.tar.gz -C "$HOME/.local/share/Steam/compatibilitytools.d"
 
sudo dpkg --add-architecture i386 # needed for debian-based
 
wget -O $HOME/umu.deb https://github.com/Open-Wine-Components/umu-launcher/releases/download/1.3.0/python3-umu-launcher_1.3.0-1_amd64_debian-13.deb
wget -O $HOME/umu.deb https://github.com/Open-Wine-Components/umu-launcher/releases/download/1.3.0/python3-umu-launcher_1.3.0-1_amd64_debian-13.deb
sudo dpkg -i $HOME/umu.deb
sudo dpkg -i $HOME/umu.deb
wget -O $HOME/ge-proton.tar.gz https://github.com/GloriousEggroll/proton-ge-custom/releases/download/GE-Proton10-32/GE-Proton10-32.tar.gz
 
tar -xzf $HOME/ge-proton.tar.gz -C "$HOME/.local/share/Steam/compatibilitytools.d"
sudo chmod -R 777 $HOME/Games
wget -O $HOME/BF_FMM_Linux.tar.gz https://github.com/Twig6943/FrostyToolsuiteBattlefieldLinux/releases/latest/download/BF_FMM_Linux.tar.gz
tar -xzf $HOME/BF_FMM_Linux.tar.gz -C $HOME
umu-run $HOME/Games/Bf1_Linux_ModManager/FrostyModManager.exe
umu-run $HOME/Games/Bf1_Linux_ModManager/FrostyModManager.exe
</pre>
To start modded server, inside the container run;
<pre>
wlheadless-run -c cage -- \
  maxima-cli launch \
  --game-path "/opt/games/bf1/bf1.exe" \
  --game-args="-mserver" \
  --game-args="-dataPath" \
  --game-args="ModData/Default" \
  battlefield-1
</pre>
</pre>

Latest revision as of 19:00, 27 February 2026

Running dedicated server on GNU/Linux

Prerequisites

Warning: Run everything here within a tmux session if you'd like it to continue running once you log out of ssh

Ensure the following dependencies are installed on your host:

  • podman
  • tmux
  • git
  • text editor (e.g. vim)

Generating auth.toml

Download the pre-release version of maxima from here

After logging in, locate the generated auth.toml file:

  • Windows:
 %APPDATA%\Roaming\ArmchairDevelopers\Maxima\data
  • Linux:
 $HOME/.local/share/maxima

Copy the contents of auth.toml into the same auth.toml inside the MARNE repository.

Podman Setup

On the machine that will host the dedicated server, execute the following commands individually:

mkdir -p $HOME/Games
mkdir -p $HOME/.local/share/Steam/compatibilitytools.d
git clone https://github.com/silkker/MARNE
cd MARNE
vim auth.toml   # Paste the contents from your main machine
vim tmux.conf   # Optional (uncomment from Containerfile if used)
podman build --no-cache -t marne_tonga:latest .

Running the Container

Run the container with:

podman run --replace -it \
  --name marne_tonga \
  -v $HOME/Games:/opt/games \
  -p 25200:25200/udp \
  -p 11079:11079/tcp \
  --security-opt seccomp=unconfined \
  marne_tonga:latest

Type exit once it gets into a shell.

Start the container by running

podman start -ai marne_tonga

Game Directory Setup

Create the Battlefield 1 directory:

sudo chmod 777 /opt/games
mkdir -p /opt/games/bf1

Run Maxima setup:

wlheadless-run -c cage -- $HOME/maxima.sh

(Press Ctrl+C once completed.)

Registry Configuration

Import required registry files:

PROTONPATH=$HOME/.local/share/maxima/wine/proton \
WINEPREFIX=$HOME/.local/share/maxima/wine/prefix \
umu-run $HOME/.local/share/maxima/wine/prefix/drive_c/windows/syswow64/regedit.exe \
$HOME/dll_overrides.reg
PROTONPATH=$HOME/.local/share/maxima/wine/proton \
WINEPREFIX=$HOME/.local/share/maxima/wine/prefix \
umu-run $HOME/.local/share/maxima/wine/prefix/drive_c/windows/syswow64/regedit.exe \
$HOME/bf1.reg

Anti-Cheat Bypass and dinput8.dll

Rename the anti-cheat launcher:

mv /opt/games/bf1/EAAntiCheat.GameServiceLauncher.exe \
   /opt/games/bf1/EAAntiCheat.GameServiceLauncher.exe.bak

Download and place the dinput8.dll:

curl -L https://github.com/silkker/MARNE/raw/refs/heads/main/Marne.dll \
     -o /opt/games/bf1/dinput8.dll

Server Configuration

Edit server settings as you wish:

vim /opt/games/bf1/ServerSettings.txt

Launch the server:

wlheadless-run -c cage -- maxima-cli launch \
  --game-path /opt/games/bf1/bf1.exe \
  --game-args=-mserver battlefield-1


Installing mods

Get a VPS with RDP setup or use waypipe (Frosty CLI is still way too WIP to be of use)

Run this inside podman

wget -O /opt/games/BF_FMM_Linux.tar.gz https://github.com/Twig6943/FrostyToolsuiteBattlefieldLinux/releases/latest/download/BF_FMM_Linux.tar.gz
tar -xzf /opt/games/BF_FMM_Linux.tar.gz -C /opt/games

Outside of podman, install umu and ge-proton for your distro like so (these commands are here as reference please go ahead and grab the latest version of everything);

export PROTON_ENABLE_WAYLAND=1 # If you're on a wayland session
export PROTONPATH=$HOME/.local/share/Steam/compatibilitytools.d/GE-Proton10-32

wget -O $HOME/ge-proton.tar.gz https://github.com/GloriousEggroll/proton-ge-custom/releases/download/GE-Proton10-32/GE-Proton10-32.tar.gz
tar -xzf $HOME/ge-proton.tar.gz -C "$HOME/.local/share/Steam/compatibilitytools.d"

sudo dpkg --add-architecture i386 # needed for debian-based

wget -O $HOME/umu.deb https://github.com/Open-Wine-Components/umu-launcher/releases/download/1.3.0/python3-umu-launcher_1.3.0-1_amd64_debian-13.deb
sudo dpkg -i $HOME/umu.deb

sudo chmod -R 777 $HOME/Games
umu-run $HOME/Games/Bf1_Linux_ModManager/FrostyModManager.exe

To start modded server, inside the container run;

wlheadless-run -c cage -- \
  maxima-cli launch \
  --game-path "/opt/games/bf1/bf1.exe" \
  --game-args="-mserver" \
  --game-args="-dataPath" \
  --game-args="ModData/Default" \
  battlefield-1