Deploy a Palworld dedicated server using Docker for easy management, updates, and portability. This guide uses Docker Compose for simple configuration.
Create a directory for your Palworld server files:
mkdir -p ~/palworld-server
cd ~/palworld-serverCreate a docker-compose.yml file:
version: "3.8"
services:
palworld:
image: thijsvanloef/palworld-server-docker:latest
container_name: palworld-server
restart: unless-stopped
ports:
- "8211:8211/udp"
- "27015:27015/udp"
environment:
- PUID=1000
- PGID=1000
- PORT=8211
- PLAYERS=16
- SERVER_NAME=My Palworld Server
- SERVER_PASSWORD=
- ADMIN_PASSWORD=changeme
- MULTITHREADING=true
- COMMUNITY=false
volumes:
- ./palworld:/palworldNote: The thijsvanloef/palworld-server-docker is a popular community-maintained image. Check Docker Hub for alternatives.
For full control over game settings, you can mount a custom PalWorldSettings.ini file. Use our Config Builder to generate this file.
Place your custom config at ./palworld/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini after the first server start.
Start your Palworld server with Docker Compose:
# Start the server (first run will download the image and game files)
docker compose up -d
# View logs
docker compose logs -f
# Stop the server
docker compose down
# Restart the server
docker compose restartFirst Start: The initial startup will take several minutes as Docker downloads the game files (~8GB). Monitor progress with docker compose logs -f
Ensure your firewall allows the required ports:
sudo ufw allow 8211/udp
sudo ufw allow 27015/udpsudo firewall-cmd --permanent --add-port=8211/udp
sudo firewall-cmd --permanent --add-port=27015/udp
sudo firewall-cmd --reloadIf hosting at home, also configure port forwarding on your router for these ports.
To update your server when a new game version is released:
# Pull the latest image
docker compose pull
# Restart with the new image
docker compose up -d# Check container status
docker compose ps
# View real-time logs
docker compose logs -f palworld
# Execute command in container
docker compose exec palworld bash
# Check resource usage
docker stats palworld-server
# Backup save data
cp -r ./palworld ./backup-$(date +%Y%m%d)Check logs with docker compose logs. Common causes: insufficient memory, port conflicts, or permission issues on mounted volumes.
Verify ports 8211 and 27015 UDP are open in your firewall and forwarded on your router. Check that the container is running with docker compose ps.
The container runs as a specific user. Ensure mounted directories have proper permissions:sudo chown -R 1000:1000 ./palworld