Yannis blog

Deploy MineOS using docker-compose

24 Oct 2022

Here you can find detailed instructions on how to run a dockerized Minecraft Server using MineOS with docker-compose and create a systemd service to handle it.


Make sure to have Docker and Docker-compose installed. For Debian Linux you just need to install the following packages.

apt update && apt install -y docker-ce docker-compose

Docker application location

In order to run the container we need to create a location eg: /opt/containers/mineos and store our configuration in there.

mkdir -p /opt/containers/mineos


In order to run the MineOS container we need to specify the following environment variables

  • MINEOS_PATH is mandatory and specifies the path in the Host for the container data
  • MINEOS_IP is optional and is set when you want the container to listen on a specific IP. In order for it to work you need to add a semicolon at the end. If left blank it will listen to all interfaces.

/opt/containers/mineos/.env defines all necessary environment variables

# MANDATORY - path in the host that will keep mineos data

# OPTIONAL - IP of the host that the container will listen on

Compose File

/opt/containers/mineos/docker-compose.yml defines the services, networks, and volumes for the MineOS Docker application

version: "3"
    restart: always   
    image: binhex/arch-mineos-node
      - PUID=0
      - PGID=0
#      - WEBUI_PASSWORD=mineos  # This is the default in the image
      - "${MINEOS_IP}25565-25570:25565-25570"
      - "${MINEOS_IP}443:8443"
      - ${MINEOS_PATH}:/config
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro

Systemd service definition

/etc/systemd/system/docker-compose-mineos.service defines the service that starts and stops the Docker application for the system

Description=MineOS container

ExecStart=/usr/bin/docker-compose up --force-recreate --remove-orphans
ExecStop=/usr/bin/docker-compose down


Enable and run service

source  /opt/containers/mineos/.env && mkdir -p "${MINEOS_PATH}"
systemctl daemon-reload && \
systemctl enable docker-compose-mineos && \
systemctl start docker-compose-mineos

Visit MineOS UI

You should be able to visit your container at port 443 using the IP you specified in the .env file. eg: