Host an ARK: Survival Evolved Fjordur Server on a Debian VPS
Complete Step-by-Step Guide to Installing an ARK Fjordur Server on Debian
I already hosted a Minecraft server on a VPS and realized game servers are way less scary than they look. So this is the ARK version of that same cheatsheet: install the dedicated server directly on a Debian VPS, run it with SteamCMD, open the right ports, and keep it alive with systemd.
The main difference from Minecraft: ARK is heavier, uses SteamCMD instead of Java, and needs a couple UDP ports opened correctly. The actual setup is still very VPS-pilled: SSH, terminal, firewall, logs, service file, done.
This guide is for ARK: Survival Evolved on the Fjordur map.
Note: This is not for ARK: Survival Ascended. Survival Ascended has different server requirements and setup details.
Why This Guide?
This guide focuses on:
- Debian VPS setup — specifically Debian 13 Trixie, but the general flow also works on recent Debian versions
- Fjordur as the default ARK map
- 100% terminal — no game server panel, no FTP client, no Windows-only tool
- SteamCMD install on Debian using
contrib/non-free systemdfor auto-start and restart- Simple backups of your ARK world/config
This is meant for a small private friends server, not a massive public cluster.
Prerequisites
You need:
- A Debian VPS with SSH access
- Debian 13 Trixie or similar
- x86-64 architecture, not ARM
- At least 8GB RAM for a small private server
- Preferably 16GB RAM for Fjordur, mods, or less pain
- At least 80GB SSD/NVMe storage
- Basic terminal knowledge
- ARK: Survival Evolved installed on your PC so you can join the server
For a small 4-6 player Fjordur server, I’d personally start with:
- 4 vCPU
- 8-16GB RAM
- 80GB SSD/NVMe
- Singapore region if you’re playing from the Philippines / SEA
ARK is much heavier than vanilla Minecraft. Don’t cheap out too hard on RAM.
Step 1: Update Your Debian VPS
SSH into your VPS, then update the system:
sudo apt update && sudo apt upgrade -yInstall basic tools:
sudo apt install -y curl wget tar unzip htop screen ca-certificates nanoCheck your Debian version:
cat /etc/os-releaseThis guide assumes something like:
PRETTY_NAME="Debian GNU/Linux 13 (trixie)"
VERSION_CODENAME=trixieAlso check the CPU architecture:
uname -mYou generally want:
x86_64If you see ARM/AArch64, don’t continue unless you specifically know what you’re doing. SteamCMD and ARK server setup is much simpler on x86-64.
Step 2: Enable Debian non-free repositories
SteamCMD is not available from Debian’s plain main repo only. You need Debian’s contrib, non-free, and non-free-firmware components enabled.
Check your sources file:
cat /etc/apt/sources.list.d/debian.sourcesYou may see something like this:
Types: deb deb-src
URIs: mirror+file:///etc/apt/mirrors/debian.list
Suites: trixie trixie-updates trixie-backports
Components: main
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg
Types: deb deb-src
URIs: mirror+file:///etc/apt/mirrors/debian-security.list
Suites: trixie-security
Components: main
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpgThe problem is this part:
Components: mainChange both Components: lines to:
Components: main contrib non-free non-free-firmwareYou can do that with:
sudo sed -i 's/^Components: main$/Components: main contrib non-free non-free-firmware/' /etc/apt/sources.list.d/debian.sourcesVerify:
cat /etc/apt/sources.list.d/debian.sourcesYou should now see:
Components: main contrib non-free non-free-firmwareStep 3: Install SteamCMD on Debian
Enable 32-bit packages:
sudo dpkg --add-architecture i386Update APT:
sudo apt updateInstall SteamCMD and required 32-bit libraries:
sudo apt install -y steamcmd lib32gcc-s1Test SteamCMD:
steamcmd +quitIf SteamCMD prints a setlocale('en_US.UTF-8') failed warning, it is usually not fatal. You can ignore it for now while setting up the server.
If steamcmd still cannot be found, check whether APT sees it:
apt-cache policy steamcmd
apt search steamcmdStep 4: Create a Dedicated ARK User
Don’t run game servers as root.
Create a separate ark user:
sudo adduser arkSwitch to that user:
sudo su - arkCreate the server directory:
mkdir -p /home/ark/ark-serverStep 5: Install the ARK Dedicated Server
ARK: Survival Evolved dedicated server uses Steam app ID 376030.
Important: put +force_install_dir before +login anonymous. If you put it after login, SteamCMD can fail with:
Please use force_install_dir before logon!
ERROR! Failed to install app '376030' (Missing configuration)Run the correct command:
steamcmd +force_install_dir /home/ark/ark-server +login anonymous +app_update 376030 validate +quitThis will take a while. ARK is chunky.
When it’s done, check that the server binary exists:
ls -lah /home/ark/ark-server/ShooterGame/Binaries/Linux/ShooterGameServerIf that file exists, the install worked.
Step 6: Create a Fjordur Start Script
Still as the ark user, create a start script:
nano ~/ark-server/start.shPaste this:
#!/bin/bash
cd /home/ark/ark-server/ShooterGame/Binaries/Linux
./ShooterGameServer Fjordur?listen?SessionName="YourServerName"?ServerPassword="yourjoinpassword"?ServerAdminPassword="youradminpassword"?Port=7777?QueryPort=27015?MaxPlayers=10 -server -logChange these values:
YourServerName
yourjoinpassword
youradminpasswordMake the script executable:
chmod +x ~/ark-server/start.shImportant settings:
Fjordur= map nameSessionName= public server name in the ARK server browserServerPassword= password players need to joinServerAdminPassword= admin password for admin commandsPort=7777= game client portQueryPort=27015= Steam query/server browser portMaxPlayers=10= max players
If you don’t want a join password, remove this part entirely:
?ServerPassword="yourjoinpassword"Example no-password version:
./ShooterGameServer Fjordur?listen?SessionName="YourServerName"?ServerAdminPassword="youradminpassword"?Port=7777?QueryPort=27015?MaxPlayers=10 -server -logStep 7: Test Start the Server Manually
Run it manually in a named screen session first before turning it into a service:
screen -dmS ark ~/ark-server/start.sh
screen -r arkThe first startup can take a few minutes. ARK may look like it’s stuck, but give it time.
Once it starts, it should generate files under:
/home/ark/ark-server/ShooterGame/SavedTo detach from screen while keeping the server running, press:
Ctrl+A
DTo reconnect to it later:
screen -r arkTo stop the server for now while attached to the screen session, press:
Ctrl+CLater, once it runs under systemd, use systemctl stop ark instead.
Step 8: Open Firewall Ports
Exit back to your sudo/admin user:
exitInstall UFW if needed:
sudo apt install -y ufwAllow SSH first so you don’t lock yourself out:
sudo ufw allow 22/tcpOpen ARK ports:
sudo ufw allow 7777/udp
sudo ufw allow 7778/udp
sudo ufw allow 27015/udpOptional RCON port if you plan to use remote console tools:
sudo ufw allow 27020/tcpEnable the firewall:
sudo ufw enable
sudo ufw statusARK ports cheat sheet:
7777/udp= game client port7778/udp= raw UDP socket, usually game port + 127015/udp= Steam query/browser port27020/tcp= optional RCON
Also check your VPS provider firewall/security group. Some VPS providers have an external firewall outside the server itself.
Step 9: Set Up systemd Auto-Restart
Create a systemd service:
sudo nano /etc/systemd/system/ark.servicePaste this:
[Unit]
Description=ARK: Survival Evolved Fjordur Dedicated Server
Wants=network-online.target
After=network-online.target
[Service]
Type=simple
User=ark
Group=ark
WorkingDirectory=/home/ark/ark-server
LimitNOFILE=100000
ExecStart=/home/ark/ark-server/start.sh
Restart=on-failure
RestartSec=10
[Install]
WantedBy=multi-user.targetThis service uses the same start.sh you tested with screen.
Reload systemd:
sudo systemctl daemon-reloadEnable auto-start on reboot:
sudo systemctl enable arkIf your manual screen test is still running, attach with screen -r ark and stop it with Ctrl+C before starting the systemd service. Otherwise both processes will try to use the same ARK ports.
Start the server:
sudo systemctl start arkCheck status:
sudo systemctl status arkWatch live logs:
sudo journalctl -u ark -fStep 10: Connect to Your Server
Get your VPS IP:
curl ifconfig.meIn ARK:
- Open Join ARK
- Filter to Unofficial servers
- Search for your
SessionName - Join and enter the password if you set one
If it doesn’t show immediately, give it a few minutes. ARK’s server browser can be slow/weird.
You can also try adding the server through Steam:
- Steam → View → Game Servers
- Favorites → Add Server
- Add:
YOUR_SERVER_IP:27015Then open ARK and check Favorites.
Optional: Set Up a Subdomain
If you use Cloudflare:
-
Go to DNS settings
-
Add an A record:
- Name:
ark - IPv4: your VPS IP
- Proxy: DNS only / gray cloud
- TTL: Auto
- Name:
Use:
ark.yourdomain.comFor Steam favorites, you may still need:
ark.yourdomain.com:27015Do not orange-cloud/proxy game server records through Cloudflare. Cloudflare’s normal proxy is for HTTP traffic, not random UDP game ports.
Server Management Cheatsheet
# Start server
sudo systemctl start ark
# Stop server
sudo systemctl stop ark
# Restart server
sudo systemctl restart ark
# Check status
sudo systemctl status ark
# Watch live logs
sudo journalctl -u ark -fUpdate the ARK server manually:
sudo systemctl stop ark
sudo -u ark steamcmd +force_install_dir /home/ark/ark-server +login anonymous +app_update 376030 validate +quit
sudo systemctl start arkBack Up Your Server
ARK saves/configs live under:
/home/ark/ark-server/ShooterGame/SavedCreate a backup:
sudo systemctl stop ark
sudo mkdir -p /home/ark/backups
sudo tar -czvf /home/ark/backups/ark-fjordur-saved-$(date +%F-%H%M).tar.gz -C /home/ark/ark-server/ShooterGame Saved
sudo chown -R ark:ark /home/ark/backups
sudo systemctl start arkCheck backups:
ls -lah /home/ark/backupsIf you’re about to update ARK or install mods, back up first. Don’t be lazy here. ARK saves are the whole point of the server.
Restore a Backup
Stop the server:
sudo systemctl stop arkMove the current save out of the way:
sudo mv /home/ark/ark-server/ShooterGame/Saved /home/ark/ark-server/ShooterGame/Saved-broken-$(date +%F-%H%M)Extract backup:
sudo tar -xzvf /home/ark/backups/YOUR_BACKUP_FILE.tar.gz -C /home/ark/ark-server/ShooterGame
sudo chown -R ark:ark /home/ark/ark-server/ShooterGame/SavedStart again:
sudo systemctl start arkConfig Files You’ll Eventually Care About
After the first run, ARK creates config files here:
/home/ark/ark-server/ShooterGame/Saved/Config/LinuxServerMain files:
GameUserSettings.ini
Game.iniOpen them with:
sudo -u ark nano /home/ark/ark-server/ShooterGame/Saved/Config/LinuxServer/GameUserSettings.ini
sudo -u ark nano /home/ark/ark-server/ShooterGame/Saved/Config/LinuxServer/Game.iniCommon things you might configure:
- Taming speed
- Harvest amount
- XP multiplier
- Difficulty
- PvE/PvP
- Admin password
- RCON
- Server name
- Mods
For a chill friends-only Fjordur server, this is a good starting [ServerSettings] block:
[ServerSettings]
XPMultiplier=2.000000
SupplyCrateLootQualityMultiplier=3.000000
FishingLootQualityMultiplier=3.000000
TamingSpeedMultiplier=3.000000
HarvestAmountMultiplier=3.000000
PlayerCharacterWaterDrainMultiplier=0.750000
PlayerCharacterFoodDrainMultiplier=0.750000SupplyCrateLootQualityMultiplier=3.000000 boosts loot quality, not the number of items in each drop.
The dino harvesting damage multiplier goes in Game.ini, not GameUserSettings.ini:
[/script/shootergame.shootergamemode]
DinoHarvestingDamageMultiplier=5.000000For the full list of settings you can tune, use the ARK Official Community Wiki server configuration page as your reference.
Don’t go crazy with multipliers immediately. ARK progression can become meaningless if everything is too boosted.
Changing Maps
This guide uses Fjordur by default.
The map name is the first argument before ?listen:
Fjordur?listenOther common official maps:
Fjordur
TheIsland
TheCenter
ScorchedEarth_P
Ragnarok
Aberration_P
Extinction
Valguero_P
Genesis
CrystalIsles
Gen2
LostIslandExample using Ragnarok instead of Fjordur:
./ShooterGameServer Ragnarok?listen?SessionName="YourServerName"?ServerAdminPassword="youradminpassword"?Port=7777?QueryPort=27015?MaxPlayers=10 -server -logIf you change this in systemd, remember:
sudo systemctl daemon-reload
sudo systemctl restart arkMods / Workshop Mods
ARK mods are possible, but they add more moving parts.
The basic idea is:
- Add mod IDs to your server startup command with
?GameModIds= - Use
-automanagedmods - Restart the server and let ARK download them
Example:
./ShooterGameServer Fjordur?listen?SessionName="YourServerName"?ServerAdminPassword="youradminpassword"?GameModIds=731604991,1404697612?Port=7777?QueryPort=27015?MaxPlayers=10 -server -log -automanagedmodsImportant notes:
- Steam players can use mods
- Epic Games players generally cannot use Steam Workshop mods
- Mods make startup slower
- Mods increase RAM/disk usage
- Always back up before adding/removing mods
For a first setup, I’d run vanilla first, confirm friends can join, then add mods later.
Epic + Steam Crossplay
If you want Epic Games players to join your ARK: Survival Evolved server, add:
-crossplayExample:
./ShooterGameServer Fjordur?listen?SessionName="YourServerName"?ServerAdminPassword="youradminpassword"?Port=7777?QueryPort=27015?MaxPlayers=10 -server -log -crossplayIf you enable Epic crossplay, keep the server vanilla. Epic players cannot use Steam Workshop mods.
Performance Tips
For a small 4-6 friend Fjordur server:
- 8GB RAM is the minimum I’d consider
- 16GB RAM is more comfortable
- Use SSD/NVMe, not HDD
- Keep mods minimal
- Don’t oversell
MaxPlayers - Monitor with
htop - Back up before updates
Install htop if you skipped it:
sudo apt install -y htop
htopWatch disk usage:
df -hWatch ARK folder size:
sudo du -sh /home/ark/ark-server
sudo du -sh /home/ark/ark-server/ShooterGame/SavedTroubleshooting
add-apt-repository: command not found
That command is from Ubuntu guides. You do not need it on Debian for this setup.
On Debian, enable contrib non-free non-free-firmware in /etc/apt/sources.list.d/debian.sources instead.
Unable to locate package steamcmd
Your Debian sources probably still only have:
Components: mainFix it:
sudo sed -i 's/^Components: main$/Components: main contrib non-free non-free-firmware/' /etc/apt/sources.list.d/debian.sources
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install -y steamcmd lib32gcc-s1Please use force_install_dir before logon
Your command order is wrong.
Wrong:
steamcmd +login anonymous +force_install_dir /home/ark/ark-server +app_update 376030 validate +quitCorrect:
steamcmd +force_install_dir /home/ark/ark-server +login anonymous +app_update 376030 validate +quitServer won’t start
Check logs:
sudo journalctl -u ark -n 200 --no-pagerCheck if the binary exists:
ls -lah /home/ark/ark-server/ShooterGame/Binaries/Linux/ShooterGameServerTry running the update again:
sudo -u ark steamcmd +force_install_dir /home/ark/ark-server +login anonymous +app_update 376030 validate +quitServer starts but friends can’t connect
Check firewall:
sudo ufw statusYou should see:
7777/udp
7778/udp
27015/udpCheck if the server process is running:
ps aux | grep ShooterGameServerCheck listening ports:
sudo ss -lunpt | grep -E '7777|7778|27015'Also check your VPS provider firewall/security group.
Server does not appear in ARK browser
Try:
- Wait a few minutes
- Search exact
SessionName - Use Steam Favorites with
YOUR_IP:27015 - Confirm
27015/udpis open - Confirm the server actually started and did not crash
ARK’s server browser is not amazing, so don’t assume your setup is broken immediately.
Out of memory
Symptoms:
- Server gets killed
- Random crash
- VPS becomes unresponsive
journalctlshows killed process / OOM
Check:
free -h
sudo journalctl -k | grep -i oomFixes:
- Upgrade RAM
- Use fewer mods
- Lower player count
- Don’t run other heavy services on the same VPS
- Add swap only as a last-resort safety net, not as real performance
Permission issues
Make sure the ark user owns the server files:
sudo chown -R ark:ark /home/ark/ark-server
sudo chown -R ark:ark /home/ark/backupsThen restart:
sudo systemctl restart arkFinal Notes
If you’ve hosted Minecraft on a VPS before, ARK is the same mental model but heavier:
- Minecraft: Java jar + one TCP port
- ARK: SteamCMD app + multiple UDP ports + big saves + more RAM
I’d personally get Fjordur running vanilla first, verify people can join, then only after that add mods, crossplay, domains, and boosted config.
Once it works, this setup is honestly pretty clean: update with SteamCMD, manage with systemd, back up ShooterGame/Saved, and you’re good.