Getting Started
Get Minepanel running in about 2 minutes.

What you need
- Docker 20.10+
- Docker Compose v2.0+
- 2GB+ RAM
- Linux, macOS, or Windows with WSL2
Check your install
docker --version and docker compose version
Installation
Cross-Platform
This configuration works on all operating systems (Linux, macOS, Windows). The :- syntax provides sensible defaults that work everywhere.
1. Create docker-compose.yml
yaml
services:
minepanel:
image: ketbom/minepanel:latest
ports:
- "${BACKEND_PORT:-8091}:8091"
- "${FRONTEND_PORT:-3000}:3000"
environment:
# Backend Configuration
- SERVERS_DIR=/app/servers
- FRONTEND_URL=${FRONTEND_URL:-http://localhost:3000}
- JWT_SECRET=${JWT_SECRET} # Generate with: openssl rand -base64 32
- CLIENT_PASSWORD=${CLIENT_PASSWORD:-admin}
- CLIENT_USERNAME=${CLIENT_USERNAME:-admin}
# Frontend Configuration
- NEXT_PUBLIC_FILEBROWSER_URL=${NEXT_PUBLIC_FILEBROWSER_URL:-http://localhost:8080}
- NEXT_PUBLIC_BACKEND_URL=${NEXT_PUBLIC_BACKEND_URL:-http://localhost:8091}
- NEXT_PUBLIC_DEFAULT_LANGUAGE=${NEXT_PUBLIC_DEFAULT_LANGUAGE:-en}
volumes:
- ${SERVERS_DIR:-./servers}:/app/servers
- /var/run/docker.sock:/var/run/docker.sock
- ${DATA_DIR:-./data}:/app/data
restart: always
filebrowser:
image: hurlenko/filebrowser
ports:
- "${FILEBROWSER_PORT:-8080}:8080"
volumes:
- ${SERVERS_DIR:-./servers}:/data
- ${FILEBROWSER_DIR:-./filebrowser-data}:/config
environment:
- FB_BASEURL=/
restart: always2. Launch
bash
# Create required directories
mkdir -p servers filebrowser-data data
# Generate JWT secret
export JWT_SECRET=$(openssl rand -base64 32)
# Start services
docker compose up -d3. Access
- Minepanel: http://localhost:3000
- File Browser: http://localhost:8080
Remote Access (Outside Your Network)
If you want to access Minepanel from outside your local network, you need to configure the environment variables with your server's public IP or domain name.
Update your docker-compose.yml:
yaml
environment:
# Backend - CRITICAL: Controls CORS
- FRONTEND_URL=http://your-server-ip:3000 # or https://minepanel.yourdomain.com
# Frontend - Must point to your server's address
- NEXT_PUBLIC_BACKEND_URL=http://your-server-ip:8091 # or https://api.yourdomain.com
- NEXT_PUBLIC_FILEBROWSER_URL=http://your-server-ip:8080 # or https://files.yourdomain.comThen access via:
- Minepanel:
http://your-server-ip:3000orhttps://minepanel.yourdomain.com - File Browser:
http://your-server-ip:8080orhttps://files.yourdomain.com
Important
- Always include
http://orhttps://in the URLs FRONTEND_URLis critical - it controls CORS in the backend- After changing these variables, restart:
docker compose restart - For production, use HTTPS with a reverse proxy (see Installation)
- Make sure ports are open in your firewall/router
First login
Minepanel
- Username:
admin - Password:
admin
Change this
Change the password after first login. See Configuration.
Filebrowser
Check the logs for the auto-generated password:
bash
docker compose logs filebrowserLook for a line like:
filebrowser | 2024/10/24 12:34:56 Admin credentials: admin / <generated-password>- Copy the password
- Login to http://localhost:8080
- Change it
Lost it?
bash
docker compose down
rm -rf filebrowser-data/filebrowser.db
docker compose up -d
docker compose logs filebrowserCreate your first server
- Click "New Server"
- Fill in:
- Name
- Type (Vanilla, Paper, Forge, etc.)
- Minecraft version
- Port (default: 25565)
- Memory (e.g., 2G)
- Click "Create"
- Wait a few minutes (first time downloads files)
Next
Troubleshooting
Docker permission errors (Linux)
bash
sudo usermod -aG docker $USER
# Log out and back inContainers restarting
bash
docker compose logs minepanel
docker compose logs filebrowserNeed help?
- 📚 Check the FAQ
- 🐛 Report an issue on GitHub
- 💬 Join the discussion
