Practical Guide to Deploying Palworld Server on openEuler

openEuler Deployment Guide for Palworld Server

Original article: dessert
Official documentation: https://docs.palworldgame.com
Official Docker deployment guide repository: https://github.com/pocketpairjp/palworld-dedicated-server-docker
Palworld 1.0.0 official release date: 2026-07-10


System Requirements

Item Minimum Configuration Recommended Configuration
CPU 4 cores 4+ cores
Memory 16 GB 32 GB or more (8 GB can start but极易 OOM crash)
Storage 8 GB 20 GB, must be SSD (HDD may corrupt save files)
Network UDP port 8211 open Requires router port forwarding
Operating System openEuler 2403 LTS SP3 x86_64
Docker Moby 25.0.x (native to openEuler)

Table of Contents

  1. Install Moby (Docker Engine)
  2. Install Docker Compose v2 Plugin
  3. Deploy Palworld Server
  4. Verify Server Status
  5. Server Configuration
  6. Common Operations
  7. Common Issues

1. Install Moby (Docker Engine)

The moby package (open-source version of Docker Engine) is included in the openEuler 2403 LTS SP3 repository. Install it directly using yum.

1.1 Install

sudo yum install -y moby

After installation, the Docker daemon (dockerd) and CLI tool (docker) will be available.

1.2 Start Docker

sudo systemctl enable --now docker

1.3 Add User to Docker Group (Avoid sudo Every Time)

Add your current user to the docker group:

sudo usermod -aG docker $USER

Then log out and back in (reconnect via SSH or run newgrp docker) to apply the group permissions.

1.4 Verify Installation

docker version
docker info

Ensure the output shows Docker version information and no permission denied errors.


2. Install Docker Compose Plugin

2.1 Download Latest Release Binary

Download the latest Linux binary from https://github.com/docker/compose/releases. Current latest version is v5.3.1:

# Create CLI plugin directory
sudo mkdir -p /usr/lib/docker/cli-plugins

# Download Docker Compose plugin
VERSION=v5.3.1
sudo curl -SL \
  "https://github.com/docker/compose/releases/download/${VERSION}/docker-compose-linux-x86_64" \
  -o /usr/lib/docker/cli-plugins/docker-compose

# Add executable permission
sudo chmod +x /usr/lib/docker/cli-plugins/docker-compose

If GitHub access is slow, use a reverse proxy to accelerate the download.

2.2 Verify Installation

# Should output version info
docker compose version

Expected output:

Docker Compose version v5.3.1

3. Deploy Palworld Server

Use the official Docker Compose configuration provided by Pocketpair.

3.1 Create Deployment Directory

mkdir -p ~/palworld-server && cd ~/palworld-server

3.2 Download Deployment Example

Official container deployment script example:

# Get compose.yaml and related files
git clone https://github.com/pocketpairjp/palworld-dedicated-server-docker.git
cd ./palworld-dedicated-server-docker/compose/
services:
  palworld-server:
    # https://github.com/pocketpairjp/palworld-dedicated-server-docker/pkgs/container/palserver
    # Recommended: change to `latest`
    image: ghcr.io/pocketpairjp/palserver:v1.0.0.100427

    entrypoint: /pal/helper.sh

    # https://tech.palworldgame.com/settings-and-operation/arguments
    command:
      - -port=8211
      - -useperfthreads
      - -NoAsyncLoadingThread
      - -UseMultithreadForDS

    ports:
      - "8211:8211/udp"

    volumes:
      - ./helper.sh:/pal/helper.sh:ro
      - ./Saved:/pal/Package/Pal/Saved

About ghcr.io Mirror Acceleration (Optional)

Access to ghcr.io may be slow in China. Use Nanjing University’s mirror:

  • Nanjing University Mirror: ghcr.ioghcr.nju.edu.cn

Simply replace the image field, for example:

image: ghcr.nju.edu.cn/pocketpairjp/palserver:latest

3.4 Pull the Image

docker compose pull

If network issues occur, manually pull using the mirror:

docker pull ghcr.nju.edu.cn/pocketpairjp/palserver:latest

3.5 Start the Service

docker compose up -d

3.6 Save Files and Configuration

After startup, save files and configurations will be generated in the mounted directory ./Saved/:

~/palworld-server/
├── compose.yaml
├── helper.sh
└── Saved/
    └── Config/
        └── LinuxServer/
            └── PalWorldSettings.ini   ← Server configuration file

4. Verify Server Status

4.1 Check Container Status

docker ps --filter "name=palworld-server"

Expected output:

CONTAINER ID   IMAGE                                               COMMAND                  CREATED         STATUS         PORTS                    NAMES
a1b2c3d4e5f6   ghcr.io/pocketpairjp/palserver:v1.0.0.100427   "/pal/helper.sh -po…"   2 minutes ago   Up 2 minutes   0.0.0.0:8211->8211/udp   palworld-server

Key points:

  • STATUS should be Up (not Exited or Restarting)
  • PORTS should show 0.0.0.0:8211->8211/udp

4.2 View Server Logs

docker compose logs --tail=50

Signs of successful startup:

palworld-server | Game Version is v1.0.0.100427
palworld-server | Running Palworld dedicated server on :8211

If there are errors or crashes, logs will clearly indicate the cause.

4.3 Check Port Listening

ss -tulpn | grep 8211

Expected output:

udp   UNCONN  0  0   0.0.0.0:8211   0.0.0.0:*   users:((\"docker-proxy\",pid=12345))

This confirms that UDP port 8211 is properly listening on the host.


5. Common Operations

Action Command
Start service docker compose up -d
Stop service docker compose down
Restart service docker compose restart
View logs docker compose logs -f
Pull latest image docker compose pull
Update service docker compose pull && docker compose up -d
Enter container docker compose exec palworld-server bash

6. Common Issues

Q1: docker pull ghcr.io fails or times out

Access to ghcr.io may be unstable in China. Two solutions:

Method 1: Manually pull mirrored image and tag it

docker pull ghcr.nju.edu.cn/pocketpairjp/palserver:v1.0.0.100427
docker tag ghcr.nju.edu.cn/pocketpairjp/palserver:v1.0.0.100427 ghcr.io/pocketpairjp/palserver:v1.0.0.100427

Method 2: Directly modify compose.yaml image address

image: ghcr.nju.edu.cn/pocketpairjp/palserver:v1.0.0.100427

Q2: Permission denied accessing /var/run/docker.sock

User is not in the docker group:

sudo usermod -aG docker $USER
# Then log out and back in