This guide explains how to install a Satisfactory dedicated server: first locally on Windows to test, then on a VPS or dedicated server. System: Linux or Windows. Allow 30 to 60 minutes for a first installation, excluding download time.
Step-by-step installation
Check the requirements (CPU, RAM, disk) and choose the host: Windows PC, VPS or dedicated server.
Install SteamCMD and download the server (Steam app 1690800).
On Linux create a non-root user and a dedicated folder; on Windows use a simple folder (e.g. C:\server).
Start the server once to generate its configuration files, then stop it cleanly.
Configure name, password and slot count (see our Satisfactory tools to generate the files).
Open ports 7777/UDP, 7777/TCP, 8888/TCP in the system and provider firewalls; forward them on your router if you host at home.
Test locally (127.0.0.1), then from a connection outside your network.
Create a systemd service (Linux) or a scheduled task (Windows) for automatic startup.
Schedule server backups and updates.
Add your server on game-rank.com/jeux/satisfactory to get it known.
Requirements
- System: Linux or Windows.
- Hardware (official source): RAM 8 GB min. / 16 GB rec.; disk 8 GB (Linux) / 12.4 GB (Windows).
- Steam account: SteamCMD can download the server with an anonymous login; only players need to own the game.
- Network: a public IP (or port forwarding) with ports 7777/UDP, 7777/TCP, 8888/TCP open.
- Access: SSH (Linux) or Remote Desktop (Windows Server); an SSD is recommended.
Local installation (Windows)
Install SteamCMD (steamcmd.exe) in a dedicated folder, then run the commands below in a command prompt. Then start the server and join it from the game on 127.0.0.1.
steamcmd +force_install_dir "C:\satisfactory-server" +login anonymous +app_update 1690800 validate +quit
cd C:\satisfactory-server
FactoryServer.exe -log -unattendedInstallation on a Linux VPS or dedicated server (Ubuntu/Debian)
Create a dedicated user without root rights, install the 32-bit dependencies required by SteamCMD, then download the server. Adapt the user name and folders to your habits.
sudo dpkg --add-architecture i386
sudo apt update && sudo apt install -y curl tar lib32gcc-s1
sudo adduser --disabled-password --gecos "" satisfactory
# then, as the satisfactory user (sudo -iu satisfactory):
mkdir -p ~/steamcmd ~/satisfactory-server && cd ~/steamcmd
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -
./steamcmd.sh +force_install_dir ~/satisfactory-server +login anonymous +app_update 1690800 validate +quitPorts to open
Default values; traffic direction is inbound (towards the server).
To change a port, edit it in the server configuration or launch line (-Port, -ReliablePort), then adapt the firewall.
- 7777/UDP — game traffic
- 7777/TCP — server traffic and HTTPS API (TCP)
- 8888/TCP — reliable messaging (TCP)
Linux firewall (ufw), provider and router
Allow SSH first so you do not lock yourself out, then the game ports. Ports are only reachable if they are also open in the provider firewall (OVH, Hetzner, Scaleway…: "security group" or the panel's network rules).
Hosting at home: create a port forward (NAT) on your router to the server's fixed local IP, for the same ports and protocols. If your ISP uses CGNAT (no public IPv4), forwarding is impossible: ask for a public IP or rent a VPS.
Testing: UDP cannot be tested with a simple web port checker; verify by joining from the game on an outside network (a mobile hotspot, for example) and check the server logs.
sudo ufw allow 22/tcp
sudo ufw allow 7777/udp
sudo ufw allow 7777/tcp
sudo ufw allow 8888/tcp
sudo ufw enable
sudo ufw status verboseWindows firewall (netsh)
Run these commands in a command prompt started as administrator. When hosting at home, also add the port forward on your router.
netsh advfirewall firewall add rule name="Satisfactory 7777 UDP" dir=in action=allow protocol=UDP localport=7777
netsh advfirewall firewall add rule name="Satisfactory 7777 TCP" dir=in action=allow protocol=TCP localport=7777
netsh advfirewall firewall add rule name="Satisfactory 8888 TCP" dir=in action=allow protocol=TCP localport=8888Automatic start on Linux (systemd)
The service restarts the server after a crash and when the machine boots. Enable it with the commands shown in the block.
[Unit]
Description=Satisfactory dedicated server
After=network-online.target
Wants=network-online.target
[Service]
User=satisfactory
WorkingDirectory=/home/satisfactory/satisfactory-server
ExecStart=/home/satisfactory/satisfactory-server/FactoryServer.sh -Port=7777 -ReliablePort=8888
Restart=on-failure
RestartSec=10
KillSignal=SIGINT
TimeoutStopSec=90
[Install]
WantedBy=multi-user.target
# sudo nano /etc/systemd/system/satisfactory.service
# sudo systemctl daemon-reload && sudo systemctl enable --now satisfactory
# journalctl -u satisfactory -fAutomatic start on Windows (scheduled task)
Create a task that runs the start script when Windows boots, under a dedicated account if possible. Adapt the script path.
schtasks /Create /TN "Satisfactory Server" /TR "C:\satisfactory-server\start-satisfactory.bat" /SC ONSTART /RU SYSTEM /RL HIGHEST
schtasks /Run /TN "Satisfactory Server"
schtasks /End /TN "Satisfactory Server"Updates, backups and restarts
Stop the server before any update, back up the data, then restart. Schedule backups with cron (Linux) or Task Scheduler (Windows), and a daily restart if the game leaks memory.
sudo systemctl stop satisfactory
/home/satisfactory/steamcmd/steamcmd.sh +force_install_dir /home/satisfactory/satisfactory-server +login anonymous +app_update 1690800 validate +quit
# Experimental branch: append -beta experimental (back to stable: -beta public)
sudo systemctl start satisfactory
mkdir -p ~/backups
tar czf ~/backups/satisfactory-$(date +%F).tar.gz -C ~/.config/Epic/FactoryGame/Saved SaveGames
find ~/backups -name 'satisfactory-*.tar.gz' -mtime +14 -delete
# crontab -e -> 30 4 * * * <the two lines above, as a script>Listing and finding your server
Once the server is stable, add it on game-rank.com/jeux/satisfactory (the website of the owner of these tools) with its connection address, slots, language and version. Direct connection address to share: <IP>:7777 (depending on the game version). Never publish an admin password.
Troubleshooting
- The server does not appear in the list — cause: query ports closed or server not listed. Fix: open 7777/UDP, 7777/TCP, 8888/TCP, check name/password and wait a few minutes; join directly by IP to test.
- Cannot connect from the Internet but fine locally — cause: system/provider firewall, missing port forward or CGNAT. Fix: check all three levels (ufw/Windows, provider, router) and the protocol (UDP/TCP).
- The server exits at startup or runs out of memory — cause: not enough RAM, missing libraries or wrong working directory. Fix: run it in the foreground, read the logs, add RAM or swap.
- Players see an incompatible version after a game update — cause: server not updated. Fix: stop it, update it (see the Updates section), then restart.
- Configuration changes are ignored or overwritten — cause: file edited while the server runs, wrong folder or syntax error. Fix: stop the server, edit the right file, validate the syntax (JSON/XML) and restart.
Frequently asked questions
- What machine do I need for a Satisfactory server?
- Hardware (official source): RAM 8 GB min. / 16 GB rec.; disk 8 GB (Linux) / 12.4 GB (Windows).
- Which ports should I open?
- Open 7777/UDP, 7777/TCP, 8888/TCP inbound, in the system firewall, at the provider and on your router if needed. These are the default values and can be changed in the server configuration.
- Do I need to own the game to host?
- The dedicated server is downloaded for free with SteamCMD (anonymous login); only players need to own the game.
- How do I update the server?
- Stop the server, re-run the SteamCMD command +app_update 1690800 validate (see the Updates section), then restart. For a beta branch, add -beta <name>.
- Can I host at home?
- Yes, if your connection has a public IP and you can forward ports on your router. With CGNAT or a weak upload, prefer a VPS or dedicated server.
