Palworld Server Deployment Overview¶
Prerequisites¶
The following parameters and conditions are required for the system to function correctly:
-
Operating System: Ubuntu.
-
Access Rights: A user with
sudoprivileges to install Docker and manage containers. -
Domain Name: A domain in the
hostkey.inzone is required. -
Ports: The system uses the following ports (depending on configuration):
-
443/TCP: HTTPS access to the control panel. -
12444/TCP: Access to the daemon via WebSocket (WSS). -
8211/UDP: Palworld game port. -
25575/TCP: RCON port.
-
FQDN of the final panel on hostkey.in domain¶
| Parameter | Value |
|---|---|
| Prefix | palworld |
| Domain | hostkey.in |
| Full Template | palworld{Server_ID_from_Invapi}.hostkey.in |
Files and Directories Structure¶
Core data and configurations are distributed across the following paths:
-
/opt/proxy: Base directory for the Nginx reverse proxy.-
/opt/proxy/nginx/conf.d: Nginx configuration files. -
/opt/proxy/letsencrypt: SSL certificates (Let's Encrypt). -
/opt/proxy/www: Files for ACME verification.
-
-
/opt/mcsmanager/daemon/data: MCSManager daemon data. -
/opt/mcsmanager/web/data: MCSManager web panel data. -
/opt/mcsm/daemon/logs: Daemon logs.
Application Installation Process¶
Deployment includes automatic installation of Docker, configuration of MCSManager containers (Web and Daemon), acquisition of SSL certificates via Certbot, and creation of the Palworld game instance. After the control panel starts, local node registration (Daemon) in the web interface and the game server launch occur automatically.
Docker Containers and their Execution¶
The system uses several containers to ensure the operation of the control panel, proxying, and gameplay.
Proxy Server and Certificates¶
| Container Name | Image | Ports | Volumes | Restart Policy |
|---|---|---|---|---|
palworld-proxy | nginx:alpine | network_mode: host | /opt/proxy/nginx/conf.d:/etc/nginx/conf.d:ro, /opt/proxy/letsencrypt:/etc/letsencrypt, /opt/proxy/www:/var/www/certbot | unless-stopped |
palworld-certbot | certbot/certbot | — | /opt/proxy/letsencrypt:/etc/letsencrypt, /opt/proxy/www:/var/www/certbot | — |
Management (MCSManager)¶
| Container Name | Image | Ports | Volumes | Restart Policy |
|---|---|---|---|---|
mcsm-daemon | tophc7/mcsm:daemon | 24444:24444 | /opt/mcsmanager/daemon/data:/opt/mcsmanager/daemon/data, /var/run/docker.sock:/var/run/docker.sock | unless-stopped |
mcsm-web | tophc7/mcsm:web | 23333:23333 | /opt/mcsmanager/web/data:/opt/mcsmanager/web/data | unless-stopped |
Game Server¶
| Container Name | Image | Ports | Environment Variables (env) | Restart Policy |
|---|---|---|---|---|
palworld-server | kagurazakanya/palworld:latest | 8211/udp, 25575/tcp | PORT=8211, PLAYERS=16, SERVER_NAME=Palworld-{Server_ID}, ADMIN_PASSWORD={password} | unless-stopped |
Databases¶
In this configuration, the database is not deployed in a separate container; instead, it uses built-in MCSManager functionality to store metadata and settings. Data is stored in directories /opt/mcsmanager/daemon/data and /opt/mcsmanager/web/data.
Application Update¶
Updates are performed via pull (updating images) and restarting containers:
docker compose -f /opt/proxy/docker-compose.yml pull && docker compose -f /opt/proxy/docker-compose.yml up -d
Permissions Settings¶
The following permissions are set for the data directories to ensure correct operation:
- MCSManager data directories are created with owner and group
1000:1000and access permissions0755.
Available Connection Ports¶
| Port | Protocol | Description |
|---|---|---|
443 | TCP | HTTPS access to the web control panel |
12444 | TCP | WebSocket (WSS) for communication between the panel and the daemon |
8211 | UDP | Palworld game traffic |
25575 | TCP | RCON port for remote game management |
Starting and Stopping the Application¶
Container management is performed via Docker:
-
Start all proxy services:
-
Restart Nginx proxy: