Skip to main content

road-poneglyph

A multi-game dedicated server launcher for Linux. road-poneglyph installs, configures, and manages Palworld, ARK: Survival Evolved, Satisfactory, Sons Of The Forest, and American Truck Simulator servers on Debian and Ubuntu using systemd and Polkit. Day-to-day start/stop/restart needs no sudo at all thanks to the merged Polkit rule and per-game sudoers fragments.

Features

  • Five games, one CLI: Palworld, ARK, Satisfactory, Sons Of The Forest, and American Truck Simulator each have their own road-poneglyph <game> <verb> commands.
  • Automated installation: downloads SteamCMD, pulls the right app (Palworld 2394010, ARK 376030, Satisfactory 1690800, Sons Of The Forest Dedicated Server 2465200), and writes a systemd unit.
  • Package manager repair: attempts to fix common apt/dpkg breakage before running steamcmd.
  • Merged Polkit rule: a single /etc/polkit-1/rules.d/40-road-poneglyph.rules authorises the invoking user to start/stop/restart every known game service unit without sudo.
  • ARK sudoers fragment: /etc/sudoers.d/road-poneglyph-ark lets the invoking user run sudo -u steam /usr/local/bin/arkmanager * with no password prompt.
  • Opt-in autostart for ARK: arkserver.service is NOT installed by default. Pass --enable-autostart to road-poneglyph ark install to write and enable the systemd unit; without the flag, manage the server exclusively through road-poneglyph ark start/stop/... (which call arkmanager directly — no systemd unit needed).
  • Interactive settings editor: edit-settings parses the per-game config file (PalWorldSettings.ini for Palworld, /etc/arkmanager/instances/main.cfg for ARK, GameUserSettings.ini for Satisfactory, dedicatedserver.cfg for Sons Of The Forest) and lets you change values interactively.
  • Satisfactory HTTPS API integration: road-poneglyph satisfactory save triggers a save via the game's REST API; stop automatically saves before sending SIGINT.

Prerequisites

  • A Debian 12+/13 or Ubuntu 22.04+/24.04 server (Linux only).
  • sudo privileges for the user running road-poneglyph.
  • Python 3.8 or newer.
  • For ARK only: apt components contrib non-free (Debian) or multiverse (Ubuntu). road-poneglyph ark install enables contrib non-free on Debian automatically; Ubuntu server images ship multiverse by default.
  • For Sons Of The Forest only: the official dedicated server tool is Windows-only. road-poneglyph sons install installs Wine/Xvfb and downloads the Windows depot with SteamCMD; this Linux path should be treated as an unofficial compatibility setup.

Installation

pip install road-poneglyph

The PyPI distribution is named road-poneglyph; the installed CLI binary is road-poneglyph. A pipx install also works if you prefer an isolated user-level environment:

pipx install road-poneglyph

Migration from palworld-server-launcher v0.1.19

road-poneglyph v0.2.0 replaces the older palworld-server-launcher v0.1.19 package. Read this section before upgrading — the distribution rename means a pip install --upgrade on the old name will NOT pull v0.2.0.

  • PyPI distribution renamed. v0.1.19 shipped as palworld-server-launcher; v0.2.0 ships as road-poneglyph. pip install --upgrade palworld-server-launcher will not find v0.2.0 — the name changed.

  • Recommended path: fresh install. Install the new distribution rather than trying to upgrade in place:

    pip install road-poneglyph
    pip uninstall palworld-server-launcher   # safe — separate distribution
    
  • CLI entry point changed. The old binary was palworld-server-launcher; the new binary is road-poneglyph. Update shell aliases, cron entries, or shell scripts that invoke the legacy name.

  • Your existing Palworld server keeps working. v0.1.19 installed /etc/systemd/system/palserver.service and game files under ~/Steam/steamapps/common/PalServer. v0.2.0 operates on the same systemd unit and the same directory — road-poneglyph palworld start, stop, restart, status all target the service your v0.1.19 install created. No reinstall is required just to adopt the new CLI name.

  • Manual Polkit cleanup (POL-04). v0.1.19 wrote /etc/polkit-1/rules.d/40-palserver.rules. v0.2.0 writes /etc/polkit-1/rules.d/40-road-poneglyph.rules instead — the merged rule covers every known game service unit. Polkit merges rule files additively, so the two files coexist harmlessly. Once you have confirmed that road-poneglyph palworld start / stop / restart work without a password under v0.2.0, remove the old rule:

    sudo rm /etc/polkit-1/rules.d/40-palserver.rules
    

Quick Start

Palworld

# Install at port 8211 with a 16-player cap and start immediately
road-poneglyph palworld install --port 8211 --players 16 --start

ARK: Survival Evolved

# Install with the admin password you want to use (or omit --admin-password for a
# hidden prompt) and start the server
road-poneglyph ark install --map TheIsland --admin-password 'your-strong-password' --start

If you prefer not to pick a password yourself, use --generate-password and road-poneglyph will generate a 128-bit url-safe admin password and print it once.

Satisfactory

# Install at the default ports and start immediately
road-poneglyph satisfactory install --port 7777 --reliable-port 8888 --players 4 --start

Sons Of The Forest

# Install at the default ports and start immediately
road-poneglyph sons install --server-name 'My SOTF Server' --players 8 --start

First-run note: After installation, the first player to connect via the in-game Server Manager must "claim" the server (sets admin password). Config files (Engine.ini, GameUserSettings.ini) are only generated after the first graceful shutdown — run road-poneglyph satisfactory stop, then road-poneglyph satisfactory edit-settings.

Palworld Usage (road-poneglyph palworld <verb>)

Every Palworld verb targets the native palserver.service systemd unit. Start/stop/restart run without sudo thanks to /etc/polkit-1/rules.d/40-road-poneglyph.rules.

# Install (downloads SteamCMD, pulls PalServer, writes palserver.service)
road-poneglyph palworld install --port 8211 --players 32 --start

Creates the systemd unit at port 8211 with a 32-player cap and starts the server right away.

road-poneglyph palworld start

Starts palserver.service via systemctl start (no sudo required).

road-poneglyph palworld stop

Stops the server gracefully.

road-poneglyph palworld restart

Restarts the service — useful after editing PalWorldSettings.ini.

road-poneglyph palworld status

Shows current service status (systemctl status palserver).

road-poneglyph palworld enable

Enables palserver.service at boot.

road-poneglyph palworld disable

Disables palserver.service at boot.

road-poneglyph palworld update

Re-runs SteamCMD against the Palworld app id and leaves the service untouched. Restart the service afterwards to pick up changes.

road-poneglyph palworld edit-settings

Opens an interactive editor against PalWorldSettings.ini, preserving unknown keys.

ARK Usage (road-poneglyph ark <verb>)

The ARK integration is an arkmanager (ark-server-tools) wrapper. road-poneglyph ark install creates a dedicated steam system user, drops /etc/sudoers.d/road-poneglyph-ark to allow the invoking user to call sudo -u steam /usr/local/bin/arkmanager * without a password, and writes /etc/arkmanager/instances/main.cfg. An arkserver.service unit is written only when --enable-autostart is passed at install time; otherwise no systemd unit exists for ARK and day-to-day management goes through arkmanager directly via road-poneglyph ark <verb>.

Valid maps (12 supported): TheIsland, TheCenter, ScorchedEarth_P, Aberration_P, Extinction, Ragnarok, Valguero_P, CrystalIsles, LostIsland, Fjordur, Genesis, Genesis2.

# Minimal install
road-poneglyph ark install --admin-password 'strong-password'

# Full-featured install: autostart on boot, custom session name, start now
road-poneglyph ark install \
    --map Ragnarok \
    --port 7778 --query-port 27015 --rcon-port 27020 \
    --players 20 \
    --session-name 'MyArkServer' \
    --admin-password 'strong-password' \
    --beta preaquatica \
    --enable-autostart --start

Runs a full arkmanager install: enables the required apt components on Debian, creates the steam user, fetches ark-server-tools, writes main.cfg, and optionally enables boot autostart.

road-poneglyph ark start

Runs sudo -u steam /usr/local/bin/arkmanager start — boots the ARK server via arkmanager.

road-poneglyph ark stop

Graceful shutdown via arkmanager stop (saves world).

road-poneglyph ark restart

Runs arkmanager restart.

road-poneglyph ark status

arkmanager status — shows running state and connected players.

road-poneglyph ark saveworld

Forces a world save via arkmanager saveworld (uses RCON under the hood).

road-poneglyph ark backup

Creates a save backup via arkmanager backup.

road-poneglyph ark update

Updates the ARK server. Runs arkmanager update --validate --beta=preaquatica twice on purpose — steamcmd has a known first-run self-update quirk where the first invocation only updates steamcmd itself; the second invocation does the actual game update.

road-poneglyph ark enable

Enables arkserver.service at boot. Only effective if arkserver.service exists — pass --enable-autostart to road-poneglyph ark install if you did not already.

road-poneglyph ark disable

Disables arkserver.service from starting at boot.

road-poneglyph ark edit-settings

Opens an interactive editor against /etc/arkmanager/instances/main.cfg (arkmanager's instance config). It does NOT edit GameUserSettings.ini — arkmanager owns that file; editing it by hand is unsupported.

Satisfactory Usage (road-poneglyph satisfactory <verb>)

Satisfactory uses a native SteamCMD install (app 1690800) with a satisfactory.service systemd unit. The server shuts down via SIGINT (not SIGTERM) and does NOT auto-save on shutdown — road-poneglyph satisfactory stop calls the HTTPS API SaveGame endpoint before sending SIGINT.

System requirements: 12-16 GB RAM recommended (single-threaded simulation; autosaves spike memory).

# Install with default ports, 4-player cap, and start
road-poneglyph satisfactory install --port 7777 --reliable-port 8888 --players 4 --start

# With auto-update on every service start
road-poneglyph satisfactory install --port 7777 --reliable-port 8888 --players 4 --auto-update --start
road-poneglyph satisfactory start

Starts satisfactory.service via systemctl start (no sudo required).

road-poneglyph satisfactory stop

Calls the HTTPS API SaveGame first (pre-shutdown save), then sends SIGINT for graceful shutdown. The server does NOT auto-save on any signal.

road-poneglyph satisfactory restart

Restarts the service (triggers ExecStop save → SIGINT → ExecStart).

road-poneglyph satisfactory status

Shows systemd status + HTTPS API health check (if server is running and claimed).

road-poneglyph satisfactory save [name]

Triggers a save via the HTTPS REST API. Requires the server to be claimed (admin password set in-game). On first use, prompts for admin password and caches the Bearer token at ~/.config/road-poneglyph/satisfactory-api-token.

road-poneglyph satisfactory enable

Enables satisfactory.service at boot.

road-poneglyph satisfactory disable

Disables satisfactory.service from starting at boot.

road-poneglyph satisfactory update

Re-runs SteamCMD to validate/update the server files.

road-poneglyph satisfactory edit-settings

Opens an interactive editor for GameUserSettings.ini (Unreal Engine INI format). Note: Config files only exist after the first graceful stop — start the server, let it initialize, then stop before editing.

Satisfactory First-Run Guide

  1. Install: road-poneglyph satisfactory install --start
  2. Wait: Server takes 2-5 minutes to fully initialize on first boot.
  3. Claim: Connect via the in-game Server Manager and "Claim" the server (sets admin password).
  4. Stop once: road-poneglyph satisfactory stop — this generates config files.
  5. Edit settings: road-poneglyph satisfactory edit-settings — now configs exist.
  6. Start: road-poneglyph satisfactory start — ready for players.

Sons Of The Forest Usage (road-poneglyph sons <verb>)

Sons Of The Forest uses a Windows-only dedicated server tool. road-poneglyph sons install downloads SteamCMD app 2465200, installs Wine/Xvfb, writes ~/SonsOfTheForestDedicatedServer/userdata/dedicatedserver.cfg, and creates sons.service.

road-poneglyph sons install \
    --server-name 'My SOTF Server' \
    --players 8 \
    --port 8766 \
    --query-port 27016 \
    --blob-sync-port 9700 \
    --owner-steam-id 76561198000000000 \
    --start
road-poneglyph sons start

Starts sons.service via systemctl start (no sudo required after installation).

road-poneglyph sons stop

Stops sons.service.

road-poneglyph sons restart

Restarts sons.service.

road-poneglyph sons status

Shows current service status.

road-poneglyph sons enable

Enables sons.service at boot.

road-poneglyph sons disable

Disables sons.service from starting at boot.

road-poneglyph sons update

Re-runs SteamCMD to validate/update the server files.

road-poneglyph sons edit-settings

Opens an interactive editor for dedicatedserver.cfg (JSON format). Nested values such as GameSettings are edited as JSON strings.

Sons Of The Forest First-Run Notes

  1. Open ports: UDP 8766, 27016, and 9700 must be reachable unless you use --lan-only.
  2. Network self-test: the server can refuse to boot when its public port check fails. Use --skip-network-accessibility-test only when you understand the network tradeoff.
  3. Owner list: pass --owner-steam-id <SteamID64> during install or edit ~/SonsOfTheForestDedicatedServer/userdata/ownerswhitelist.txt later.
  4. Wine caveat: Linux hosting is a compatibility path for a Windows server tool. Game or Wine updates can still break this setup.

Firewall / Port Reference

American Truck Simulator

road-poneglyph ats install --server-name 'Road Poneglyph ATS'

ATS also needs server_packages.sii and server_packages.dat exported from a running copy of the game. Enable the in-game console in config.cfg with uset g_console "1", load the map, open the console with ~, and run export_server_packages. Copy both generated files to ~/.local/share/American Truck Simulator/ on this server. Then run road-poneglyph ats start and optionally road-poneglyph ats enable. The ats command also supports stop, restart, status, update, disable, and edit-settings.

The defaults are 27025 and 27026 for connection and query, with an eight-player limit. Open both TCP and UDP for these ports. SCS requires the package files for the server to load the map; SteamCMD cannot generate them. An optional Steam game server login token in server_config.sii gives the session a persistent search ID.

road-poneglyph does NOT manage your firewall. Open the ports below yourself (example ufw rules included).

Game Protocol Port Purpose
Palworld UDP 8211 Game + query (single port)
ARK UDP 7777 Game port (implicit in arkmanager)
ARK UDP 7778 ark_Port raw socket
ARK UDP 27015 ark_QueryPort Steam query
ARK TCP 27020 ark_RCONPort RCON admin
Satisfactory UDP 7777 Game traffic
Satisfactory TCP 7777 HTTPS REST API (management, saves)
Satisfactory TCP 8888 Reliable messaging
Sons UDP 8766 Game traffic
Sons UDP 27016 Steam query / server listing
Sons UDP 9700 BlobSync traffic
ATS TCP/UDP 27025 Connection
ATS TCP/UDP 27026 Query

Example ufw rules:

# Palworld
sudo ufw allow 8211/udp

# ARK
sudo ufw allow 7777/udp
sudo ufw allow 7778/udp
sudo ufw allow 27015/udp
sudo ufw allow 27020/tcp

# Satisfactory
sudo ufw allow 7777/udp
sudo ufw allow 7777/tcp
sudo ufw allow 8888/tcp

# Sons Of The Forest
sudo ufw allow 8766/udp
sudo ufw allow 27016/udp
sudo ufw allow 9700/udp

# American Truck Simulator
sudo ufw allow 27025/tcp
sudo ufw allow 27025/udp
sudo ufw allow 27026/tcp
sudo ufw allow 27026/udp

Permissions & Security Model

Palworld. The merged Polkit rule at /etc/polkit-1/rules.d/40-road-poneglyph.rules grants the installing user permission to invoke org.freedesktop.systemd1.manage-units on palserver.service (and every other registered game service unit) without sudo. You can verify the grant with:

pkcheck --action-id=org.freedesktop.systemd1.manage-units \
        --process $$ --allow-user-interaction

No part of the Palworld flow edits /etc/sudoers or asks for a password after installation.

ARK. The arkmanager tool runs as a dedicated steam system user, so every ARK verb is really sudo -u steam /usr/local/bin/arkmanager .... road-poneglyph ark install writes /etc/sudoers.d/road-poneglyph-ark, which grants the installing user exactly NOPASSWD: /usr/local/bin/arkmanager * — no broader sudo rights, no wildcard path, no ALL=(ALL) clause. This is the minimum permission surface that still lets you run road-poneglyph ark start, stop, saveworld, backup, etc. without being prompted for a password.

Sons Of The Forest. The merged Polkit rule grants the installing user control over sons.service. The service runs as the installing user with a dedicated Wine prefix at ~/.local/share/road-poneglyph/wine/sons; it does not grant extra sudoers rights.

Version

road-poneglyph --version

Supported OS

  • Debian 12 (bookworm) and Debian 13 (trixie).
  • Ubuntu 22.04 LTS and Ubuntu 24.04 LTS.
  • Linux only. macOS and Windows are not supported.
  • ARK prerequisite: contrib non-free apt components on Debian (enabled automatically by road-poneglyph ark install), or multiverse on Ubuntu (already present on stock Ubuntu server images).
  • Sons Of The Forest caveat: the dedicated server app is Windows-only, so Linux support uses Wine/Xvfb and is best-effort.

License

MIT — see LICENSE.

Metadata

Release files for road-poneglyph 0.5.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for road-poneglyph 0.5.0
File Size Uploaded Provenance
road_poneglyph-0.5.0.tar.gz 40.5 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for road-poneglyph 0.5.0
File Interpreter ABI Platform
road_poneglyph-0.5.0-py3-none-any.whl Python 3 none any Details

Total release size: 73.2 kB

Release files / road_poneglyph-0.5.0.tar.gz

Download URL road_poneglyph-0.5.0.tar.gz
Size 40.5 kB
Tags Source
SHA-256 checksum
How to use checksums
9e8b51cd37618fea97d966b03d8e3879474e6e6fb88f69bb5944533511969397
BLAKE2b-256 checksum
How to use checksums
60890a2a27214f5f8968314fc59fbf41bc1dbf2e8c6617257cd78c2d2706e251
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Release files / road_poneglyph-0.5.0-py3-none-any.whl

Download URL road_poneglyph-0.5.0-py3-none-any.whl
Size 32.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5a5836f82eefd81693e78f4ce5431e8c4bd3b7e1ef344449f1ab6200506571e3
BLAKE2b-256 checksum
How to use checksums
26a5c10d83f551b706467399eab41896f8dfa6e34ae2a79befcde8503e8fca2c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

Security for road-poneglyph 0.5.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for road_poneglyph-0.5.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 27, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page