Deployment Overview of Palworld Server on Server¶
This document provides the technical deployment configuration for a Palworld Server environment managed via MCSManager. The setup includes a web management panel, a remote daemon for service orchestration, and an Nginx reverse proxy with SSL encryption.
Prerequisites and Basic Requirements¶
To ensure successful deployment, the following requirements must be met:
-
Operating System: Ubuntu
-
Privileges: Root or sudo access is required for package installation and Docker configuration.
-
Dependencies:
-
Docker Engine
-
Docker Compose Plugin
-
Python 3 (with
python3-dockerandpython3-pip) -
Network/Ports:
-
Port
80: HTTP traffic for SSL certificate validation. -
Port
443: HTTPS traffic for the Web Management Panel. -
Port
12444: HTTPS/WSS traffic for the Daemon connection. -
Port
8211/UDP: Palworld game server traffic. -
Port
25575/TCP: RCON (Remote Console) traffic.
FQDN of the final panel on the hostkey.in domain¶
The management interface is accessible via a dynamically generated subdomain based on the Server ID.
| Parameter | Value |
|---|---|
| Prefix | palworld |
| Domain | hostkey.in |
| Full template | palworld{Server_ID_from_Invapi}.hostkey.in |
File and Directory Structure¶
The following directories are utilized for data persistence, logs, and configuration:
-
/opt/proxy: Base directory for the Nginx reverse proxy and SSL certificates. -
/opt/proxy/nginx/conf.d: Nginx configuration files. -
/opt/proxy/letsencrypt: SSL certificates (managed via Certbot). -
/opt/proxy/www: Webroot for Let's Encrypt challenges. -
/opt/mcsmanager/web/data: Data directory for the MCSManager Web interface. -
/opt/mcsmanager/daemon/data: Data directory for the MCSManager Daemon.
Application installation process¶
The application is deployed using a combination of package management and Docker containers:
-
System Preparation: The system installs
docker-compose-plugin,python3-docker, andpython3-pipvia theaptpackage manager. -
Directory Initialization: Specific directories for MCSManager web and daemon data are created with ownership set to user
1000. -
Container Deployment:
-
The MCSManager Daemon is started as a Docker container.
-
The MCSManager Web interface is started as a Docker container.
-
Reverse Proxy Setup: An Nginx instance is deployed via Docker Compose to handle SSL termination and routing for both the Web Panel (port 443) and the Daemon (port 12444).
-
Automated Configuration: The system performs an automated setup of the MCSManager admin account, registers the daemon with the panel using a generated API key, and initializes the Palworld game instance via the MCSManager API.
Access Rights and Security¶
-
Firewall: Only essential ports (80, 443, 12444, 8211/UDP, 25575/TCP) should be exposed to the public internet.
-
SSL/TLS: All management traffic is encrypted using Let's Encrypt certificates via Certbot.
-
User Permissions: Data directories are assigned to UID/GID
1000to ensure proper file ownership within containers.
Docker Containers and Their Deployment¶
The deployment consists of several active containers:
MCSManager Web¶
-
Image:
tophc7/mcssm:web(Versionv10.11.0) -
Ports:
23333:23333 -
Volumes:
/opt/mcsmanager/web/data:/opt/mcsmanager/web/data -
Restart Policy:
unless-stopped
MCSManager Daemon¶
-
Image:
tophc7/mcsm:daemon(Versionv10.11.0) -
Ports:
24444:24444 -
Volumes:
-
/opt/mcsmanager/daemon/data:/opt/mcsmanager/daemon/data -
/var/run/docker.sock:/var/run/docker.sock -
Restart Policy:
unless-stopped
Nginx Proxy¶
-
Image:
nginx:alpine -
Container Name:
palworld-proxy -
Network Mode:
host -
Volumes:
-
/opt/proxy/nginx/conf.d:/etc/nginx/conf.d:ro -
/opt/proxy/letsencrypt:/etc/letsencrypt -
/opt/proxy/www:/var/www/certbot -
Restart Policy:
unless-stopped
Certbot (Auxiliary)¶
-
Image:
certbot/certbot -
Container Name:
palworld-certbot -
Volumes:
-
/opt/proxy/letsencrypt:/etc/letsencrypt -
/opt/proxy/www:/var/www/certbot
Palworld Server Instance¶
-
Image:
kagurazakanyaa/palworld:latest(or custom image) -
Container Name:
palworld-{Server_ID} -
Ports:
-
8211/UDP -
25575/TCP -
Environment Variables:
-
PORT=8211 -
SERVER_NAME,SERVER_DESCRIPTION,ADMIN_PASSWORD,SERVER_PASSWORD -
Restart Policy:
unless-stopped
Custom Scripts and Additional Setup¶
The deployment includes an automated initialization sequence:
-
Admin Initialization: An API call is sent to the MCSManager web endpoint to set up the initial administrator credentials.
-
Daemon Registration: The system automatically extracts the daemon's unique key from its configuration file (
/opt/mcsmanager/daemon/data/Config/global.json) and registers it as a remote node in the management panel. -
Instance Provisioning: A Palworld game instance is automatically created via API, configured with specific memory limits (4096MB) and network settings, and then started immediately.
Application Update Instructions¶
To update the application components:
-
MCSManager Components: Pull the latest images for the web and daemon services using
docker compose pullwithin the relevant directories. -
Palworld Server: The instance is managed via the MCSManager panel; updates to the game files should be handled through the panel's console or file manager.
Location of configuration files and data¶
| Component | Path |
|---|---|
| Nginx Configs | /opt/proxy/nginx/conf.d |
| SSL Certificates | /opt/proxy/letsencrypt/live/ |
| MCSManager Web Data | /opt/mcsmanager/web/data |
| MCSManager Daemon Data | /opt/mcsmanager/daemon/data |
Available ports for connection¶
-
Web Management Panel:
443(HTTPS) -
Daemon Connection:
12444(WSS) -
Palworld Game Port:
8211(UDP) -
RCON Port:
25575(TCP)
Starting and Stopping the application¶
Management of the proxy layer is handled via Docker Compose:
-
Start Proxy: Navigate to
/opt/proxyand rundocker compose up -d. -
Stop Proxy: Navigate to
/opt/proxyand rundocker compose down.
The individual game instances and MCSManager services are managed directly through the MCSManager Web Panel interface.