Skip to main content

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/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) and lets you change values interactively.

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.

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.

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-free apt components on Debian (enabled automatically by road-poneglyph ark install), or multiverse on Ubuntu (already present on stock Ubuntu server images).

License

MIT — see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

road_poneglyph-0.2.0.tar.gz (24.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

road_poneglyph-0.2.0-py3-none-any.whl (20.4 kB view details)

Uploaded Python 3

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

Hashes for road_poneglyph-0.2.0.tar.gz
Algorithm Hash digest
SHA256 825e97380ec7fb0d9f937ce4b0c5a41e129dad8a15947bc67570140c2f89635b
MD5 0360b2d80f30f38249a8f7631833a60b
BLAKE2b-256 df298ab64e667b88952f9ced4bb318adf52a2c5327a4f2aaeab1b24942d33cc2

See more details on using hashes here.

Provenance

The following attestation bundles were made for road_poneglyph-0.2.0.tar.gz:

Publisher: workflow.yml on axatbhardwaj/road-poneglyph

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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

Hashes for road_poneglyph-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ed8239c8819fddbe65b2634cd57de102935f9b91f64e2eb93bbb384c520b6924
MD5 ea4f64c25acd137438576883bb1c2592
BLAKE2b-256 df79da8511738f4a6f4c0eed0370a7f17dabf6b9b99372a3d0c374075fdda89f

See more details on using hashes here.

Provenance

The following attestation bundles were made for road_poneglyph-0.2.0-py3-none-any.whl:

Publisher: workflow.yml on axatbhardwaj/road-poneglyph

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page