How to Self-Host a Palworld Server with Docker
What Is Palworld?
Palworld is an open-world survival crafting game where players capture and battle creatures called “Pals” while building bases and exploring. It became one of the fastest-selling games on Steam, hitting 25 million sales within its first month of early access in January 2024. Running your own dedicated server lets you control world settings, player limits, and who can join — without paying for official server hosting or relying on peer-to-peer connections.
Updated February 2026: Verified with latest Docker images and configurations.
Prerequisites
- A Linux server (Ubuntu 22.04+ recommended)
- Docker and Docker Compose installed (guide)
- 8 GB of free RAM (minimum for 4-8 players)
- 16 GB of free RAM (recommended for 16+ players)
- 4 GB of free disk space (more for world saves)
- Ports 8211/UDP and 27015/UDP open on your firewall
Docker Compose Configuration
Create a project directory:
mkdir -p /opt/palworld && cd /opt/palworld
Create a docker-compose.yml file:
services:
palworld:
image: thijsvanloef/palworld-server-docker:v2.3.1
restart: unless-stopped
ports:
- "8211:8211/udp" # Game server
- "27015:27015/udp" # Steam query port
# - "25575:25575/tcp" # RCON (uncomment if RCON_ENABLED=true)
environment:
PUID: 1000 # User ID for file permissions
PGID: 1000 # Group ID for file permissions
PORT: 8211 # Game port
PLAYERS: 16 # Max players (1-32)
SERVER_NAME: "My Palworld Server" # Server name shown in browser
SERVER_PASSWORD: "" # Leave empty for no password
ADMIN_PASSWORD: "CHANGE_THIS" # Admin password — CHANGE THIS
COMMUNITY: false # Show in community server list
MULTITHREADING: true # Enable multi-threading (recommended)
UPDATE_ON_BOOT: true # Auto-update server on container start
BACKUP_ENABLED: true # Enable automated backups
BACKUP_CRON_EXPRESSION: "0 */6 * * *" # Backup every 6 hours
TZ: "America/New_York" # Server timezone
# RCON_ENABLED: false # Uncomment to enable RCON
# RCON_PORT: 25575 # RCON port
# REST_API_ENABLED: true # REST API for server management
volumes:
- palworld-data:/palworld # Server data, saves, configs
volumes:
palworld-data:
Start the server:
docker compose up -d
The first start downloads the Palworld server files (~4 GB). Monitor progress:
docker compose logs -f palworld
Wait for Setting breakpad minidump AppID = 2394010 and the port binding messages indicating the server is ready.
Initial Setup
- Launch Palworld on your gaming PC
- Select “Join Multiplayer Game”
- Enter your server IP and port:
your-server-ip:8211 - Enter the server password if you set one
- You’re in — the world generates on first player connection
Making Yourself Admin
- Connect to the server as a player
- Open the chat and type:
/AdminPassword CHANGE_THIS(using your ADMIN_PASSWORD) - You now have admin commands — kick, ban, broadcast, and world management
Configuration
Key Server Settings
| Variable | Default | Description |
|---|---|---|
PLAYERS | 16 | Maximum concurrent players (1-32) |
SERVER_PASSWORD | (empty) | Password to join — leave empty for open server |
COMMUNITY | false | List in community server browser |
MULTITHREADING | false | Multi-core processing (set to true for better performance) |
UPDATE_ON_BOOT | true | Download server updates on container restart |
BACKUP_ENABLED | true | Automated world backups |
BACKUP_CRON_EXPRESSION | 0 0 * * * | Backup schedule (default: daily midnight) |
AUTO_PAUSE_ENABLED | false | Pause server when no players online (saves resources) |
AUTO_PAUSE_TIMEOUT_EST | 180 | Seconds of inactivity before pause |
Game World Settings
Advanced world configuration is done through PalWorldSettings.ini inside the server data volume. After the first start:
# Find and edit the settings file
docker compose exec palworld cat /palworld/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini
Key settings you can adjust:
| Setting | Default | What It Does |
|---|---|---|
ExpRate | 1.0 | Experience gain multiplier |
PalCaptureRate | 1.0 | Pal catch rate multiplier |
DayTimeSpeedRate | 1.0 | Day cycle speed |
NightTimeSpeedRate | 1.0 | Night cycle speed |
DeathPenalty | 1 | Drop items on death (0=none, 1=items, 2=items+pals) |
bEnablePlayerToPlayerDamage | false | PvP toggle |
Automated Backups
With BACKUP_ENABLED=true, the container automatically saves world data on the configured schedule. Backups are stored in /palworld/backups/ inside the volume.
To create a manual backup:
docker compose exec palworld backup
To restore from a backup:
docker compose exec palworld restore
Reverse Proxy
Palworld uses UDP for game traffic, so standard HTTP reverse proxies (Nginx, Caddy) don’t apply. Players connect directly to your server’s IP and game port.
Firewall rules (UFW):
sudo ufw allow 8211/udp # Game port
sudo ufw allow 27015/udp # Steam query port
If you’re behind a router, forward these ports to your server’s local IP.
Backup
What to Back Up
| Data | Location | Importance |
|---|---|---|
| World saves | palworld-data volume (/palworld/Pal/Saved/) | Critical |
| Server config | palworld-data volume (/palworld/Pal/Saved/Config/) | Important |
| Automated backups | palworld-data volume (/palworld/backups/) | Important |
Volume Backup
docker compose stop palworld
tar czf palworld-backup-$(date +%Y%m%d).tar.gz -C /var/lib/docker/volumes/ palworld-data
docker compose start palworld
See Backup Strategy for automated approaches.
Troubleshooting
Server Not Appearing in Community List
Symptom: COMMUNITY=true but server doesn’t show in the community browser.
Fix:
- Verify port 27015/UDP is open and forwarded
- Check the Steam query port is accessible:
nmap -sU -p 27015 your-server-ip - Restart the container — community registration can take a few minutes
- Verify
SERVER_NAMEis set (unnamed servers may not appear)
Players Can’t Connect
Symptom: “Unable to connect” or timeout when joining.
Fix:
- Verify port 8211/UDP is open:
sudo ufw status - If behind NAT, ensure port forwarding is configured on your router
- Test from an external network (not the same LAN)
- Check server logs for errors:
docker compose logs palworld
Server Crashes with Out of Memory
Symptom: Container killed with OOM (Out of Memory) error.
Fix:
- Palworld servers use 4-8 GB RAM for small groups, 12-16 GB for 16+ players
- Add more RAM to your server or reduce
PLAYERSlimit - Enable
AUTO_PAUSE_ENABLED=trueto free resources when no one’s playing - Monitor memory:
docker stats palworld
World Save Corrupted
Symptom: Server starts but world is empty or reverts to earlier state.
Fix:
- Stop the server:
docker compose stop palworld - List available backups:
ls -la /var/lib/docker/volumes/palworld-data/_data/backups/ - Restore the most recent clean backup:
docker compose exec palworld restore - Start the server:
docker compose start palworld
Resource Requirements
| Players | RAM (Minimum) | RAM (Recommended) | CPU | Disk |
|---|---|---|---|---|
| 1-4 | 4 GB | 8 GB | 2 cores | 4 GB |
| 5-8 | 8 GB | 12 GB | 4 cores | 8 GB |
| 9-16 | 12 GB | 16 GB | 4 cores | 10 GB |
| 17-32 | 16 GB | 24 GB | 6+ cores | 15 GB |
Palworld servers are memory-hungry. Budget more RAM than you think you’ll need — the game loads entire world chunks into memory.
Verdict
The thijsvanloef/palworld-server-docker image is excellent — actively maintained, well-documented, and includes features like auto-updates, automated backups, and RCON support that you’d have to build yourself with a bare-metal install. Self-hosting costs a fraction of paid Palworld server hosting (G-Portal, Nitrado charge $10-25/month for similar specs).
Run your own server if you want full control over world settings, player limits, and data. Use a paid host if you don’t want to manage Docker and your player group needs guaranteed uptime with SLA support.
Frequently Asked Questions
How much RAM does a Palworld server need?
A Palworld server requires 8 GB minimum for 4-8 players. For 9-16 players, allocate 12-16 GB. The game loads entire world chunks into memory, so RAM usage grows with explored area and active structures. The server is significantly more memory-hungry than Minecraft or Valheim — budget more than you think you’ll need.
Can I run a Palworld server on a Raspberry Pi?
No. Palworld servers require x86_64 architecture and at least 8 GB of RAM. A Raspberry Pi 5 has ARM architecture and at most 8 GB RAM — neither sufficient. Use a VPS with 8+ GB RAM or a home server with a modern x86 CPU. Cloud providers like Hetzner or OVH offer suitable servers from $10-20/month.
Does the server auto-update when Palworld patches?
Yes, if you enable AUTO_UPDATE in the Docker Compose environment variables. The thijsvanloef/palworld-server-docker image checks for game updates on container start and can be configured to check periodically. Players will need to update their game client to match the server version — mismatched versions cannot connect.
How do I back up my Palworld world?
The Docker image includes automated backup support. Configure BACKUP_ENABLED=true and set BACKUP_CRON_EXPRESSION for scheduling. Backups are stored in the backup volume. You can also manually copy the save data from the game data volume. Always back up before major updates — Palworld updates occasionally change save formats.
Can I transfer my single-player world to the dedicated server?
Yes. Copy your single-player save files from your local game directory to the server’s save data volume. The save file structure must match — place files in the correct directory path within the container’s data volume. Back up both locations before attempting the transfer. Some world settings may need adjustment in the server configuration.
How do I connect to the RCON console?
Enable RCON in your environment variables with RCON_ENABLED=true and set an ADMIN_PASSWORD. Connect using any RCON client (like rcon-cli or a web-based tool) to port 25575 (default). RCON lets you manage the server remotely — kick/ban players, change settings, save the world, and shut down gracefully.
Related
Get self-hosting tips in your inbox
Get the Docker Compose configs, hardware picks, and setup shortcuts we don't put in articles. Weekly. No spam.
Comments