Configuration
How to configure Minepanel.

Environment Variables
All environment variables can be set in a .env file or directly in docker-compose.yml.
Complete Variable Reference
Ports
| Variable | Default | Description |
|---|---|---|
BACKEND_PORT | 8091 | Backend API port |
FRONTEND_PORT | 3000 | Frontend web interface port |
Directories
| Variable | Default | Description |
|---|---|---|
BASE_DIR | $PWD | Base directory for servers (required for Docker socket communication) |
Authentication
| Variable | Required | Default | Description |
|---|---|---|---|
JWT_SECRET | ✅ Yes | - | JWT secret key (generate with: openssl rand -base64 32) |
CLIENT_USERNAME | No | admin | Admin username |
CLIENT_PASSWORD | No | admin | Admin password |
URLs
| Variable | Default | Description |
|---|---|---|
FRONTEND_URL | http://localhost:3000 | Frontend URL (controls CORS) |
NEXT_PUBLIC_BACKEND_URL | http://localhost:8091 | Backend API URL |
Other
| Variable | Default | Description |
|---|---|---|
NEXT_PUBLIC_DEFAULT_LANGUAGE | en | Default language (en, es, nl) |
HOST_LAN_IP | - | Optional: Your LAN IP for local network play |
Using Environment Variables
Option 1: .env File (Recommended)
Create a .env file in the same directory as docker-compose.yml:
# 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 playThen run:
docker compose up -dOption 2: Directly in docker-compose.yml
environment:
- JWT_SECRET=your_secret_hereCustom Directories Example
To use custom directories for your data:
# In .env file
BASE_DIR=/home/user/minepanelOr directly in docker-compose.yml:
volumes:
- ${BASE_DIR:-$PWD}/servers:/app/servers
- ${BASE_DIR:-$PWD}/data:/app/dataFRONTEND_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
- Remote access setup
- LAN network configuration
- SSL/HTTPS configuration
- Port management
- Firewall setup
- Reverse proxy configuration
🔧 Administration
- Password management
- Database backups
- System updates
- Resource management
- Logs management
- Reset procedures
🎮 Server Types
- Fabric
- Forge
- Paper, Spigot, Bukkit
- Purpur, Pufferfish, Folia
- CurseForge modpacks
📦 Mods & Plugins
- Modrinth integration
- CurseForge files
- Plugin management
- Combining sources
❓ Troubleshooting
- Common issues
- Connection problems
- Server management issues
- Performance optimization
Advanced Configuration
Custom Docker Socket
volumes:
- /custom/path/docker.sock:/var/run/docker.sockMultiple Instances
Run multiple Minepanel instances:
- Create separate directories
- Use different ports
- Use different server directories
Example:
# Instance 1
FRONTEND_PORT=3000
BACKEND_PORT=8091
# Instance 2
FRONTEND_PORT=3001
BACKEND_PORT=8092Custom Network
networks:
minepanel:
driver: bridge
services:
minepanel:
networks:
- minepanelNext Steps
- Getting Started: Installation Guide
- Remote Access: Networking Guide
- Server Setup: Server Types
- Add Mods: Mods & Plugins
- Need Help?: Troubleshooting
