Skip to content

WasinUddy/Montainer

Repository files navigation

Montainer

Minecraft + Container = Montainer!!!
Minecraft Bedrock Server easily deployed with Docker.

**The QEMU for ARM64 still not working properly**

Problem Statement

Updating a Minecraft server can be a tedious process. While clients can easily update their game via Microsoft Store or other platforms, server updates require manual download and replacement of files. This can be time-consuming and prone to errors.

Solution

Montainer is designed to solve this problem. It is a Minecraft server encapsulated in a Docker container, complete with a web UI console. The repository is managed automatically by web scraping the Mojang website. This allows users to use the :latest tag and auto-deploying programs like Watchtower to ensure their server is up-to-date with the client, without the need for manual updates.

How it Works

  1. Docker Container: The Minecraft server is encapsulated in a Docker container, making it easy to deploy and manage.

  2. Web UI Console: Montainer comes with a web UI console, providing a user-friendly interface for managing your server.

  3. Automatic Updates: The repository is updated automatically by web scraping the Mojang website. This means you can always use the :latest tag to get the most recent version of the server. You can also use auto-deploying programs like Watchtower to ensure your server is always up-to-date.

Usage

Note for this microservice to work behind a subpath, you need to set the SUBPATH environment variable to the subpath you want to use. e.g. SUBPATH=/minecraft

Option 1: Deploy on Kubernetes (Do NOT Recommended)

Look at the examples/kubernetes folder for a sample deployment. Trust me I learn it the hardway that Game server should not be inside a Kubernetes💀

Option 2: Deploy with Docker Compose (Recommended)

services:
  montainer:
    image: ghcr.io/wasinuddy/montainer-stable:latest  # Use montainer-preview for Minecraft Snapshot server
    
    ports:
      - "8000:8000"                                   # Web UI Console mount to port 8000 TCP
      - "19132:19132/udp"                             # Minecraft Bedrock Server port 19132 UDP
    
    volumes:
        - ./worlds:/app/minecraft_server/worlds       # Paste your world folder inside ./worlds (ie. ./worlds/Bedrock Level)
        - ./configs:/app/configs
    
    restart: unless-stopped