This guide details the installation and configuration of a Project Zomboid Dedicated Server on an Oracle Ampere ARM64 Linux Server (VM.Standard.A1.Flex). The setup includes FEX-Emu to allow running x86 applications on the ARM64 architecture.
- Machine: Oracle Ampere VM.Standard.A1.Flex
- Shape: 4 cores, 24GB RAM, standard boot volume
- OS: Ubuntu 22.04
- Connect via SSH using the
.ppkfile generated with PuTTYgen. - Run the following commands to configure firewall rules and update the system:
sudo su
iptables -I INPUT -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 16261 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 16261 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 16262 -j ACCEPT
sudo iptables -A INPUT -p udp --dport 16262 -j ACCEPT
sudo iptables-save > /etc/iptables/rules.v4
sudo systemctl restart iptables
sudo ufw disable
apt update && apt upgrade
rebootsudo su
apt-get install git cmake ninja-build pkg-config ccache clang llvm lld binfmt-support libsdl2-dev libepoxy-dev libssl-dev python-setuptools g++-x86-64-linux-gnu nasm python3-clang libstdc++-10-dev-i386-cross libstdc++-10-dev-amd64-cross libstdc++-10-dev-arm64-cross squashfs-tools squashfuse libc-bin expect curl sudo fuse wgetuseradd -m -s /bin/bash fex
usermod -aG sudo fex
echo "fex ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers.d/fex
exitsudo su - fex
git clone --recurse-submodules https://github.com/FEX-Emu/FEX.git
cd FEX && mkdir Build && cd Buildsudo apt install qtbase5-dev qtdeclarative5-dev qttools5-dev-tools libqt5svg5-dev
cd ~/FEX/Build
CC=clang CXX=clang++ cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DUSE_LINKER=lld -DENABLE_LTO=True -DBUILD_TESTS=False -DENABLE_ASSERTIONS=False -G Ninja ..
ninja
exitsudo su
cd /home/fex/FEX/Build
ninja install
ninja binfmt_miscuseradd -m -s /bin/bash steam
echo 'root:steamcmd' | chpasswd
exitsudo usermod -aG steam ubuntu
sudo apt install acl
sudo setfacl -b /home/steamsudo su - steam
mkdir -p ~/.fex-emu/RootFS && cd ~/.fex-emu/RootFS
wget -O Ubuntu_22_04.tar.gz https://www.dropbox.com/scl/fi/16mhn3jrwvzapdw50gt20/Ubuntu_22_04.tar.gz?rlkey=4m256iahwtcijkpzcv8abn7nf
tar xzf Ubuntu_22_04.tar.gz && rm Ubuntu_22_04.tar.gz
cd ~/.fex-emu
echo '{"Config":{"RootFS":"Ubuntu_22_04"}}' > ./Config.jsonmkdir ~/Steam && cd ~/Steam
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -FEXBash ./steamcmd.sh
force_install_dir /home/steam/pz
login anonymous
app_update 380870 validate
quitcd ~/pz
FEXBash "./start-server.sh -servername NameOfYourServer.ini"If you have an existing server and want to migrate it to Oracle Cloud, follow these steps:
-
Inside the VPS console, start a new server with the desired name:
./start-server.sh -servername NameOfYourServer.ini
- This creates the necessary files and directories.
- Join the server once to verify functionality.
-
Close the server and edit the
.inifile to add mod IDs (manually verified beforehand). -
Restart the server, join with a player to ensure it works, then shut it down again.
-
On your local server, compress the following directories:
C:\Users\UserName\Zomboid\db C:\Users\UserName\Zomboid\Saves\Multiplayer\ServerName C:\Users\UserName\Zomboid\Server -
Upload and extract these files to the VPS in their corresponding locations, replacing existing files.
-
Edit the
.inifile on the VPS to match the settings of your local server. -
Start the server again and verify that everything is working properly.
With these steps, your Project Zomboid Dedicated Server should be running smoothly on Oracle Cloud with FEX-Emu. If you have any issues or questions, feel free to reach out. Happy gaming! 🚀