Skip to content

Networking

Server Connection

Overview

Remote Access

Update docker-compose.yml:

yaml
environment:
  - FRONTEND_URL=http://your-ip:3000
  - NEXT_PUBLIC_BACKEND_URL=http://your-ip:8091
bash
docker compose restart

Network Settings (UI)

Configure IPs in Settings → Network Settings:

SettingUse
Public IP / DomainDiscord notifications, external players
LAN IPLocal network players

Find your LAN IP:

bash
# Mac
ipconfig getifaddr en0

# Linux
hostname -I | awk '{print $1}'

# Windows
(Get-NetIPAddress -AddressFamily IPv4 -InterfaceAlias "Ethernet").IPAddress

Connectivity Tab (per server)

Minepanel server configuration includes General -> Connectivity.

Key fields:

FieldWhat it affects
serverPortPublished game port (25565 Java, 19132 Bedrock by default)
onlineModeMojang auth verification for Java servers
preventProxyConnectionsBlocks bypass connections when using Java proxy routing
opsOperator usernames
opPermissionLevelJava op permission level (1-4)

Notes:

  • If Java proxy is enabled globally, port mapping may be controlled by proxy mode.
  • Bedrock uses UDP and does not use Java proxy routing.

Ports

ServiceDefaultProtocolDescription
Frontend3000TCPWeb UI
Backend8091TCPAPI
Java Servers25565+TCPJava Edition games
Bedrock Servers19132+UDPBedrock Edition games

Bedrock UDP

Bedrock uses UDP, not TCP. Make sure your firewall rules specify the correct protocol.

Open firewall:

bash
# Minepanel
sudo ufw allow 3000/tcp
sudo ufw allow 8091/tcp

# Java servers
sudo ufw allow 25565/tcp

# Bedrock servers
sudo ufw allow 19132/udp

SSL/HTTPS

User
Proxy / SSL
Frontend :3000
Backend :8091

Nginx + Let's Encrypt

nginx
# /etc/nginx/sites-available/minepanel
server {
    listen 80;
    server_name minepanel.yourdomain.com;

    location / {
        proxy_pass http://localhost:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
    }
}
bash
sudo certbot --nginx -d minepanel.yourdomain.com

Update environment:

yaml
- FRONTEND_URL=https://minepanel.yourdomain.com
- NEXT_PUBLIC_BACKEND_URL=https://api.yourdomain.com

Caddy (Auto SSL)

caddyfile
minepanel.yourdomain.com {
    reverse_proxy localhost:3000
}

api.yourdomain.com {
    reverse_proxy localhost:8091
}

MC Proxy Router (Java Only)

Single port (25565) for all Java servers via hostname routing.

Java Edition Only

mc-router only works with Java Edition (TCP protocol). Bedrock servers use UDP and cannot be proxied this way. Each Bedrock server needs its own port.

Setup

  1. DNS: Create wildcard record *.mc.example.com → your-ip

  2. Settings: Configure base domain in Settings → Proxy Settings

  3. Start mc-router:

bash
docker compose --profile proxy up -d

Java servers auto-get hostnames: {server-id}.mc.example.com

Bedrock Connection

Bedrock servers connect directly via IP and port:

Server Address: your-ip
Port: 19132 (or assigned port)

Troubleshooting

IssueFix
CORS errorsFRONTEND_URL must match browser URL exactly
Can't access remotelyCheck firewall, update FRONTEND_URL
Connection refuseddocker ps to check containers running

→ More: Troubleshooting

Released under the MIT License. · Anonymous, cookieless analytics (self-hosted Umami).