palworld-server-docker
palworld-server-docker copied to clipboard
Rcon dosent works cli: execute: auth: rcon: dial tcp 127.0.0.1:25575: connect: connection refused
Describe the bug
when I starts server, is shows cli: execute: auth: rcon: dial tcp 127.0.0.1:25575: connect: connection refused and cannot connect a server.
To Reproduce
Steps to reproduce the behavior:
- make a server with ubuntu script
- install a server manager
- put some mod and restart
- See error
Expected behavior
it should connect, but refuses
Actual behavior
shows {cli: execute: auth: rcon: dial tcp 127.0.0.1:25575: connect: connection refused} and refuse to connect
Screenshots
OS information (IMPORTANT)
- OS: Canonical, Ubuntu, 22.04 LTS, amd64 jammy image built on 2025-03-05
- Palworld Version: v0.4.15.66880
- Docker Image Version: 1.2.3
Hardware information (IMPORTANT)
- CPU: GCP C2-standard-8 (Intel Cascade Lake)
- Memory:32GB
docker-compose.yml contents (IMPORTANT)
services: 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 # Required if you want your server to show up in the community servers tab # - 8212:8212/tcp # Port for REST API if REST_API_ENABLED: true environment: PUID: 1000 PGID: 1000 PORT: 8211 # Optional but recommended PLAYERS: 12 # Optional but recommended SERVER_PASSWORD: "xxxx" # Optional but recommended MULTITHREADING: true RCON_ENABLED: true RCON_PORT: 25575 TZ: "UTC" ADMIN_PASSWORD: "xxxxx" COMMUNITY: false # Enable this if you want your server to show up in the community servers tab, USE WITH SERVER_PASSWORD! SERVER_NAME: "palworld-hardmode" SERVER_DESCRIPTION: "in-hell-we-lament" ALLOW_CONNECT_PLATFORM: "Steam" # Defaults to "Steam" if not set, set this to "Xbox" if you want to host a server for Xbox players. CROSSPLAY BETWEEN XBOX-STEAM IS NOT YET SUPPORTED volumes: - ./palworld:/palworld/
# docker-compose.yml contents here
Container/Host Logs (IMPORTANT)
Logs
sorry, I don't konw how to see logs in GCP
Additional context
Is server colides with outdated mod .paks files?
Bug Report Checklist
- [v] I searched for my issue on the Known issues page
- [v] I searched for my issue in the Closed issues
- [v] I have included all relevant information required above.
- [v] I am willing to fix this bug
Could you share the contents of your script?
Could you share the contents of your script?
Auto_setup.sh(scrypt to making server)
#!/bin/bash
sudo mkdir /home/serverfile sudo chmod 777 -R /home/serverfile
for (( ; ; )); do echo "Check your [docker-compose.yml] file and press Enter to continue." read check=$(ls /home/serverfile | sed 's/.//g')
if [ $check == "docker-composeyml" ]
then
echo "File checked"
break
fi
echo "Can't detect docker-compose.yml Try again."
done
cd /home/serverfile
sudo apt-get update &&
sudo apt-get -y install docker.io
sudo ln -sf /usr/bin/docker.io /usr/local/bin/docker
sudo COMPOSE_VERSION=v2.24.1 bash -eu << 'EOT'
echo ${COMPOSE_VERSION}
curl -L https://github.com/docker/compose/releases/download/${COMPOSE_VERSION}/docker-compose-uname -s-uname -m > /usr/local/bin/docker-compose
chown root:docker /usr/local/bin/docker-compose
chmod ug+x /usr/local/bin/docker-compose
update-alternatives --install /usr/bin/docker-compose docker-compose /usr/local/bin/docker-compose 10
EOT
echo "Installing Serverfile... Please wait 2 minute"
sudo docker-compose up -d && sleep 120
echo "Complete! Now you can join your server" sudo chmod 777 -R /home/serverfile
server_manager(auto restart and manager)
#!/bin/bash
Function to display the current time in KST
echo_ct_kst() { echo "TIME: $(TZ='Asia/Seoul' date +'%y-%m-%d-%H-%M-%S')" }
Function to stop the palworld-server Docker container
stop_palworld() { echo "Stopping palworld-server..." echo_ct_kst sleep 10 sudo docker exec -i palworld-server rcon-cli "broadcast This_server_shuts_down_after_60_seconds." sleep 30 sudo docker exec -i palworld-server rcon-cli save sudo docker exec -i palworld-server rcon-cli shutdown echo "palworld-server will shut down in 30 seconds." sleep 31 sudo docker stop palworld-server echo "palworld-server stopped!!" echo_ct_kst }
Function to start the palworld-server Docker container
start_palworld() { echo "Starting palworld-server..." echo_ct_kst sudo docker start palworld-server echo "palworld-server started!!" echo_ct_kst sleep 60 sudo docker exec -i palworld-server rcon-cli "broadcast Hello,_Pal_Master.The_server_uptime_is_1_minute." sleep 60 sudo docker exec -i palworld-server rcon-cli "broadcast Hi,_Pal_Master.The_server_uptime_is_2_minute." sleep 60 sudo docker exec -i palworld-server rcon-cli "broadcast Welcome,_Pal_Master.The_server_uptime_is_3_minute." sudo docker exec -i palworld-server rcon-cli save }
Function to restart the palworld-server Docker container
restart_palworld() { echo "Stopping palworld-server..." echo_ct_kst sleep 10 sudo docker exec -i palworld-server rcon-cli "broadcast This_server_shuts_down_after_60_seconds." sleep 30 sudo docker exec -i palworld-server rcon-cli save sudo docker exec -i palworld-server rcon-cli shutdown echo "palworld-server will shut down in 30 seconds." sleep 31 sudo docker stop palworld-server echo "palworld-server stopped!!" echo_ct_kst sleep 20 echo_ct_kst echo "Backup and Compressing palworld-server files..." TIMESTAMP=$(TZ='Asia/Seoul' date +'%y-%m-%d-%H-%M-%S') BACKUP_PATH="/home/serverfile/backups/${TIMESTAMP}-palworld-backup.tar.gz" tar -czf "${BACKUP_PATH}" -C /home/serverfile/palworld/Pal/Saved/ . echo "Backup and Compression completed!!" sleep 1 sudo docker exec -i palworld-server rcon-cli "broadcast A_backup_of_the_server_at_the_current_time_has_been_created." echo_ct_kst sleep 5 echo "Starting palworld-server..." echo_ct_kst sudo docker start palworld-server echo "palworld-server started!!" echo_ct_kst sleep 60 sudo docker exec -i palworld-server rcon-cli "broadcast Hello,_Pal_Master.The_server_uptime_is_1_minute." sleep 60 sudo docker exec -i palworld-server rcon-cli "broadcast Hi,_Pal_Master.The_server_uptime_is_2_minute." sleep 60 sudo docker exec -i palworld-server rcon-cli "broadcast Welcome,_Pal_Master.The_server_uptime_is_3_minute." sudo docker exec -i palworld-server rcon-cli save }
Function to backup and compress the /home/serverfile/palworld/Pal/Saved/ directory
backup_palworld() { echo_ct_kst echo "Backup and Compressing palworld-server files..." TIMESTAMP=$(TZ='Asia/Seoul' date +'%y-%m-%d-%H-%M-%S') BACKUP_PATH="/home/serverfile/backups/${TIMESTAMP}-palworld-backup.tar.gz" tar -czf "${BACKUP_PATH}" -C /home/serverfile/palworld/Pal/Saved/ . echo "Backup and Compression completed!!" sleep 1 sudo docker exec -i palworld-server rcon-cli "broadcast A_backup_of_the_server_at_the_current_time_has_been_created." echo_ct_kst }
Function to check memory usage and perform actions if it exceeds 80%
check_palworld() { echo "Checking memory usage..." echo_ct_kst # Get total and used memory in megabytes read total used <<< $(free -m | awk '/Mem:/ {print $2 " " $3}') echo "Current memory usage: $(awk '/MemTotal/{total=$2}/MemAvailable/{available=$2} END {printf "%.2f", (total-available)/total*100}' /proc/meminfo)%"
# Calculate used memory as percentage of total
used_pct=$((used * 100 / total))
if [ "$used_pct" -gt 80 ]; then
echo "Memory usage above 80%. Executing save and shutdown commands..."
sudo docker exec -i palworld-server rcon-cli "broadcast The_memory_usage_of_the_server_is_too_high."
sleep 1
sudo docker exec -i palworld-server rcon-cli "broadcast The_server_will_be_restarted_in_60_seconds."
sleep 1
sudo docker exec -i palworld-server rcon-cli "broadcast Stop_everything_you_are_doing_and_disconnect_from_the_server."
sleep 1
sudo docker exec -i palworld-server rcon-cli save
sleep 3
sudo docker exec -i palworld-server rcon-cli "broadcast See_you_later!"
sudo docker exec -i palworld-server rcon-cli shutdown 120
echo "Shutdown initiated. Server will restart after a designated delay."
sleep 61 # Wait for 60 seconds after save before initiating shutdown
echo "Restarting palworld-server..."
sleep 30 # Delay before restarting the server, adjust this value as needed
sudo docker start palworld-server
echo "palworld-server restarted."
else
echo "Memory usage below 80%."
echo "Current memory usage: $(awk '/MemTotal/{total=$2}/MemAvailable/{available=$2} END {printf "%.2f", (total-available)/total*100}' /proc/meminfo)%"
sleep 5
sudo docker exec -i palworld-server rcon-cli "broadcast The_server_checker_is_complete."
sleep 1
sudo docker exec -i palworld-server rcon-cli "broadcast The_server_is_stable_now."
echo_ct_kst
fi
echo_ct_kst
}
Main logic to call functions based on passed argument
case "$1" in stop) stop_palworld ;; start) start_palworld ;; restart) restart_palworld ;; backup) backup_palworld ;; check) check_palworld ;; *) echo "Usage: $0 {start|stop|backu|check}" exit 1 ;; esac
Perhaps you should wait until RCON is available.
example)
$ sudo ./rcon.sh showplayers
wait startup Server ...............................OK
wait startup RCON ...........OK
name,playeruid,steamid
<rcon.sh>
#!/bin/bash
### helper functions
get_status() {
docker inspect -f '{{.State.Status}}' "${1}" 2> /dev/null
}
get_health() {
docker inspect -f '{{.State.Health.Status}}' "${1}" 2> /dev/null
}
is_running() {
test "$(get_status ${1})" = "running"
}
is_healthy() {
test "$(get_health ${1})" = "healthy"
}
can_RCON() {
docker exec "${1}" nc -z localhost "${RCON_PORT:-25575}" 2> /dev/null
}
wait_start_Server() {
while ! is_healthy "${1}"; do
is_running "${1}" || return 1
echo -n "."
sleep 1
done
return 0
}
wait_start_RCON() {
while ! can_RCON "${1}"; do
is_running "${1}" || return 1
echo -n "."
sleep 1
done
return 0
}
abort() {
echo "NG"
exit 1
}
### Main
CONTAINER="palworld-server"
if ! is_running "${CONTAINER}"; then
echo "The container of ${CONTAINER} has not been started yet."
exit 1
fi
if ! is_healthy "${CONTAINER}"; then
echo -n "wait startup Server ..."
wait_start_Server "${CONTAINER}" || abort
echo "OK"
fi
if ! can_RCON "${CONTAINER}"; then
echo -n "wait startup RCON ..."
wait_start_RCON "${CONTAINER}" || abort
echo "OK"
fi
docker exec -it "${CONTAINER}" rcon-cli $@