
 https://github.com/thijsvanloef/palworld-server-docker/actions/workflows/linting.yml/badge.svg](https://github.com/thijsvanloef/palworld-server-docker/actions/workflows/linting.yml) https://github.com/thijsvanloef/palworld-server-docker/actions/workflows/security.yml/badge.svg](https://github.com/thijsvanloef/palworld-server-docker/actions/workflows/security.yml)
 and Windows 10.
[!IMPORTANT]
Looking to host a server for Xbox players? Follow this guide here!
| Company | About |
|---|---|
indifferent broccoli (:|) | Thank you to our sponsor indifferent broccoli. If you decide to rent a Palworld server, rather than host yourself, try indifferent broccoli's Palword server hosting 2-day free trial |
https://github.com/AshishT*** https://github.com/stoprx
https://github.com/thijsvanloef/palworld-server-docker/assets/58031337/b92d76d1-5efb-438d-9ffd-5385544a831b]([***]
| Resource | Minimum | Recommended |
|---|---|---|
| CPU | 4 cores | 4+ cores |
| RAM | 16GB | Recommend over 32GB for stable operation |
| Storage | 4GB | 12GB |
Keep in mind that you'll need to change the environment variables.
This repository includes an example docker-compose.yml file you can use to set up your server.
ymlservices: palworld: image: thijsvanloef/palworld-server-docker:latest restart: unless-stopped container_name: palworld-server stop_grace_period: 30s # Set to however long you are willing to wait for the container to gracefully stop ports: - 8211:8211/udp - 27015:27015/udp environment: PUID: 1000 PGID: 1000 PORT: 8211 # Optional but recommended PLAYERS: 16 # Optional but recommended SERVER_PASSWORD: "worldofpals" # Optional but recommended MULTITHREADING: true RCON_ENABLED: true RCON_PORT: 25575 TZ: "UTC" ADMIN_PASSWORD: "adminPasswordHere" COMMUNITY: false # Enable this if you want your server to show up in the community servers tab, USE WITH SERVER_PASSWORD! SERVER_NAME: "palworld-server-docker by Thijs van Loef" SERVER_DESCRIPTION: "palworld-server-docker by Thijs van Loef" volumes: - ./palworld:/palworld/
As an alternative, you can copy the .env.example file to a new file called .env file. Modify it to your needs, check out the environment variables section to check the correct values. Modify your docker-compose.yml to this:
ymlservices: palworld: image: thijsvanloef/palworld-server-docker:latest restart: unless-stopped container_name: palworld-server stop_grace_period: 30s # Set to however long you are willing to wait for the container to gracefully stop ports: - 8211:8211/udp - 27015:27015/udp env_file: - .env volumes: - ./palworld:/palworld/
Change every <> to your own configuration
bashdocker run -d \ --name palworld-server \ -p 8211:8211/udp \ -p 27015:27015/udp \ -v ./palworld:/palworld/ \ -e PUID=1000 \ -e PGID=1000 \ -e PORT=8211 \ -e PLAYERS=16 \ -e MULTITHREADING=true \ -e RCON_ENABLED=true \ -e RCON_PORT=25575 \ -e TZ=UTC \ -e ADMIN_PASSWORD="adminPasswordHere" \ -e SERVER_PASSWORD="worldofpals" \ -e COMMUNITY=false \ -e SERVER_NAME="palworld-server-docker by Thijs van Loef" \ -e SERVER_DESCRIPTION="palworld-server-docker by Thijs van Loef" \ --restart unless-stopped \ --stop-timeout 30 \ thijsvanloef/palworld-server-docker:latest
As an alternative, you can copy the .env.example file to a new file called .env file. Modify it to your needs, check out the environment variables section to check the correct values. Change your docker run command to this:
bashdocker run -d \ --name palworld-server \ -p 8211:8211/udp \ -p 27015:27015/udp \ -v ./palworld:/palworld/ \ --env-file .env \ --restart unless-stopped \ --stop-timeout 30 \ thijsvanloef/palworld-server-docker:latest
All files you will need to deploy this container to kubernetes are located in the k8s folder.
Follow the steps in the README.md here to deploy it.
This is only for advanced users
It is possible to run this container and override the default user which is root in this image.
Because you are specifiying the user and group PUID and PGID are ignored.
If you want to find your UID: id -u
If you want to find your GID: id -g
You must set user to NUMBERICAL_UID:NUMBERICAL_GID
Below we assume your UID is 1000 and your GID is 1001
--user 1000:1001 \ above the last line.user: 1000:1001 above ports.If you wish to run it with a different UID/GID than your own you will need to change the ownership of the directory that
is being bind: chown UID:GID palworld/
or by changing the permissions for all other: chmod o=rwx palworld/
Using helm chart
The official helm chart can be found in a seperate repository, https://github.com/Twinki14/palworld-server-chart
You can use the following values to change the settings of the server on boot. It is highly recommended you set the following environment values before starting the server:
| Variable | Info | Default Values | Allowed Values |
|---|---|---|---|
| TZ | Timezone used for time stamping backup server | UTC | See TZ Identifiers |
| PLAYERS* | Max amount of players that are able to join the server | 16 | 1-32 |
| PORT* | UDP port that the server will expose | 8211 | 1024-65535 |
| PUID* | The uid of the user the server should run as | 1000 | !0 |
| PGID* | The gid of the group the server should run as | 1000 | !0 |
| MULTITHREADING** | Improves performance in multi-threaded CPU environments. It is effective up to a maximum of about 4 threads, and allocating more than this number of threads does not make much sense. | false | true/false |
| COMMUNITY | Whether or not the server shows up in the community server browser (USE WITH SERVER_PASSWORD) | false | true/false |
| PUBLIC_IP | You can manually specify the global IP address of the network on which the server running. If not specified, it will be detected automatically. If it does not work well, try manual configuration. | x.x.x.x | |
| PUBLIC_PORT | You can manually specify the port number of the network on which the server running. If not specified, it will be detected automatically. If it does not work well, try manual configuration. | 1024-65535 | |
| SERVER_NAME | A name for your server | "string" | |
| SERVER_PASSWORD | Secure your community server with a password | "string" | |
| ADMIN_PASSWORD | Secure administration access in the server with a password | "string" | |
| UPDATE_ON_BOOT** | Update/Install the server when the docker container starts (THIS HAS TO BE ENABLED THE FIRST TIME YOU RUN THE CONTAINER) | true | true/false |
| RCON_ENABLED*** | Enable RCON for the Palworld server | true | true/false |
| RCON_PORT | RCON port to connect to | 25575 | 1024-65535 |
| QUERY_PORT | Query port used to communicate with Steam servers | 27015 | 1024-65535 |
*highly recommended to set
** Make sure you know what you are doing when running this option enabled
*** Required for docker stop to save and gracefully close the server
[!IMPORTANT] Boolean values used in environment variables are case sensitive because they are used in the shell script.
They must be set using exactly
trueorfalsefor the option to take effect.
| Port | Info |
|---|---|
| 8211 | Game Port (UDP) |
| 27015 | Query Port (UDP) |
| 25575 | RCON Port (TCP) |
RCON is enabled by default for the palworld-server-docker image. Opening the RCON CLI is quite easy:
bashdocker exec -it palworld-server rcon-cli
This will open a CLI that uses RCON to write commands to the Palworld Server.
| Command | Info |
|---|---|
| Shutdown {Seconds} {MessageText} | The server is shut down after the number of Seconds |
| DoExit | Force stop the server. |
| Broadcast | Send message to all player in the server |
| KickPlayer {SteamID} | Kick player from the server.. |
| BanPlayer {SteamID} | BAN player from the server. |
| TeleportToPlayer {SteamID} | Teleport to current location of target player. |
| TeleportToMe {SteamID} | Target player teleport to your current location |
| ShowPlayers | Show information on all connected players. |
| Info | Show server information. |
| Save | Save the world data. |
For a full list of commands go to: [***]
To create a backup of the game's save at the current point in time, use the command:
bashdocker exec palworld-server backup
This will create a backup at /palworld/backups/
The server will run a save before the backup if rcon is enabled.
To restore from a backup, use the command:
bashdocker exec -it palworld-server restore
The RCON_ENABLED environment variable must be set to true to use this command.
[!IMPORTANT] If docker restart is not set to policy
alwaysorunless-stoppedthen the server will shutdown and will need to be manually restarted.The example docker run command and docker compose file in How to Use already uses the needed policy
Locate the backup you want to restore in /palworld/backups/ and decompress it.
Need to stop the server before task.
bashdocker compose down
Delete the old saved data folder located at palworld/Pal/Saved/SaveGames/0/<old_hash_value>.
Copy the contents of the newly decompressed saved data folder Saved/SaveGames/0/<new_hash_value> to palworld/Pal/Saved/SaveGames/0/<new_hash_value>.
Replace the DedicatedServerName inside palworld/Pal/Saved/Config/LinuxServer/GameUserSettings.ini with the new folder name.
iniDedicatedServerName=<new_hash_value> # Replace it with your folder name.
Restart the game. (If you are using Docker Compose)
bashdocker compose up -d
The server is automatically backed up everynight at midnight according to the timezone set with TZ
Set BACKUP_ENABLED enable or disable automatic backups (Default is enabled)
BACKUP_CRON_EXPRESSION is a cron expression, in a Cron-Expression you define an interval for when to run jobs.
[!TIP] This image uses Supercronic for crons see https://github.com/aptible/supercronic#crontab-format or Crontab Generator.
Set BACKUP_CRON_EXPRESSION to change the default schedule.
Example Usage: If BACKUP_CRON_EXPRESSION to 0 2 * * *, the backup script will run every day at 2:00 AM.
To be able to use automatic Updates with this Server the following environment variables have to be set to true:
[!IMPORTANT]
If docker restart is not set to policy
alwaysorunless-stoppedthen the server will shutdown and will need to be manually restarted.The example docker run command and docker compose file in How to Use already use the needed policy
Set AUTO_UPDATE_ENABLED enable or disable automatic updates (Default is disabled)
AUTO_UPDATE_CRON_EXPRESSION is a cron expression, in a Cron-Expression you define an interval for when to run jobs.
[!TIP] This image uses Supercronic for crons see https://github.com/aptible/supercronic#crontab-format or Crontab Generator.
Set AUTO_UPDATE_CRON_EXPRESSION to change the default schedule.
To be able to use automatic reboots with this server RCON_ENABLED enabled.
[!IMPORTANT]
If docker restart is not set to policy
alwaysorunless-stoppedthen the server will shutdown and will need to be manually restarted.The example docker run command and docker compose file in How to Use already use the needed policy
Set AUTO_REBOOT_ENABLED enable or disable automatic reboots (Default is disabled)
AUTO_REBOOT_CRON_EXPRESSION is a cron expression, in a Cron-Expression you define an interval for when to run jobs.
[!TIP] This image uses Supercronic for crons see https://github.com/aptible/supercronic#crontab-format or Crontab Generator.
Set AUTO_REBOOT_CRON_EXPRESSION to change the set the schedule, default is everynight at midnight according to the timezone set with TZ
[!IMPORTANT]
These Environment Variables/Settings are subject to change since the game is still in beta. Check out the official webpage for the supported parameters.
Converting server settings to environment variables follow the same principles (with some exceptions):
For example:
All variables: [***]
When the server starts, a PalWorldSettings.ini file will be created in the following location: <mount_folder>/Pal/Saved/Config/LinuxServer/PalWorldSettings.ini
Please keep in mind that the ENV variables will always overwrite the changes made to PalWorldSettings.ini.
[!IMPORTANT] Changes can only be made to
PalWorldSettings.iniwhile the server is off.Any changes made while the server is live will be overwritten when the server stops.
For a more detailed list of server settings go to: Palworld Wiki
For more detailed server settings explanations go to: shockbyte
Generate a webhook url for your *** server in your ***'s server settings.
Set the environment variable with the unique token at the end of the *** webhook url example: https://discord.com/api/webhooks/1234567890/abcde
send *** messages with docker run:
sh-e DISCORD_WEBHOOK_URL="https://discord.com/api/webhooks/1234567890/abcde" \ -e DISCORD_PRE_UPDATE_BOOT_MESSAGE="Server is updating..." \
send *** messages with docker compose:
yaml- DISCORD_WEBHOOK_URL=https://discord.com/api/webhooks/1234567890/abcde - DISCORD_PRE_UPDATE_BOOT_MESSAGE=Server is updating...
[!WARNING] Downgrading to a lower game version is possible, but it is unknown what impact it will have on existing saves.
Please do so at your own risk!
If TARGET_MANIFEST_ID environment variable is set, will lock server version to specific manifest. The manifest corresponds to the release date/update versions. Manifests can be found using SteamCMD or websites like SteamDB.
| Version | Manifest ID |
|---|---|
| 1.3.0 | 1354752814336157338 |
| 1.4.0 | 4190579964382773830 |
| 1.4.1 | 6370735655629434989 |
Issues/Feature requests can be submitted by using https://github.com/thijsvanloef/palworld-server-docker/issues/new/choose.
Known issues are listed in the documentation

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务