Running an autonomous dedicated Satisfactory server allows player groups to construct sprawling, interconnected megafactories without binding gameplay to a host player's PC. Hosting on Linux delivers superior resource efficiency and system reliability. However, achieving enterprise-grade uptime requires dedicated service accounts, carefully configured systemd daemons with elevated file descriptor limits, and proper UDP firewall routing.
This step-by-step tutorial covers deploying a dedicated Satisfactory server on Ubuntu Linux via SteamCMD, provisioning an automated systemd unit, and completing server claiming via the game client.
System Prerequisites and Ubuntu Environment Setup#
Satisfactory executes on Unreal Engine, demanding capable server hardware:
- CPU: Minimum 4 dedicated cores featuring high single-thread clock speeds (3.5 GHz+).
- RAM: Minimum 12 GB RAM for new factories; 16 to 24 GB RAM for late-game industrial complexes with dense conveyor networks.
- Storage: 30 GB+ available NVMe storage.
- Operating System: Ubuntu 22.04 or 24.04 LTS (x86_64).
Update system packages and install SteamCMD alongside required 32-bit compatibility libraries:
sudo apt update && sudo apt install -y steamcmd lib32gcc-s1 curl
Provision a non-root system account dedicated to running Satisfactory:
sudo useradd -m -s /bin/bash satisfactory
sudo mkdir -p /opt/satisfactory
sudo chown -R satisfactory:satisfactory /opt/satisfactory
Installing the Dedicated Server via SteamCMD#
Switch to the satisfactory user and download the dedicated server binaries (SteamCMD App ID 1690800):
/usr/games/steamcmd +force_install_dir /opt/satisfactory \
+login anonymous \
+app_update 1690800 validate \
+quit
SteamCMD validates installation manifests and streams current game binaries into /opt/satisfactory. Upon completion, the console reports:
Success! App '1690800' fully installed.
Creating and Configuring the systemd Daemon Unit#
Running headless game servers directly inside interactive tmux or screen sessions provides no automatic crash recovery or reboot resilience. Create an official systemd service unit:
sudo tee /etc/systemd/system/satisfactory.service << 'EOF'
[Unit]
Description=Satisfactory Dedicated Server
After=network.target
[Service]
Type=simple
User=satisfactory
Group=satisfactory
WorkingDirectory=/opt/satisfactory
ExecStart=/opt/satisfactory/Engine/Binaries/Linux/UnrealServer-Linux-Shipping FactoryGame -unattended
Restart=always
RestartSec=10
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
EOF
The LimitNOFILE=65536 directive is critical: Unreal Engine handles thousands of simultaneous file descriptors for factory assets and network sockets. The default limit of 1024 causes premature crashes with Too many open files errors.
Through a managed server management panel, process supervision, memory safety boundaries, and auto-restart policies are provisioned automatically without writing systemd definitions manually.
Configuring Firewall Rules and Network Ports#
Beginning with release 1.0, Satisfactory consolidated all network traffic (game data, state polling, and beacons) onto a single unified port: UDP 7777.
Permit UDP 7777 through the host firewall:
sudo ufw allow 7777/udp comment "Satisfactory Game and Query"
sudo ufw status verbose
Enable and launch the systemd service:
sudo systemctl daemon-reload
sudo systemctl enable --now satisfactory
Verify service status and UDP socket binding:
sudo systemctl status satisfactory --no-pager
sudo ss -ulnp | grep 7777
Claiming the Server in the Satisfactory Client#
Once the daemon binds UDP port 7777:
- Launch the Satisfactory client on your PC.
- In the main menu, navigate to the Server Manager.
- Click Add Server.
- Enter the public IP address of your Linux instance and port
7777. - Upon initial handshake, the client will prompt you to set a server name and establish an administrative password to complete the server claim.
- Under the Create Game tab, pick your starting biome and begin factory construction.
Your Satisfactory dedicated server is fully provisioned, protected by systemd auto-recovery, and ready for cooperative engineering.




