Skip to content

Configuration

How to configure Minepanel.

Configuration

Environment Variables

All environment variables can be set in a .env file or directly in docker-compose.yml.

Complete Variable Reference

Ports

VariableDefaultDescription
BACKEND_PORT8091Backend API port
FRONTEND_PORT3000Frontend web interface port

Directories

VariableDefaultDescription
BASE_DIR$PWDBase directory for servers (required for Docker socket communication)

Authentication

VariableRequiredDefaultDescription
JWT_SECRET✅ Yes-JWT secret key (generate with: openssl rand -base64 32)
CLIENT_USERNAMENoadminAdmin username
CLIENT_PASSWORDNoadminAdmin password

URLs

VariableDefaultDescription
FRONTEND_URLhttp://localhost:3000Frontend URL (controls CORS)
NEXT_PUBLIC_BACKEND_URLhttp://localhost:8091Backend API URL

Other

VariableDefaultDescription
NEXT_PUBLIC_DEFAULT_LANGUAGEenDefault language (en, es, nl)
HOST_LAN_IP-Optional: Your LAN IP for local network play

Using Environment Variables

Create a .env file in the same directory as docker-compose.yml:

bash
# Ports
BACKEND_PORT=8091
FRONTEND_PORT=3000

# Directories
BASE_DIR=$PWD

# Authentication
JWT_SECRET=your_generated_secret_here
CLIENT_USERNAME=admin
CLIENT_PASSWORD=admin

# URLs
FRONTEND_URL=http://localhost:3000
NEXT_PUBLIC_BACKEND_URL=http://localhost:8091

# Language
NEXT_PUBLIC_DEFAULT_LANGUAGE=en

# Network (optional)
# HOST_LAN_IP=192.168.1.100  # Your LAN IP for local network play

Then run:

bash
docker compose up -d

Option 2: Directly in docker-compose.yml

yaml
environment:
  - JWT_SECRET=your_secret_here

Custom Directories Example

To use custom directories for your data:

bash
# In .env file
BASE_DIR=/home/user/minepanel

Or directly in docker-compose.yml:

yaml
volumes:
  - ${BASE_DIR:-$PWD}/servers:/app/servers
  - ${BASE_DIR:-$PWD}/data:/app/data

FRONTEND_URL is Critical

The FRONTEND_URL variable controls CORS (Cross-Origin Resource Sharing) in the backend. If this doesn't match the URL you're using to access the frontend, API requests will be blocked.

Examples:

  • Local: FRONTEND_URL=http://localhost:3000
  • Remote IP: FRONTEND_URL=http://192.168.1.100:3000
  • Domain: FRONTEND_URL=https://minepanel.yourdomain.com

Always restart after changing: docker compose restart

Frontend Variables

Frontend variables (NEXT_PUBLIC_*) are loaded at runtime and must include the full URL with http:// or https:// protocol.

Quick Configuration Guides

For specific configuration topics, see these dedicated pages:

🌐 Networking & Remote Access

Networking Guide

  • Remote access setup
  • LAN network configuration
  • SSL/HTTPS configuration
  • Port management
  • Firewall setup
  • Reverse proxy configuration

🔧 Administration

Administration Guide

  • Password management
  • Database backups
  • System updates
  • Resource management
  • Logs management
  • Reset procedures

🎮 Server Types

Server Types Guide

  • Fabric
  • Forge
  • Paper, Spigot, Bukkit
  • Purpur, Pufferfish, Folia
  • CurseForge modpacks

📦 Mods & Plugins

Mods & Plugins Guide

  • Modrinth integration
  • CurseForge files
  • Plugin management
  • Combining sources

❓ Troubleshooting

Troubleshooting Guide

  • Common issues
  • Connection problems
  • Server management issues
  • Performance optimization

Advanced Configuration

Custom Docker Socket

yaml
volumes:
  - /custom/path/docker.sock:/var/run/docker.sock

Multiple Instances

Run multiple Minepanel instances:

  1. Create separate directories
  2. Use different ports
  3. Use different server directories

Example:

yaml
# Instance 1
FRONTEND_PORT=3000
BACKEND_PORT=8091

# Instance 2
FRONTEND_PORT=3001
BACKEND_PORT=8092

Custom Network

yaml
networks:
  minepanel:
    driver: bridge

services:
  minepanel:
    networks:
      - minepanel

Next Steps

More Help

Released under the MIT License.