Skip to content

Getting Started

Get Minepanel running in about 2 minutes.

Minepanel Dashboard

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: always

2. 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 -d

3. Access

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.com

Then access via:

  • Minepanel: http://your-server-ip:3000 or https://minepanel.yourdomain.com
  • File Browser: http://your-server-ip:8080 or https://files.yourdomain.com

Important

  • Always include http:// or https:// in the URLs
  • FRONTEND_URL is 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 filebrowser

Look for a line like:

filebrowser  | 2024/10/24 12:34:56 Admin credentials: admin / <generated-password>
  1. Copy the password
  2. Login to http://localhost:8080
  3. Change it

Lost it?

bash
docker compose down
rm -rf filebrowser-data/filebrowser.db
docker compose up -d
docker compose logs filebrowser

Create your first server

  1. Click "New Server"
  2. Fill in:
    • Name
    • Type (Vanilla, Paper, Forge, etc.)
    • Minecraft version
    • Port (default: 25565)
    • Memory (e.g., 2G)
  3. Click "Create"
  4. Wait a few minutes (first time downloads files)

Next

Troubleshooting

Docker permission errors (Linux)

bash
sudo usermod -aG docker $USER
# Log out and back in

Containers restarting

bash
docker compose logs minepanel
docker compose logs filebrowser

Need help?

Released under the MIT License.