Merge pull request #3 from thijsvanloef/add-community-server

add community server options
This commit is contained in:
Thijs van Loef
2024-01-19 18:29:10 +01:00
committed by GitHub
4 changed files with 48 additions and 17 deletions

View File

@@ -1,13 +1,19 @@
FROM cm2network/steamcmd:root FROM cm2network/steamcmd:root
LABEL maintainer="thijs@loef.dev" LABEL maintainer="thijs@loef.dev"
RUN apt-get update && apt-get install -y \ RUN apt-get update && apt-get install -y --no-install-recommends \
xdg-user-dirs xdg-user-dirs=0.17-2 \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*
ENV PORT=8211 \ ENV PORT=8211 \
PLAYERS=16 \ PLAYERS=16 \
MULTITHREADING=FALSE MULTITHREADING=false \
COMMUNITY=false \
PUBLIC_IP= \
PUBLIC_PORT= \
SERVER_PASSWORD=
COPY ./scripts/* /home/steam/server/ COPY ./scripts/* /home/steam/server/
RUN chmod +x /home/steam/server/init.sh /home/steam/server/start.sh RUN chmod +x /home/steam/server/init.sh /home/steam/server/start.sh

View File

@@ -60,11 +60,15 @@ It is highly recommended you set the following environment values before startin
* PORT * PORT
* MULTITHREADING * MULTITHREADING
| Variable | Info | Default Values | Allowed Values | | Variable | Info | Default Values | Allowed Values |
|------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------|----------------| |------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------|----------------|
| PLAYERS* | Max amount of players that are able to join the server | 16 | 1-31 | | PLAYERS* | Max amount of players that are able to join the server | 16 | 1-31 |
| PORT* | UDP port that the server will expose | 8211 | 1024-65535 | | PORT* | UDP port that the server will expose | 8211 | 1024-65535 |
| 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 | | 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. | | x.x.x.x |
| SERVER_PASSWORD | Secure your community server with a password | | string |
*highly recommended to set *highly recommended to set

View File

@@ -1,6 +1,6 @@
services: services:
palworld: palworld:
image: thijsvanloef/palworld-server-docker image: thijsvanloef/palworld-server-docker:latest
restart: unless-stopped restart: unless-stopped
container_name: palworld-server container_name: palworld-server
ports: ports:
@@ -9,6 +9,7 @@ services:
environment: environment:
- PORT=8211 - PORT=8211
- PLAYERS=16 - PLAYERS=16
- MULTITHREADING=FALSE - MULTITHREADING=false
- COMMUNITY=false # Enable this if you want your server to show up in the community servers tab, USE WITH SERVER_PASSWORD!
volumes: volumes:
- /path/to/your/palworld/folder:/palworld/ - ./palworld:/palworld/

View File

@@ -1,13 +1,33 @@
#!/bin/sh #!/bin/sh
STARTCOMMAND="./PalServer.sh -port=${PORT} -players=${PLAYERS}" STARTCOMMAND="./PalServer.sh -port=${PORT} -players=${PLAYERS}"
printf "\e[0;32m*****STARTING SERVER*****\e[0m"
cd /palworld || exit
if [ "${COMMUNITY}" = true ]; then
STARTCOMMAND="${STARTCOMMAND} EpicApp=PalServer"
fi
if [ -n "${PUBLIC_IP}" ]; then
STARTCOMMAND="${STARTCOMMAND} -publicip=${PUBLIC_IP}"
fi
if [ -n "${PUBLIC_PORT}" ]; then
STARTCOMMAND="${STARTCOMMAND} -publiport=${PUBLIC_PORT}"
fi
if [ -n "${SERVER_PASSWORD}" ]; then
STARTCOMMAND="${STARTCOMMAND} -serverpassword=${SERVER_PASSWORD}"
fi
if [ "${MULTITHREADING}" = true ]; then if [ "${MULTITHREADING}" = true ]; then
su steam -c "${STARTCOMMAND} -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS" STARTCOMMAND="${STARTCOMMAND} -useperfthreads -NoAsyncLoadingThread -UseMultithreadForDS"
else
su steam -c "${STARTCOMMAND}"
fi fi
cd /palworld || exit
echo "${STARTCOMMAND}"
printf "\e[0;32m*****STARTING SERVER*****\e[0m"
su steam -c "${STARTCOMMAND}"