A Linux dedicated game server launcher for Palworld and ARK: Survival Evolved — manages steamcmd, systemd, and polkit on Debian/Ubuntu.
Project description
road-poneglyph
A multi-game dedicated server launcher for Linux. road-poneglyph installs, configures, and manages Palworld and ARK: Survival Evolved servers on Debian and Ubuntu using systemd and Polkit (Palworld) or arkmanager wrapped by a NOPASSWD sudoers fragment (ARK). Day-to-day start/stop/restart of Palworld needs no sudo at all; ARK management uses sudo -u steam arkmanager ... without a password prompt thanks to the installed /etc/sudoers.d/road-poneglyph-ark fragment.
Features
- Two games, one CLI:
road-poneglyph palworld <verb>installs a native systemd service for PalServer;road-poneglyph ark <verb>installs ark-server-tools (arkmanager) and wraps every verb. - Automated installation: downloads SteamCMD, pulls the right app (Palworld app id 2394010 or ARK: Survival Evolved app id 376030), and writes a systemd unit.
- Package manager repair: attempts to fix common
apt/dpkgbreakage before running steamcmd. - Merged Polkit rule: a single
/etc/polkit-1/rules.d/40-road-poneglyph.rulesauthorises the invoking user to start/stop/restart every known game service unit withoutsudo. - ARK sudoers fragment:
/etc/sudoers.d/road-poneglyph-arklets the invoking user runsudo -u steam /usr/local/bin/arkmanager *with no password prompt. - Opt-in autostart for ARK:
arkserver.serviceis NOT installed by default. Pass--enable-autostarttoroad-poneglyph ark installto write and enable the systemd unit; without the flag, manage the server exclusively throughroad-poneglyph ark start/stop/...(which callarkmanagerdirectly — no systemd unit needed). - Interactive settings editor:
edit-settingsparses the per-game config file (PalWorldSettings.inifor Palworld,/etc/arkmanager/instances/main.cfgfor ARK) and lets you change values interactively.
Prerequisites
- A Debian 12+/13 or Ubuntu 22.04+/24.04 server (Linux only).
sudoprivileges for the user runningroad-poneglyph.- Python 3.8 or newer.
- For ARK only: apt components
contrib non-free(Debian) ormultiverse(Ubuntu).road-poneglyph ark installenablescontrib non-freeon Debian automatically; Ubuntu server images shipmultiverseby default.
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 asroad-poneglyph.pip install --upgrade palworld-server-launcherwill 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 isroad-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.serviceand 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,statusall 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.rulesinstead — the merged rule covers every known game service unit. Polkit merges rule files additively, so the two files coexist harmlessly. Once you have confirmed thatroad-poneglyph palworld start/stop/restartwork 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.
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.
Firewall / Port Reference
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 |
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
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.
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-freeapt components on Debian (enabled automatically byroad-poneglyph ark install), ormultiverseon Ubuntu (already present on stock Ubuntu server images).
License
MIT — see LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file road_poneglyph-0.2.0.tar.gz.
File metadata
- Download URL: road_poneglyph-0.2.0.tar.gz
- Upload date:
- Size: 24.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
825e97380ec7fb0d9f937ce4b0c5a41e129dad8a15947bc67570140c2f89635b
|
|
| MD5 |
0360b2d80f30f38249a8f7631833a60b
|
|
| BLAKE2b-256 |
df298ab64e667b88952f9ced4bb318adf52a2c5327a4f2aaeab1b24942d33cc2
|
Provenance
The following attestation bundles were made for road_poneglyph-0.2.0.tar.gz:
Publisher:
workflow.yml on axatbhardwaj/road-poneglyph
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
road_poneglyph-0.2.0.tar.gz -
Subject digest:
825e97380ec7fb0d9f937ce4b0c5a41e129dad8a15947bc67570140c2f89635b - Sigstore transparency entry: 1288761881
- Sigstore integration time:
-
Permalink:
axatbhardwaj/road-poneglyph@8dbd84ac16ed7ab84eee97797c646ed0efa9e491 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/axatbhardwaj
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
workflow.yml@8dbd84ac16ed7ab84eee97797c646ed0efa9e491 -
Trigger Event:
push
-
Statement type:
File details
Details for the file road_poneglyph-0.2.0-py3-none-any.whl.
File metadata
- Download URL: road_poneglyph-0.2.0-py3-none-any.whl
- Upload date:
- Size: 20.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ed8239c8819fddbe65b2634cd57de102935f9b91f64e2eb93bbb384c520b6924
|
|
| MD5 |
ea4f64c25acd137438576883bb1c2592
|
|
| BLAKE2b-256 |
df79da8511738f4a6f4c0eed0370a7f17dabf6b9b99372a3d0c374075fdda89f
|
Provenance
The following attestation bundles were made for road_poneglyph-0.2.0-py3-none-any.whl:
Publisher:
workflow.yml on axatbhardwaj/road-poneglyph
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
road_poneglyph-0.2.0-py3-none-any.whl -
Subject digest:
ed8239c8819fddbe65b2634cd57de102935f9b91f64e2eb93bbb384c520b6924 - Sigstore transparency entry: 1288761955
- Sigstore integration time:
-
Permalink:
axatbhardwaj/road-poneglyph@8dbd84ac16ed7ab84eee97797c646ed0efa9e491 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/axatbhardwaj
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
workflow.yml@8dbd84ac16ed7ab84eee97797c646ed0efa9e491 -
Trigger Event:
push
-
Statement type: