2.7 KiB
ReSkate dedicated server on Linux
Native x86_64 build. Same lobby protocol as ReSkateServer.exe; needs no game install.
Self-update is disabled on Linux (V1) — update by replacing the binary.
Requirements
- 64-bit Linux (tested: CachyOS/Arch, Ubuntu 22.04+ should work).
cmake >= 3.24,g++ >= 12(C++20),libssl-dev(OpenSSL),libcurlheaders optional (not needed for V1).- Steamworks SDK redist beside the binary:
libsteam_api.so+steamclient.so(Valve proprietary, not in this repo). Anonymous game-server login, same as Windows.
Arch/CachyOS:
sudo pacman -S base-devel cmake openssl
Ubuntu/Debian:
sudo apt install build-essential cmake libssl-dev
Build
cmake --preset linux-x64
cmake --build --preset linux-release -j$(nproc)
./build/linux/ReSkateServer
Binary: build/linux/ReSkateServer (ELF, OUTPUT_NAME ReSkateServer).
Portable tests:
cmake --preset linux-x64 -DDINGOSDK_BUILD_MULTIPLAYER_TESTS=ON
cmake --build --preset linux-release -j$(nproc)
ctest --test-dir build/linux --output-on-failure
Expected: 8 passed (multiplayer_parties, server_activity, server_speed_check,
server_config, word_filter, multiplayer_bandwidth, multiplayer_lanes,
multiplayer_prediction). Windows-only tests (voice, lobbies, UI) stay WIN32-gated.
Run
- Put
ReSkateServerin its own folder withlibsteam_api.so,steamclient.so. - First run writes
ReSkateServer.json; editname+admins, restart. - Optional:
world-layers.json(export on Windows viaReSkateServer.exe --export-world-layers "<Skate folder>" world-layers.json),Mods/<mod>/reskate-levels.jsonfor custom maps. - No ports need opening (Steam relay). Optional UDP
27015-27016(port,query_port) for browser ping + faster joins.
Without libsteam_api.so the server exits 1 with:
Cannot load .../libsteam_api.so. Put libsteam_api.so (Steamworks SDK) next to the server.
Full command list: Server/README.txt (same on Linux; binary name differs).
systemd
See contrib/reskate-server.service. Install:
sudo cp contrib/reskate-server.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable --now reskate-server
Notes / limits (V1)
auto_update/updatecommand:updates_enabled()==falseon Linux.check_for_updatereports “self-update is not supported on Linux”.--export-world-layersneeds Windows game + Oodle (oo2core_9_win64.dll); on Linux Oodle blocks throw. Export on Windows, copy the JSON over.content_cachedir:%LOCALAPPDATA%on Windows,$XDG_CACHE_HOME/~/.cacheon Linux.- Crypto interop verified: OpenSSL
PKCS5_PBKDF2_HMAC(SHA256, 100k)+HMAC-SHA256matches WindowsBCrypt(checked against Pythonhashlib).