This repository has been archived on 2021-12-24. You can view files and clone it, but cannot push or open issues/pull-requests.
self-hosting/forge
Jef Roosens e277cf5844 Added tshock README 2020-12-30 17:10:37 +01:00
..
.env.example Added tshock README 2020-12-30 17:10:37 +01:00
Dockerfile Moved all config to .env file; updated README 2020-12-30 15:57:45 +01:00
README.md Added Forge README 2020-12-30 16:59:05 +01:00
docker-compose.yml Moved all config to .env file; updated README 2020-12-30 15:57:45 +01:00

README.md

Build arguments

Two build arguments are required, namely MC_VERSION and FORGE_VERSION. You can find your required versions here. Then, you can specify them in the .env file:

MC_VERSION=1.16.4
FORGE_VERSION=35.1.4

Environment variables

The two possible environment variables are XMS and XMX. These specify the initial RAM & maximum RAM usage respectively. Only XMS is required; XMX is just set to the same value as XMS if not specified. You must specify them as a number, e.g. XMS=4. This number represents a quantity of gigabytes.

Mount points

There a three useful mount points defined:

  • /mc/config: this is where all server config files reside.
  • /mc/config/mods: this is where all mods should be placed.
  • /mc/worlds: this is where the world files are stored.

You can mount these directories somewhere in the host file system by specifying the mount paths in the .env file. These can be both absolute or relative paths.

Other config variables

The only other config variable is PORT. This specifies on what port your server will be discoverable over the internet. The default Minecraft port is 25565.

Java flags

I use the Java flags defined here. If you don't agree with this decision, you can change the ENTRYPOINT at the end of the Dockerfile to the following:

ENTRYPOINT java \
-Xms"${XMS}G" \
-Xmx"${XMX:-$XMS}G" \
-jar "$FORGE_JAR" \
--universe /mc/worlds \
--nogui

This will only use the flags absolutely necessary, while still allowing you to tweak the memory variables.