Run Satisfactory Dedicated Server on Ubuntu 20.04.
SteamUser="steam"
GameDirectory="satisfactory_dedicated_server"
- https://satisfactory.fandom.com/wiki/Dedicated_servers
- https://satisfactory.fandom.com/wiki/Dedicated_servers/Running_as_a_Service
- https://developer.valvesoftware.com/wiki/SteamCMD
sudo useradd -m $SteamUser
cd /home/$SteamUser
sudo apt install -y steamcmd
sudo -u $SteamUser /usr/bin/mkdir -p /home/$SteamUser/$GameDirectory
cat <<EOF | sudo tee /etc/ufw/applications.d/satisfactory
[Satisfactory]
title=Satisfactory
description=An extremely satisfying experience
ports=15777,15000,7777/udp
EOF
sudo ufw app update Satisfactory
sudo ufw allow Satisfactory
sudo ufw reload
cat <<EOF | sudo tee /etc/systemd/system/satisfactory.service
[Unit]
Description=Satisfactory dedicated server
Wants=network-online.target
After=syslog.target network.target nss-lookup.target network-online.target
[Service]
Environment="LD_LIBRARY_PATH=./linux64"
ExecStartPre=/usr/games/steamcmd +login anonymous +force_install_dir "/home/$SteamUser/$GameDirectory" +app_update 1690800 validate +quit
ExecStart=/home/$SteamUser/$GameDirectory/FactoryServer.sh
User=$SteamUser
Group=$SteamUser
StandardOutput=journal
Restart=on-failure
KillSignal=SIGINT
WorkingDirectory=/home/$SteamUser/$GameDirectory
SyslogIdentifier=satisfactory
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl enable --now satisfactory
sudo journalctl -feu satisfactory
sudo -u steam /bin/bash
PATH=$PATH:/usr/games/
export PATH
steamcmd
quit