🛠️ Prerequisites & Hardware Requirements
To run a multi-game server hosting Minecraft, Palworld, and Rust all at once, your hardware needs serious backbone:
- OS: A fresh installation of Ubuntu 24.04 LTS or Debian 12.
- CPU: 4 to 8 Cores (High single-core clock speed is king for game servers).
- RAM: Minimum 16GB (32GB+ highly recommended. Palworld and Rust are notorious RAM hogs).
- Storage: 100GB+ NVMe SSD (Game maps and player data read/write constantly).
- A Domain Name: (e.g., yourdomain.com) managed through a free Cloudflare account.
- Pre-Flight DNS Setup: Before starting, go to your Cloudflare DNS dashboard and create an Unproxied (Grey Cloud) A-Record called node.yourdomain.com pointing to your server's Public IP. We will need this to generate an SSL certificate for your live server console later.
Step 1: Prepare the Server & Firewall
Log into your dedicated server via SSH as the root user. First, ensure your system packages are fully updated:
apt update && apt upgrade -y
Install the essential dependencies required for the installation scripts:
apt install sudo curl git ufw -y
Configure the System Firewall (UFW)
We need to open ports for the game traffic, Let's Encrypt SSL generation, and Pterodactyl's underlying systems. (Note: Docker automatically modifies iptables to expose game ports, but configuring UFW is good administrative practice to track your open ports).
# Allow standard SSH access (Change 22 if you use a custom SSH port)
ufw allow 22/tcp
# Allow HTTP/HTTPS for Let's Encrypt certificate generation & renewals
ufw allow 80/tcp
ufw allow 443/tcp
# Allow Pterodactyl Wings communication daemon & SFTP
ufw allow 8080/tcp
ufw allow 2022/tcp
# Minecraft Default Port
ufw allow 25565/tcp
# Palworld Default Ports
ufw allow 8211/udp
ufw allow 27015/udp
# Rust Default Ports
ufw allow 28015/udp
ufw allow 28016/tcp
ufw allow 28082/tcp
# Enable the firewall
ufw enable
Step 2: Automated Installation of Pterodactyl
While a manual installation requires setting up Nginx, PHP, Redis, and MySQL from scratch, the open-source community maintains a rock-solid script that completely automates this deployment.
Run the universal Pterodactyl installer script:
bash <(curl -s https://pterodactyl-installer.se)
Part A: Installing the Panel
- Type 0 to install both the Panel and Wings.
- Set up your database credentials (hitting Enter to accept defaults is safe).
- Select your local timezone.
- Input your administrative email address and desired username/password.
- For the Fully Qualified Domain Name (FQDN), enter panel.yourdomain.com.
- Select N for automatic firewall configuration (we did this manually).
- Select N when asked to configure Let's Encrypt HTTPS for the Panel (our Cloudflare Tunnel will handle this).
Part B: Installing Wings (Crucial for Live Console)
- Choose Y to configure Docker and install Wings.
- When asked if you want to configure Let's Encrypt for Wings, select Y.
- Enter the node.yourdomain.com subdomain you prepared earlier. This provides the daemon with an SSL certificate, preventing browsers from blocking the live game terminal via "Mixed Content" security rules.
- Let the script finish downloading its core packages.
Step 3: Secure the Web Panel with Cloudflare Tunnels
A Cloudflare Tunnel connects your server directly to Cloudflare’s edge network via an outbound daemon. While we keep standard web ports open for Let's Encrypt to authenticate your Node, the tunnel will handle the heavy lifting of proxying, encrypting, and routing traffic to your web panel safely.
1. Install the Cloudflare Daemon (cloudflared)
curl -L --output cloudflared.deb https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.deb
sudo dpkg -i cloudflared.deb
2. Authenticate the Tunnel
cloudflared tunnel login
Copy the URL printed in the console into your browser, log into Cloudflare, and authorize your domain.
3. Create Your Tunnel
cloudflared tunnel create ptero-panel
Copy the long Tunnel ID string generated in the output.
4. Route Traffic and Configure (System-Wide)
Create the configuration directory in /etc so the background service can locate it upon reboot:
mkdir -p /etc/cloudflared
nano /etc/cloudflared/config.yml
Paste the following structure (replacing placeholders with your real details):
tunnel: YOUR_TUNNEL_ID_STRING
credentials-file: /root/.cloudflared/YOUR_TUNNEL_ID_STRING.json
ingress:
- hostname: panel.yourdomain.com
service: http://localhost:80
- service: http_status:404
Map the tunnel natively inside your Cloudflare DNS dashboard using the command line:
cloudflared tunnel route dns ptero-panel panel.yourdomain.com
5. Run as a System Service
cloudflared service install
systemctl enable --now cloudflared
If you navigate to panel.yourdomain.com in a web browser, your panel will pull up, completely secured with an automated Cloudflare SSL certificate. Log in.
Step 4: Link Your Node to the Panel
Before you can build game servers, you need to link your physical hardware (the Node) to the Panel interface.
1. Create a Location
- Click the Admin Control Icon (gear symbol, top right).
- Click Locations → Create New.
- Short Code: Dedicated-1 → Click Create.
2. Create the Node
- Click Nodes → Create New.
- Name: Primary-Node
- FQDN: node.yourdomain.com (Do not use the raw IP here, or the console web-socket will fail).
- Communicate Over SSL: Explicitly select Use SSL Connection.
- Behind Proxy: Select Not Behind a Proxy.
- Memory / Disk Space: Input your server’s total capacity (e.g., 32768 for 32GB RAM).
- Click Create Node.
3. Start Wings
Click the Configuration tab inside the node settings. Copy the block of text displayed inside the black box. Back in your server's SSH terminal, open the config file:
mkdir -p /etc/pterodactyl
nano /etc/pterodactyl/config.yml
Paste the block, save, and exit (Ctrl+O, Enter, Ctrl+X). Start the Wings process:
systemctl enable --now wings
The heart icon next to your node name inside the web panel will instantly turn green.
Step 5: Deploying Your Game Servers
You must allocate specific network ports to your Node inside the panel admin dashboard first. Go to Nodes → Click your node → Allocation Tab. Enter your server's Public IP and input ports (e.g., 25565, 8211, 27015, 28015). Click Submit.
Now click Servers on the left sidebar → Create New.
🎮 Game 1: Minecraft
- Core Configuration: Name your server, and assign a target user.
- Allocation: Select your Public IP and map port 25565.
- Nest & Egg Options: Select the Minecraft Nest and the Paper (or Vanilla) Egg.
- Variables: Set your preferred maximum RAM capacity (e.g., 6144 for 6GB).
🎮 Game 2: Palworld
- Allocation: Select your Public IP and map port 8211 (UDP).
- Nest & Egg Options: Select the Steam Games Nest → Palworld Egg.
- Variables: Palworld servers notoriously eat RAM. Ensure you allocate at least 8GB to 12GB of RAM specifically to this container to prevent daily out-of-memory server crashes.
🎮 Game 3: Rust
- Allocation: Select your Public IP and map port 28015 (UDP) as the main port, along with 28016 (TCP) for RCON management.
- Nest & Egg Options: Select Steam Games Nest → Rust Egg.
- Build Configuration: Rust requires heavy CPU usage. You can adjust the CPU limit block if you want to pin it to specific hardware threads.
Step 6: Directing Players Using Cloudflare DNS
To make sure your friends don't have to connect using a raw, messy IP address, configure standard DNS routing inside your Cloudflare Dashboard.
Go to Cloudflare → DNS → Records. Add the following Unproxied entries:
| Type | Name | Content / Value | Proxy Status | Purpose |
|---|---|---|---|---|
| A | mc | YOUR_SERVER_PUBLIC_IP | 🔘 DNS Only (Grey Cloud) | Players join via mc.yourdomain.com |
| A | rust | YOUR_SERVER_PUBLIC_IP | 🔘 DNS Only (Grey Cloud) | Players join via rust.yourdomain.com:28015 |
| A | pal | YOUR_SERVER_PUBLIC_IP | 🔘 DNS Only (Grey Cloud) | Players join via pal.yourdomain.com:8211 |
Your game server deployment is now fully operational. Your administrative control interface is safely routed behind an encrypted Cloudflare Tunnel, your live server consoles will stream perfectly over secure WebSockets, and your games are running with raw bare-metal hardware speed!
🚀 Need the Ultimate Foundation for Your Multi-Game Setup?
Running heavy-hitting instances of Rust, Palworld, and Minecraft simultaneously requires more than just standard cloud vCPUs—it demands high-frequency, bare-metal hardware that won't choke under player stress.
If you want absolute control over your hosting infrastructure without the massive GSP upcharges, pair this tutorial with enterprise-grade bare metal. Visit the Fit Servers Dedicated Servers Page to find top-tier, low-latency infrastructure optimized for handling demanding Docker workloads.
Configure your Dedicated Server today!