SnubTech Solutions — Wiki
Home Lab · Game Servers

Hosting Palworld on a Raspberry Pi 5, the part nobody documents

A complete, copy-paste walkthrough for running a real, console-joinable Palworld dedicated server on ARM hardware Palworld doesn't officially support — including the one undocumented setting that silently keeps most self-hosted servers off the in-game community browser entirely.

Hardware  Raspberry Pi 5 (8GB) Time  ~15 min hands-on, ~15 min unattended Result  Joinable by PC, Xbox & PS5

Overview

Palworld's dedicated server binary is built for x86-64. A Pi 5 is ARM64. This guide runs the server through hardware-accelerated emulation via a purpose-built Docker image, and covers every setting that determines whether your server is actually findable — not just online.

The single most common failure mode A server that works perfectly over direct-connect but never appears in the community browser almost always traces back to one missing setting — covered in Step 3. If you only remember one thing from this page, remember IS_MULTIPLAY.

PREP

What you'll need

  • Raspberry Pi 58GB model recommended for 3–5 players
  • NVMe SSDStrongly preferred over microSD — saves are write-heavy
  • Raspberry Pi OS (64-bit)Already flashed, SSH-accessible
  • Router admin accessFor port forwarding & a DHCP reservation
STEP 1

Fix the kernel page size

Raspberry Pi 5 boots a 16 KB memory-page kernel by default. The x86 emulation layer underneath the game server binary cannot load at all under 16K pages — it fails before your server ever gets a chance to start. Switch to the standard 4K-page kernel first.

Terminal · edit boot config
sudo nano /boot/firmware/config.txt

Add this line at the bottom of the file, then save and exit:

config.txt
kernel=kernel8.img
Terminal · reboot
sudo reboot

After it reconnects, confirm the page size actually changed:

Terminal · verify
getconf PAGE_SIZE
# must print 4096 — if it still says 16384, double-check config.txt
STEP 2

Install Docker

Terminal
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER

Log out and back in for the group change to apply (or run newgrp docker), then confirm:

Terminal · verify
docker --version
docker compose version
STEP 3

The compose file

This runs on thijsvanloef/palworld-server-docker — actively maintained, tested on ARM64, and the only common option with a properly documented setting for community-list visibility.

Terminal · project folder
mkdir -p ~/palworld && cd ~/palworld
nano compose.yaml
compose.yaml
services:
  palworld:
    image: thijsvanloef/palworld-server-docker:latest
    restart: unless-stopped
    container_name: palworld-server
    stop_grace_period: 30s
    ports:
      - 8211:8211/udp
      - 27015:27015/udp
    environment:
      PUID: 1000
      PGID: 1000
      PORT: 8211
      PLAYERS: 8
      MULTITHREADING: true
      RCON_ENABLED: true
      RCON_PORT: 25575
      SERVER_PASSWORD: "yourpasswordhere"
      REST_API_ENABLED: true
      TZ: "America/Chicago"
      ADMIN_PASSWORD: "youradminpasswordhere"
      COMMUNITY: true
      IS_MULTIPLAY: true
      PUBLIC_IP: "YOUR.PUBLIC.IP.HERE"
      PUBLIC_PORT: 8211
      QUERY_PORT: 27015
      SERVER_NAME: "Your Server Name"
      CROSSPLAY_PLATFORMS: "(Steam,Xbox,PS5,Mac)"
      AUTO_UPDATE_ENABLED: false
      BACKUP_ENABLED: true
      BACKUP_CRON_EXPRESSION: "30 3 * * *"
      AUTO_REBOOT_ENABLED: true
      AUTO_REBOOT_CRON_EXPRESSION: "35 3 * * *"
      AUTO_REBOOT_WARN_MINUTES: 5
    volumes:
      - ./palworld:/palworld/

IS_MULTIPLAY is the setting almost every guide skips Without it, the server runs fine and direct-connect works perfectly — but it will never appear in the community browser, which is the only way console players can find it at all. This came from reading the image's actual source, not from any official doc.

QUERY_PORT is a second, separate port Community-list registration uses 27015 independently of the game port 8211. Forgetting to forward it produces the exact same symptom: joinable by IP, invisible in the browser.

Find your public IP for the PUBLIC_IP field:

Terminal
curl ifconfig.me

Settings reference

SettingValueWhy it matters
IS_MULTIPLAYtrueRequired for community-list visibility. Undocumented elsewhere.
COMMUNITYtrueRegisters the server on the in-game browser at all.
QUERY_PORT27015Separate port used specifically for community-list discovery.
PUBLIC_IPyour public IPMust be your real internet-facing address, not the Pi's LAN IP.
REST_API_ENABLEDtrueRequired for AUTO_REBOOT_ENABLED to function — silently no-ops without it.
CROSSPLAY_PLATFORMS(Steam,Xbox,PS5,Mac)Controls which platforms can see/join.
STEP 4

First boot

Terminal
docker compose up -d
docker logs -f palworld-server

First launch downloads the actual game server files through Steam — several gigabytes, so expect a few minutes depending on your connection. Once it's ready, the log ends with:

Expected output
Running Palworld dedicated server on :8211

Confirm it's healthy and both ports are published:

Terminal
docker ps
STEP 5

Router port forwarding

Open two UDP ports as static rules in your router's admin UI — not UPnP.

Why not UPnP UPnP-added mappings can silently disappear if the router's settings are ever reset or resaved. A manually configured rule persists through that.

ServiceProtocolExternal portInternal port
PalworldUDP82118211
Palworld QueryUDP2701527015

Point both at your Pi's LAN IP, and while you're in the router UI, set a DHCP reservation for that IP against the Pi's MAC address so the forward never silently breaks.

STEP 6

Verify it's reachable

EXTRA

Reliability extras

Already included in the compose file above, worth understanding why:

  • Nightly backupBACKUP_ENABLED + BACKUP_CRON_EXPRESSION
  • Nightly restart — Unreal Engine dedicated servers can silently hang after roughly a day of continuous uptime. A scheduled restart during a dead hour prevents it before it happens to you mid-session.
  • Timezone — the reboot cron runs in the container's configured TZ, not necessarily your local time. Double-check it matches where you live.
LINKS

Resources & links

thijsvanloef/palworld-server-docker github.com/thijsvanloef/palworld-server-docker Full image documentation palworld-server-docker.loef.dev Official Palworld dedicated server docs docs.palworldgame.com