Open Fortress Updated May 11, 2026

Running an Open Fortress Server on Linux

Full Linux setup guide for an Open Fortress dedicated server — SteamCMD install, directory structure, systemd service, and the critical /mnt/c/ warning.

Open FortressLinuxdedicated serversystemdSteamCMDBeans

Running an Open Fortress Server on Linux

Linux is the recommended OS for Open Fortress dedicated servers. The Source engine's srcds_run wrapper handles crash recovery and auto-updates natively, and most hosting environments are Linux-based.

Critical: Never Install to /mnt/c/

If you're setting up on WSL (Windows Subsystem for Linux) or a dual-boot system, do not install the server to /mnt/c/ or any Windows-mounted path. The Source engine requires POSIX-compliant file I/O for certain file operations, and Windows-mounted drives under WSL do not provide this. The result is game mount failures and the server refusing to start correctly.

Always install to a native Linux path, e.g. /home/ofserver/. This applies to both the SteamCMD install and the Open Fortress files.

Step-by-Step Linux Install

Step 1 — Create a dedicated user (recommended)

sudo useradd -m -s /bin/bash ofserver
sudo su - ofserver

Running the server as a dedicated non-root user limits the blast radius of any potential exploit.

Step 2 — Install SteamCMD dependencies

On Debian/Ubuntu:

sudo apt-get install -y lib32gcc-s1 curl

Step 3 — Download SteamCMD

mkdir -p /home/ofserver/steamcmd
cd /home/ofserver/steamcmd
curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -

Step 4 — Install TF2 DS and Source SDK 2013 MP

Create /home/ofserver/fullupdate.txt:

@ShutdownOnFailedCommand 1
@NoPromptForPassword 1
login anonymous
force_install_dir /home/ofserver/tf2d
app_update 232250
force_install_dir /home/ofserver/sdk
app_update 244310 -beta previous2021
quit

Run:

/home/ofserver/steamcmd/steamcmd.sh +runscript /home/ofserver/fullupdate.txt

Step 5 — Create steam_appid.txt

echo "243750" > /home/ofserver/sdk/steam_appid.txt

Step 6 — Place Open Fortress files

Download OF from SVN or via the Beans updater (https://beans.adastral.net). Place the open_fortress/ directory at:

/home/ofserver/sdk/open_fortress/

Directory Structure

/home/ofserver/
├── steamcmd/                     ← SteamCMD binary
├── tf2d/                         ← TF2 Dedicated Server (AppID 232250)
└── sdk/                          ← Source SDK 2013 MP (AppID 244310)
    ├── steam_appid.txt            ← contains: 243750
    ├── srcds_run                  ← server launch binary
    └── open_fortress/
        ├── cfg/
        │   ├── server.cfg
        │   └── autoexec.cfg
        ├── addons/
        └── maps/

Launch Script

Create /home/ofserver/start.sh:

#!/bin/bash
cd /home/ofserver/sdk
./srcds_run -console -game open_fortress -port 27015 +ip "0.0.0.0" \
  -nohltv -timeout 0 +maxplayers 24 +map dm_crossfire \
  +sv_cheats 0 -autoupdate

Make it executable:

chmod +x /home/ofserver/start.sh

Systemd Service

To run the server as a background service that restarts on crash and starts on boot, create /etc/systemd/system/openfortress.service:

[Unit]
Description=Open Fortress Dedicated Server
After=network.target

[Service]
Type=simple
User=ofserver
WorkingDirectory=/home/ofserver/sdk
ExecStart=/home/ofserver/start.sh
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target

Enable and start:

sudo systemctl daemon-reload
sudo systemctl enable openfortress
sudo systemctl start openfortress
sudo systemctl status openfortress

View live server output:

sudo journalctl -u openfortress -f

Keeping the Server Updated

Re-run the SteamCMD script when OF or the SDK receives updates:

/home/ofserver/steamcmd/steamcmd.sh +runscript /home/ofserver/fullupdate.txt

Then restart the service:

sudo systemctl restart openfortress

The -autoupdate flag in the launch command handles srcds_run-level restarts between minor OF updates, but does not replace manually re-running SteamCMD for SDK updates.

Beans Updater Alternative

If you prefer the Beans updater over manual SteamCMD, Beans can be run from Linux after installing its dependencies. See https://beans.adastral.net for Linux setup instructions. Beans automates the multi-AppID download and OF file placement in a single command.