Dedicated Server Linux: Difference between revisions
More actions
Created page with "placeholder" |
No edit summary |
||
| (29 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
== 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 <code>auth.toml</code> === | |||
Download the pre-release version of maxima from [https://github.com/silkker/MARNE/releases/tag/0.1 here] | |||
After logging in, locate the generated <code>auth.toml</code> file: | |||
* '''Windows''': | |||
<code>%APPDATA%\Roaming\ArmchairDevelopers\Maxima\data</code> | |||
* '''Linux''': | |||
<code>$HOME/.local/share/maxima</code> | |||
Copy the contents of <code>auth.toml</code> into the same <code>auth.toml</code> inside the MARNE repository. | |||
=== Podman Setup === | |||
On the machine that will host the dedicated server, execute the following commands individually: | |||
<pre> | |||
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 . | |||
</pre> | |||
=== Running the Container === | |||
Run the container with: | |||
<pre> | |||
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 | |||
</pre> | |||
Type exit once it gets into a shell. | |||
Start the container by running | |||
<pre> | |||
podman start -ai marne_tonga | |||
</pre> | |||
=== Game Directory Setup === | |||
Create the Battlefield 1 directory: | |||
<pre> | |||
sudo chmod 777 /opt/games | |||
mkdir -p /opt/games/bf1 | |||
</pre> | |||
Run Maxima setup: | |||
<pre> | |||
wlheadless-run -c cage -- $HOME/maxima.sh | |||
</pre> | |||
(Press <code>Ctrl+C</code> once completed.) | |||
=== Registry Configuration === | |||
Import required registry files: | |||
<pre> | |||
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 | |||
</pre> | |||
<pre> | |||
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 | |||
</pre> | |||
=== Anti-Cheat Bypass and dinput8.dll === | |||
Rename the anti-cheat launcher: | |||
<pre> | |||
mv /opt/games/bf1/EAAntiCheat.GameServiceLauncher.exe \ | |||
/opt/games/bf1/EAAntiCheat.GameServiceLauncher.exe.bak | |||
</pre> | |||
Download and place the dinput8.dll: | |||
<pre> | |||
curl -L https://github.com/silkker/MARNE/raw/refs/heads/main/Marne.dll \ | |||
-o /opt/games/bf1/dinput8.dll | |||
</pre> | |||
=== Server Configuration === | |||
Edit server settings as you wish: | |||
<pre> | |||
vim /opt/games/bf1/ServerSettings.txt | |||
</pre> | |||
Launch the server: | |||
<pre> | |||
wlheadless-run -c cage -- maxima-cli launch \ | |||
--game-path /opt/games/bf1/bf1.exe \ | |||
--game-args=-mserver battlefield-1 | |||
</pre> | |||
=== 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 | |||
<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 | |||
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 | |||
</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> | |||
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