Sign inSign up

silentmecha/palworld-server

By silentmecha

•Updated 10 days ago

Palworld dedicated server on Linux inside of Docker

Image
0

525

silentmecha/palworld-server repository overview

Docker Pulls Image Size Buy Me a Coffee

⁠silentmecha/palworld-server

This repository contains the files needed to build and run a Docker image for a Palworld dedicated server. This image is built on the silentmecha/steamcmd base image and uses the official Palworld dedicated server available through SteamCMD.

Warning: The latest version on Docker Hub may be out of date. Please check the GitHub repository for the most recent updates. This is still being investigated to get workflows to make it work.

⁠Usage

This stack uses an image from atmoz⁠. To see more on the image used visit their GitHub https://github.com/atmoz/sftp⁠.

For more info on environment variables and what they do see Environment Variables⁠.

⁠Available Tags
  • base: Contains only the environment setup, excluding the game files.
  • latest: Includes the game files needed for the server.
⁠Simplest Method

The simplest usage for this is using the docker-compose method to pull the latest image and run it.

git clone https://github.com/silentmecha/palworld-server.git palworld-server
cd palworld-server
cp .env.example .env
nano .env
docker-compose pull
docker-compose up -d
⁠Building Locally

If you prefer to build everything locally, you can start by building the base image and then the latest image.

git clone https://github.com/silentmecha/palworld-server.git palworld-server
cd palworld-server
cp .env.example .env
nano .env
docker build -f base.Dockerfile -t silentmecha/palworld-server:base -t silentmecha/palworld-server:latest .
docker build -f Dockerfile -t silentmecha/palworld-server:latest .
docker-compose up -d
⁠Updating

Updating is now as simple as running a build on the Dockerfile or using docker-compose build. This will update the image without downloading all the game files again.

docker-compose build
docker-compose up -d

Your save data is stored separately from the game server files, so updating the image will not remove your saved data.

⁠Environment Variables
Variable NameDefault ValueDescription
SERVER_NAMEPalworld DockerName of your server as seen in the server browser (accepts spaces)
SERVER_DESCRIPTIONDescription of your server
SERVER_PASSWORDPassword to enter your server
ADMIN_PASSWORDChangeMeAdmin access password
MAX_PLAYERS32Maximum number of players
PORT8211Port used to connect to the server
RESTAPI_ENABLEDTrueEnable REST API access
RESTAPI_PORT8212Port for REST API connections
RCON_ENABLEDFalseEnable RCON access
RCON_PORT25575Port for RCON connections
PUBLIC_LOBBYTrueEnable the server to appear in the community server list
PALBOX_EXPORTTrueAllow players to export Pals to the Global Palbox
PALBOX_IMPORTTrueAllow players to import Pals from the Global Palbox
SHOW_PLAYER_LISTTrueShow the player list on the server
ADDITIONAL_ARGSAdditional arguments passed to the server
SFT_USERfooUsername for SFTP access to edit save data
SFT_PASSpassPassword for SFTP access
SFT_PORT2522Port for SFTP access (should not be 22)

For more info on the usage of SFTP see here⁠. If you do not want to use a plain text password see encrypted-password⁠.

⁠Server Description

SERVER_DESCRIPTION supports multiline descriptions.

Use literal \n characters where you want a line break.

The value must be enclosed in single quotes in .env.

For example:

SERVER_DESCRIPTION='This is a Palworld server.\n\nThis is the second paragraph.\nThis is another line.'

Do not use double quotes for multiline descriptions:

SERVER_DESCRIPTION="This is a Palworld server.\n\nThis is the second paragraph."

Single quotes ensure Docker Compose preserves the literal \n characters. Palworld then interprets them as line breaks when displaying the server description.

⁠Ports

Currently the following ports are used.

PortTypeDefault
PORTUDP8211
RESTAPI_PORTTCP8212
RCON_PORTTCP25575
SFT_PORTTCP2522

The RESTAPI_PORT and RCON_PORT mappings are commented out in docker-compose.yml by default. This prevents the REST API and RCON from being exposed outside of the Docker container.

If you wish to access either the REST API or RCON externally, uncomment the corresponding port mapping in docker-compose.yml.

The PORT and SFT_PORT mappings are enabled by default. PORT needs to be forwarded through your router for players to connect to the server. SFT_PORT only needs to be forwarded through your router if you wish to remotely edit the save data.

⁠Additional Arguments

ADDITIONAL_ARGS can be used to pass additional Palworld startup arguments to PalServer.sh.

For example:

ADDITIONAL_ARGS="-enable-gamedata-api"

Multiple arguments can also be specified:

ADDITIONAL_ARGS="-enable-gamedata-api -logformat=text"

This allows additional Palworld functionality to be enabled without requiring a dedicated environment variable for every available startup argument.

⁠Notes

⁠REST API

The REST API is enabled by default and is used internally by the image for graceful server shutdown.

The REST API is not exposed outside of the Docker container by default. If you wish to access the REST API externally, uncomment the RESTAPI_PORT mapping in docker-compose.yml.

⁠RCON

RCON support is included for compatibility with existing tools and configurations.

NB: Palworld RCON is deprecated by Pocketpair and is scheduled to stop functioning in an upcoming update. The REST API is recommended for new deployments.

The RCON port is not exposed outside of the Docker container by default. If you need external RCON access, uncomment the RCON_PORT mapping in docker-compose.yml.

⁠License

This project is licensed under the MIT License⁠.

If you enjoy this project and would like to support my work, consider buying me a coffee⁠. Your support is greatly appreciated!

Tag summary

Content type

Image

Digest

sha256:37046b19b…

Size

4.5 GB

Last updated

10 days ago

docker pull silentmecha/palworld-server