2025-02-10 03:39:51 +00:00
2025-02-10 01:44:26 +00:00
2025-02-10 03:39:51 +00:00

Multicraft Jar Configurations

This repository contains the Multicraft jar configuration files that are used in conjunction with the java-multi-version docker image.

This allows Multicraft to utilise the built in docker feature whilst maintaining the ability to run different versions of Minecraft, since the multicraft.conf forces the selection of a single jdk image.

How to use

The configurations from this repo can be used with a bare metal installation of Multicraft, but my preferred method is using Docker-in-Docker, allowing the entire minecraft stack to be containerised.

  1. Grab your key from Multicraft and store it in the root directory.

  2. Run Multicraft using the multicraft-docker image and the accompanying docker-compose.yml & .env files.

  3. Navigate to the install.php file and complete the setup matching the values to the .env file.

  4. Once setup is complete, navigate to Settings > Update Minecraft > Add or Remove Files

    • In the JAR Filename, File URL and Conf URL fields, enter the chosen file: e.g.
      • JAR Filename: paper-1.21.4.jar
      • File URL: https://mc-assets.jrdn.dev/jar/paper-1.21.4.jar
      • Conf URL: https://mc-assets.jrdn.dev/conf/paper-1.21.4.jar.conf

All configuration files are in the /conf path, matching their corresponding .jar files in /jar, with the same name plus a .conf extension.

Docker compose and .env file

docker-compose.yml

services:
  multicraft:
    image: git.jrdn.dev/jordanwalster/multicraft-docker:latest
    ports:
      - 80:80
      - target: 21
        published: 21
        mode: host
    volumes:
      - ${BASE_DIR}/web-data:/var/www/html
      - ${BASE_DIR}/multicraft/jar:/multicraft/jar
      - ${BASE_DIR}/multicraft/servers:/multicraft/servers
      - ${BASE_DIR}/multicraft/templates:/multicraft/templates
      - ${BASE_DIR}/multicraft.key:/multicraft/multicraft.key
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
      - BASE_DIR=${BASE_DIR}
      - SERVER_MEMORY=${SERVER_MEMORY}
      - JDK_IMAGE=git.jrdn.dev/jordanwalster/java-multi-version:latest
      - MYSQL_USER=${MYSQL_USER}
      - MYSQL_DATABASE=${MYSQL_DATABASE}
      - MYSQL_PASSWORD=${MYSQL_PASSWORD}
    networks:
      - multicraft
    depends_on:
      - db
  db:
    image: mariadb
    volumes:
      - ${BASE_DIR}/db:/var/lib/mysql
    environment:
      MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
      MYSQL_USER: ${MYSQL_USER}
      MYSQL_PASSWORD: ${MYSQL_PASSWORD}
      MYSQL_DATABASE: ${MYSQL_DATABASE}
    networks:
      - multicraft

networks:
  multicraft:
    driver: bridge

.env

BASE_DIR=/path/to/data
SERVER_MEMORY=2048
MYSQL_USER=multicraft
MYSQL_DATABASE=multicraft
MYSQL_PASSWORD=changeme
MYSQL_ROOT_PASSWORD=changeme
Description
This repository contains the Multicraft jar configuration files that are used in conjunction with the java-multi-version docker image.
Readme 140 KiB