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
- Install Moby (Docker Engine)
- Install Docker Compose v2 Plugin
- Deploy Palworld Server
- Verify Server Status
- Server Configuration
- Common Operations
- 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.io→ghcr.nju.edu.cnSimply replace the
imagefield, 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:
STATUSshould beUp(notExitedorRestarting)PORTSshould show0.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