mirror of
https://github.com/itzg/docker-minecraft-server.git
synced 2026-02-18 07:26:24 +00:00
Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f88cb8eee9 | ||
|
|
18f69b7680 | ||
|
|
1dbe0f9621 | ||
|
|
79518f124a | ||
|
|
c6cf0857fc | ||
|
|
3eb8f85cd4 | ||
|
|
cbffecfd3a | ||
|
|
a19eadec80 |
4
.gitattributes
vendored
4
.gitattributes
vendored
@@ -1,2 +1,2 @@
|
||||
# Auto detect text files and perform LF normalization
|
||||
* text=lf
|
||||
# Auto detect text files and perform LF normalization
|
||||
* text eol=lf
|
||||
4
.github/workflows/build-multiarch.yml
vendored
4
.github/workflows/build-multiarch.yml
vendored
@@ -186,14 +186,14 @@ jobs:
|
||||
tests/test.sh
|
||||
|
||||
- name: Login to DockerHub
|
||||
uses: docker/login-action@v3.5.0
|
||||
uses: docker/login-action@v3.6.0
|
||||
if: env.HAS_IMAGE_REPO_ACCESS
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USER }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
|
||||
- name: Login to GHCR
|
||||
uses: docker/login-action@v3.5.0
|
||||
uses: docker/login-action@v3.6.0
|
||||
if: env.HAS_IMAGE_REPO_ACCESS
|
||||
with:
|
||||
registry: ghcr.io
|
||||
|
||||
178
Dockerfile
178
Dockerfile
@@ -1,87 +1,91 @@
|
||||
ARG BASE_IMAGE=eclipse-temurin:21-jre
|
||||
FROM ${BASE_IMAGE}
|
||||
|
||||
# hook into docker BuildKit --platform support
|
||||
# see https://docs.docker.com/engine/reference/builder/#automatic-platform-args-in-the-global-scope
|
||||
ARG TARGETOS
|
||||
ARG TARGETARCH
|
||||
ARG TARGETVARIANT
|
||||
|
||||
# The following three arg/env vars get used by the platform specific "install-packages" script
|
||||
ARG EXTRA_DEB_PACKAGES=""
|
||||
ARG EXTRA_DNF_PACKAGES=""
|
||||
ARG EXTRA_ALPINE_PACKAGES=""
|
||||
ARG FORCE_INSTALL_PACKAGES=1
|
||||
RUN --mount=target=/build,source=build \
|
||||
TARGET=${TARGETARCH}${TARGETVARIANT} \
|
||||
/build/run.sh install-packages
|
||||
|
||||
RUN --mount=target=/build,source=build \
|
||||
/build/run.sh setup-user
|
||||
|
||||
EXPOSE 25565
|
||||
|
||||
ARG APPS_REV=1
|
||||
ARG GITHUB_BASEURL=https://github.com
|
||||
|
||||
ARG EASY_ADD_VERSION=0.8.11
|
||||
ADD ${GITHUB_BASEURL}/itzg/easy-add/releases/download/${EASY_ADD_VERSION}/easy-add_${TARGETOS}_${TARGETARCH}${TARGETVARIANT} /usr/bin/easy-add
|
||||
RUN chmod +x /usr/bin/easy-add
|
||||
|
||||
ARG RESTIFY_VERSION=1.7.10
|
||||
RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
|
||||
--var version=${RESTIFY_VERSION} --var app=restify --file {{.app}} \
|
||||
--from ${GITHUB_BASEURL}/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
|
||||
|
||||
ARG RCON_CLI_VERSION=1.7.1
|
||||
RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
|
||||
--var version=${RCON_CLI_VERSION} --var app=rcon-cli --file {{.app}} \
|
||||
--from ${GITHUB_BASEURL}/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
|
||||
|
||||
ARG MC_MONITOR_VERSION=0.15.6
|
||||
RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
|
||||
--var version=${MC_MONITOR_VERSION} --var app=mc-monitor --file {{.app}} \
|
||||
--from ${GITHUB_BASEURL}/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
|
||||
|
||||
ARG MC_SERVER_RUNNER_VERSION=1.13.4
|
||||
RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
|
||||
--var version=${MC_SERVER_RUNNER_VERSION} --var app=mc-server-runner --file {{.app}} \
|
||||
--from ${GITHUB_BASEURL}/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
|
||||
|
||||
ARG MC_HELPER_VERSION=1.49.0
|
||||
ARG MC_HELPER_BASE_URL=${GITHUB_BASEURL}/itzg/mc-image-helper/releases/download/${MC_HELPER_VERSION}
|
||||
# used for cache busting local copy of mc-image-helper
|
||||
ARG MC_HELPER_REV=1
|
||||
RUN curl -fsSL ${MC_HELPER_BASE_URL}/mc-image-helper-${MC_HELPER_VERSION}.tgz \
|
||||
| tar -C /usr/share -zxf - \
|
||||
&& ln -s /usr/share/mc-image-helper-${MC_HELPER_VERSION}/ /usr/share/mc-image-helper \
|
||||
&& ln -s /usr/share/mc-image-helper/bin/mc-image-helper /usr/bin
|
||||
|
||||
VOLUME ["/data"]
|
||||
WORKDIR /data
|
||||
|
||||
STOPSIGNAL SIGTERM
|
||||
|
||||
# End user MUST set EULA and change RCON_PASSWORD
|
||||
ENV TYPE=VANILLA VERSION=LATEST EULA="" UID=1000 GID=1000 LC_ALL=en_US.UTF-8
|
||||
|
||||
COPY --chmod=755 scripts/start* /image/scripts/
|
||||
|
||||
# Backward compatible shim for those with legacy entrypoint
|
||||
RUN echo "#!/bin/sh\nexec /image/scripts/start\n" > /start && chmod +x /start
|
||||
|
||||
COPY --chmod=755 scripts/auto/* /image/scripts/auto/
|
||||
COPY --chmod=755 files/shims/ /usr/local/bin/
|
||||
COPY --chmod=755 files/* /image/
|
||||
|
||||
RUN curl -fsSL -o /image/Log4jPatcher.jar https://github.com/CreeperHost/Log4jPatcher/releases/download/v1.0.1/Log4jPatcher-1.0.1.jar
|
||||
|
||||
RUN dos2unix /image/scripts/start* /image/scripts/auto/*
|
||||
|
||||
ENTRYPOINT [ "/image/scripts/start" ]
|
||||
HEALTHCHECK --start-period=2m --retries=2 --interval=30s CMD mc-health
|
||||
|
||||
ARG BUILDTIME=local
|
||||
ARG VERSION=local
|
||||
ARG REVISION=local
|
||||
RUN echo "buildtime=${BUILDTIME}\nversion=${VERSION}\nrevision=${REVISION}" > /etc/image.properties
|
||||
ARG BASE_IMAGE=eclipse-temurin:21-jre
|
||||
FROM ${BASE_IMAGE}
|
||||
|
||||
# hook into docker BuildKit --platform support
|
||||
# see https://docs.docker.com/engine/reference/builder/#automatic-platform-args-in-the-global-scope
|
||||
ARG TARGETOS
|
||||
ARG TARGETARCH
|
||||
ARG TARGETVARIANT
|
||||
|
||||
# The following three arg/env vars get used by the platform specific "install-packages" script
|
||||
ARG EXTRA_DEB_PACKAGES=""
|
||||
ARG EXTRA_DNF_PACKAGES=""
|
||||
ARG EXTRA_ALPINE_PACKAGES=""
|
||||
ARG FORCE_INSTALL_PACKAGES=1
|
||||
RUN --mount=target=/build,source=build \
|
||||
TARGET=${TARGETARCH}${TARGETVARIANT} \
|
||||
/build/run.sh install-packages
|
||||
|
||||
RUN --mount=target=/build,source=build \
|
||||
/build/run.sh setup-user
|
||||
|
||||
EXPOSE 25565
|
||||
|
||||
ARG APPS_REV=1
|
||||
ARG GITHUB_BASEURL=https://github.com
|
||||
|
||||
ARG EASY_ADD_VERSION=0.8.11
|
||||
ADD ${GITHUB_BASEURL}/itzg/easy-add/releases/download/${EASY_ADD_VERSION}/easy-add_${TARGETOS}_${TARGETARCH}${TARGETVARIANT} /usr/bin/easy-add
|
||||
RUN chmod +x /usr/bin/easy-add
|
||||
|
||||
ARG RESTIFY_VERSION=1.7.10
|
||||
RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
|
||||
--var version=${RESTIFY_VERSION} --var app=restify --file {{.app}} \
|
||||
--from ${GITHUB_BASEURL}/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
|
||||
|
||||
ARG RCON_CLI_VERSION=1.7.1
|
||||
RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
|
||||
--var version=${RCON_CLI_VERSION} --var app=rcon-cli --file {{.app}} \
|
||||
--from ${GITHUB_BASEURL}/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
|
||||
|
||||
ARG MC_MONITOR_VERSION=0.15.6
|
||||
RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
|
||||
--var version=${MC_MONITOR_VERSION} --var app=mc-monitor --file {{.app}} \
|
||||
--from ${GITHUB_BASEURL}/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
|
||||
|
||||
ARG MC_SERVER_RUNNER_VERSION=1.13.4
|
||||
RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
|
||||
--var version=${MC_SERVER_RUNNER_VERSION} --var app=mc-server-runner --file {{.app}} \
|
||||
--from ${GITHUB_BASEURL}/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
|
||||
|
||||
ARG MC_HELPER_VERSION=1.49.2
|
||||
ARG MC_HELPER_BASE_URL=${GITHUB_BASEURL}/itzg/mc-image-helper/releases/download/${MC_HELPER_VERSION}
|
||||
# used for cache busting local copy of mc-image-helper
|
||||
ARG MC_HELPER_REV=1
|
||||
RUN curl -fsSL ${MC_HELPER_BASE_URL}/mc-image-helper-${MC_HELPER_VERSION}.tgz \
|
||||
| tar -C /usr/share -zxf - \
|
||||
&& ln -s /usr/share/mc-image-helper-${MC_HELPER_VERSION}/ /usr/share/mc-image-helper \
|
||||
&& ln -s /usr/share/mc-image-helper/bin/mc-image-helper /usr/bin
|
||||
|
||||
VOLUME ["/data"]
|
||||
WORKDIR /data
|
||||
|
||||
STOPSIGNAL SIGTERM
|
||||
|
||||
# End user MUST set EULA and change RCON_PASSWORD
|
||||
ENV TYPE=VANILLA VERSION=LATEST EULA="" UID=1000 GID=1000 LC_ALL=en_US.UTF-8
|
||||
|
||||
COPY --chmod=755 scripts/start* /image/scripts/
|
||||
|
||||
# Backward compatible shim for those with legacy entrypoint
|
||||
COPY --chmod=755 <<EOF /start
|
||||
#!/bin/bash
|
||||
exec /image/scripts/start
|
||||
EOF
|
||||
|
||||
COPY --chmod=755 scripts/auto/* /image/scripts/auto/
|
||||
COPY --chmod=755 scripts/shims/* /image/scripts/shims/
|
||||
RUN ln -s /image/scripts/shims/* /usr/local/bin/
|
||||
COPY --chmod=755 files/* /image/
|
||||
|
||||
RUN curl -fsSL -o /image/Log4jPatcher.jar https://github.com/CreeperHost/Log4jPatcher/releases/download/v1.0.1/Log4jPatcher-1.0.1.jar
|
||||
|
||||
RUN dos2unix /image/scripts/start* /image/scripts/auto/*
|
||||
|
||||
ENTRYPOINT [ "/image/scripts/start" ]
|
||||
HEALTHCHECK --start-period=2m --retries=2 --interval=30s CMD mc-health
|
||||
|
||||
ARG BUILDTIME=local
|
||||
ARG VERSION=local
|
||||
ARG REVISION=local
|
||||
RUN echo "buildtime=${BUILDTIME}\nversion=${VERSION}\nrevision=${REVISION}" > /etc/image.properties
|
||||
|
||||
@@ -1,187 +1,189 @@
|
||||
## Running with a custom server JAR
|
||||
|
||||
If you would like to run a custom server JAR, set `-e TYPE=CUSTOM` and pass the custom server
|
||||
JAR via `CUSTOM_SERVER`. It can either be a URL or a container path to an existing JAR file.
|
||||
|
||||
If it is a URL, it will only be downloaded into the `/data` directory if it wasn't already. As
|
||||
such, if you need to upgrade or re-download the JAR, then you will need to stop the container,
|
||||
remove the file from the container's `/data` directory, and start again.
|
||||
|
||||
## Force re-download of the server file
|
||||
|
||||
For VANILLA, FORGE, BUKKIT, SPIGOT, PAPER, CURSEFORGE, SPONGEVANILLA server types, set
|
||||
`$FORCE_REDOWNLOAD` to some value (e.g. 'true) to force a re-download of the server file for
|
||||
the particular server type. by adding a `-e FORCE_REDOWNLOAD=true` to your command-line.
|
||||
|
||||
For example, with PaperSpigot, it would look something like this:
|
||||
|
||||
```
|
||||
docker run -d -v /path/on/host:/data \
|
||||
-e TYPE=PAPER -e FORCE_REDOWNLOAD=true \
|
||||
-p 25565:25565 -e EULA=TRUE --name mc itzg/minecraft-server
|
||||
```
|
||||
|
||||
## Running as alternate user/group ID
|
||||
|
||||
By default, the container will switch to and run the Minecraft server as user ID 1000 and group ID 1000; however, that can be changed by setting the environment variables `UID` and `GID`.
|
||||
|
||||
The startup will also skip user switching if the `--user`/`-u` argument is passed to `docker run` or `user` is set on the compose service.
|
||||
|
||||
## Extra Arguments
|
||||
|
||||
Arguments that would usually be passed to the jar file (those which are written after the filename) can be passed via the `EXTRA_ARGS` environment variable.
|
||||
|
||||
See [Custom worlds directory path](../misc/world-data.md#custom-worlds-directory-path) for an example.
|
||||
|
||||
## Interactive and Color Console
|
||||
|
||||
When RCON is enabled, which is the default, and [TTY](https://docs.docker.com/compose/compose-file/05-services/#tty) is enabled on the container, then some server types will output colorized logs and provide a fully interactive console. To access the interactive console, use [`docker attach`](https://docs.docker.com/engine/reference/commandline/container_attach/) (not `exec`). When finished, make sure to use the sequence Control-P, Control-Q to detach without stopping the container.
|
||||
|
||||
If this behavior interferes with the log content, then disable TTY or remove the setting entirely since the default is disabled. In a compose file, set the service's `tty` parameter to `false`. On the `docker run` command-line remove the `-t` argument.
|
||||
|
||||
## Server Shutdown Options
|
||||
|
||||
To allow time for players to finish what they're doing during a graceful server shutdown, set `STOP_SERVER_ANNOUNCE_DELAY` to a number of seconds to delay after an announcement is posted by the server.
|
||||
|
||||
!!! warning "Increase stop grace period"
|
||||
|
||||
The Docker stop grace period must be increased to a value longer than the announce delay. The value to use that is longer than announce delay will vary based upon the amount of time it takes for final world data saving. If the container exits with exit code 137, then that indicates a longer grace period is needed.
|
||||
|
||||
The grace period can be increased using [the -t option on docker-compose down](https://docs.docker.com/compose/reference/down/) or set the [stop_grace_period](https://docs.docker.com/compose/compose-file/05-services/#stop_grace_period) in the compose file.
|
||||
|
||||
The `STOP_SERVER_ANNOUNCE_DELAY` can be bypassed by sending a `SIGUSR1` signal to the `mc-server-runner` process.
|
||||
|
||||
`docker`:
|
||||
|
||||
docker stop --signal SIGUSR1 mc
|
||||
|
||||
`docker compose`:
|
||||
|
||||
docker compose kill --signal SIGUSR1
|
||||
|
||||
## Configuration Options for Minecraft Server Health Monitoring
|
||||
|
||||
The image tags include specific variables to simplify configuration for monitoring the health of a Minecraft server:
|
||||
|
||||
- `-e SERVER_HOST=localhost` : This variable sets the host address of the Minecraft server to be monitored. By default, it is set to `localhost`, but you can replace it with the actual hostname or IP address of your Minecraft server.
|
||||
|
||||
- `-e SERVER_PORT=25565` : This variable sets the port number on which the Minecraft server is running. By default, Minecraft servers run on port 25565, but if your server is configured to use a different port, you should replace `25565` with the correct port number. This helps the monitoring system to accurately check the health status of the Minecraft server on the specified port.
|
||||
|
||||
## OpenJ9 Specific Options
|
||||
|
||||
The openj9 image tags include specific variables to simplify configuration:
|
||||
|
||||
- `-e TUNE_VIRTUALIZED=TRUE` : enables the option to
|
||||
[optimize for virtualized environments](https://www.eclipse.org/openj9/docs/xtunevirtualized/)
|
||||
- `-e TUNE_NURSERY_SIZES=TRUE` : configures nursery sizes where the initial size is 50%
|
||||
of the `MAX_MEMORY` and the max size is 80%.
|
||||
|
||||
## Enabling rolling logs
|
||||
|
||||
By default the vanilla log file will grow without limit. The logger can be reconfigured to use a rolling log files strategy by using:
|
||||
|
||||
```
|
||||
-e ENABLE_ROLLING_LOGS=true
|
||||
```
|
||||
|
||||
> **NOTE** this will interfere with interactive/color consoles [as described in the section above](#interactive-and-color-console)
|
||||
|
||||
## Timezone Configuration
|
||||
|
||||
You can configure the timezone to match yours by setting the `TZ` environment variable:
|
||||
|
||||
-e TZ=Europe/London
|
||||
|
||||
such as:
|
||||
|
||||
docker run -d -it -e TZ=Europe/London -p 25565:25565 --name mc itzg/minecraft-server
|
||||
|
||||
Or mounting `/etc/timezone` as readonly (not supported on Windows):
|
||||
|
||||
-v /etc/timezone:/etc/timezone:ro
|
||||
|
||||
such as:
|
||||
|
||||
docker run -d -it -v /etc/timezone:/etc/timezone:ro -p 25565:25565 --name mc itzg/minecraft-server
|
||||
|
||||
## HTTP Proxy
|
||||
|
||||
You may configure the use of an HTTP/HTTPS proxy by passing the proxy's "host:port" via the environment variable `PROXY`. In [the example compose file](https://github.com/itzg/docker-minecraft-server/blob/master/examples/docker-compose-proxied.yml) it references a Squid proxy. The host and port can be separately passed via the environment variables `PROXY_HOST` and `PROXY_PORT`. A `|` delimited list of hosts to exclude from proxying can be passed via `PROXY_NON_PROXY_HOSTS`.
|
||||
|
||||
## Using "noconsole" option
|
||||
|
||||
Some older versions (pre-1.14) of Spigot required `--noconsole` to be passed when detaching stdin, which can be done by setting `-e CONSOLE=FALSE`.
|
||||
|
||||
## Explicitly disable GUI
|
||||
|
||||
Some older servers get confused and think that the GUI interface is enabled. You can explicitly
|
||||
disable that by passing `-e GUI=FALSE`.
|
||||
|
||||
## Stop Duration
|
||||
|
||||
When the container is signalled to stop, the Minecraft process wrapper will attempt to send a "stop" command via RCON or console and waits for the process to gracefully finish. By default it waits 60 seconds, but that duration can be configured by setting the environment variable `STOP_DURATION` to the number of seconds.
|
||||
|
||||
## Setup only
|
||||
|
||||
If you are using a host-attached data directory, then you can have the image setup the Minecraft server files and stop prior to launching the server process by setting `SETUP_ONLY` to `true`.
|
||||
|
||||
## Enable Flare Flags
|
||||
|
||||
To enable the JVM flags required to fully support the [Flare profiling suite](https://blog.airplane.gg/flare), set the following variable:
|
||||
|
||||
-e USE_FLARE_FLAGS=true
|
||||
|
||||
Flare is built-in to Pufferfish/Purpur, and is available in [plugin form](https://github.com/TECHNOVE/FlarePlugin) for other server types.
|
||||
|
||||
## Enable support for optimized SIMD operations
|
||||
|
||||
To enable support for optimized SIMD operations, the JVM flag can be set with the following variable:
|
||||
|
||||
-e USE_SIMD_FLAGS=true
|
||||
|
||||
SIMD optimized operations are supported by Pufferfish and Purpur.
|
||||
|
||||
## Downloading extra configuration files
|
||||
|
||||
You can download additional configuration files or other resources before the server starts by using the `DOWNLOAD_EXTRA_CONFIGS` environment variable. This is useful for downloading configs that you want to patch or modify during the startup process.
|
||||
|
||||
The format uses a `<` separator between the destination path and the source URL:
|
||||
|
||||
```
|
||||
DOWNLOAD_EXTRA_CONFIGS=destination<source_url[,destination2<source_url2,...]
|
||||
```
|
||||
|
||||
For example, to download configuration files for plugins:
|
||||
|
||||
```yaml
|
||||
environment:
|
||||
DOWNLOAD_EXTRA_CONFIGS: |
|
||||
plugins/WorldEdit<https://raw.githubusercontent.com/EngineHub/WorldEdit/refs/heads/version/7.3.x/worldedit-bukkit/src/main/resources/defaults/config.yml
|
||||
plugins/EssentialsX<https://raw.githubusercontent.com/EssentialsX/Essentials/refs/heads/2.x/Essentials/src/main/resources/config.yml
|
||||
```
|
||||
|
||||
Or as a single line:
|
||||
|
||||
```yaml
|
||||
environment:
|
||||
DOWNLOAD_EXTRA_CONFIGS: "plugins/WorldEdit<https://example.com/worldedit.yml,config<https://example.com/another.yml"
|
||||
```
|
||||
|
||||
The files will be downloaded to `/data/` relative paths, so `plugins/WorldEdit` will be saved as `/data/plugins/WorldEdit/config.yml`.
|
||||
|
||||
!!! note
|
||||
The downloaded files can be further processed using [environment variable replacement](interpolating.md) or [patch definitions](interpolating.md#patching-existing-files)
|
||||
|
||||
## Enable timestamps in init logs
|
||||
|
||||
Before the container starts the Minecraft Server its output is prefixed with `[init]`, such as
|
||||
|
||||
```
|
||||
[init] Starting the Minecraft server...
|
||||
```
|
||||
|
||||
To also include the timestamp with each log, set `LOG_TIMESTAMP` to "true". The log output will then look like:
|
||||
|
||||
```
|
||||
[init] 2022-02-05 16:58:33+00:00 Starting the Minecraft server...
|
||||
```
|
||||
## Running with a custom server JAR
|
||||
|
||||
If you would like to run a custom server JAR, set `-e TYPE=CUSTOM` and pass the custom server
|
||||
JAR via `CUSTOM_SERVER`. It can either be a URL or a container path to an existing JAR file.
|
||||
|
||||
If it is a URL, it will only be downloaded into the `/data` directory if it wasn't already. As
|
||||
such, if you need to upgrade or re-download the JAR, then you will need to stop the container,
|
||||
remove the file from the container's `/data` directory, and start again.
|
||||
|
||||
## Force re-download of the server file
|
||||
|
||||
For VANILLA, FORGE, BUKKIT, SPIGOT, PAPER, CURSEFORGE, SPONGEVANILLA server types, set
|
||||
`$FORCE_REDOWNLOAD` to some value (e.g. 'true) to force a re-download of the server file for
|
||||
the particular server type. by adding a `-e FORCE_REDOWNLOAD=true` to your command-line.
|
||||
|
||||
For example, with PaperSpigot, it would look something like this:
|
||||
|
||||
```
|
||||
docker run -d -v /path/on/host:/data \
|
||||
-e TYPE=PAPER -e FORCE_REDOWNLOAD=true \
|
||||
-p 25565:25565 -e EULA=TRUE --name mc itzg/minecraft-server
|
||||
```
|
||||
|
||||
## Running as alternate user/group ID
|
||||
|
||||
By default, the container will switch to and run the Minecraft server as user ID 1000 and group ID 1000; however, that can be changed by setting the environment variables `UID` and `GID`.
|
||||
|
||||
The startup will also skip user switching if the `--user`/`-u` argument is passed to `docker run` or `user` is set on the compose service.
|
||||
|
||||
## Extra Arguments
|
||||
|
||||
Arguments that would usually be passed to the jar file (those which are written after the filename) can be passed via the `EXTRA_ARGS` environment variable.
|
||||
|
||||
See [Custom worlds directory path](../misc/world-data.md#custom-worlds-directory-path) for an example.
|
||||
|
||||
## Interactive and Color Console
|
||||
|
||||
When RCON is enabled, which is the default, and [TTY](https://docs.docker.com/compose/compose-file/05-services/#tty) is enabled on the container, then some server types will output colorized logs and provide a fully interactive console. To access the interactive console, use [`docker attach`](https://docs.docker.com/engine/reference/commandline/container_attach/) (not `exec`). When finished, make sure to use the sequence Control-P, Control-Q to detach without stopping the container.
|
||||
|
||||
If this behavior interferes with the log content, then disable TTY or remove the setting entirely since the default is disabled. In a compose file, set the service's `tty` parameter to `false`. On the `docker run` command-line remove the `-t` argument.
|
||||
|
||||
## Server Shutdown Options
|
||||
|
||||
To allow time for players to finish what they're doing during a graceful server shutdown, set `STOP_SERVER_ANNOUNCE_DELAY` to a number of seconds to delay after an announcement is posted by the server.
|
||||
|
||||
!!! warning "Increase stop grace period"
|
||||
|
||||
The Docker stop grace period must be increased to a value longer than the announce delay. The value to use that is longer than announce delay will vary based upon the amount of time it takes for final world data saving. If the container exits with exit code 137, then that indicates a longer grace period is needed.
|
||||
|
||||
The grace period can be increased using [the -t option on docker-compose down](https://docs.docker.com/compose/reference/down/) or set the [stop_grace_period](https://docs.docker.com/compose/compose-file/05-services/#stop_grace_period) in the compose file.
|
||||
|
||||
The `STOP_SERVER_ANNOUNCE_DELAY` can be bypassed by sending a `SIGUSR1` signal to the `mc-server-runner` process.
|
||||
|
||||
`docker`:
|
||||
|
||||
docker stop --signal SIGUSR1 mc
|
||||
|
||||
`docker compose`:
|
||||
|
||||
docker compose kill --signal SIGUSR1
|
||||
|
||||
## Configuration Options for Minecraft Server Health Monitoring
|
||||
|
||||
The image tags include specific variables to simplify configuration for monitoring the health of a Minecraft server:
|
||||
|
||||
- `-e SERVER_HOST=localhost` : This variable sets the host address of the Minecraft server to be monitored. By default, it is set to `localhost`, but you can replace it with the actual hostname or IP address of your Minecraft server.
|
||||
|
||||
- `-e SERVER_PORT=25565` : This variable sets the port number on which the Minecraft server is running. By default, Minecraft servers run on port 25565, but if your server is configured to use a different port, you should replace `25565` with the correct port number. This helps the monitoring system to accurately check the health status of the Minecraft server on the specified port.
|
||||
|
||||
## OpenJ9 Specific Options
|
||||
|
||||
The openj9 image tags include specific variables to simplify configuration:
|
||||
|
||||
- `-e TUNE_VIRTUALIZED=TRUE` : enables the option to
|
||||
[optimize for virtualized environments](https://www.eclipse.org/openj9/docs/xtunevirtualized/)
|
||||
- `-e TUNE_NURSERY_SIZES=TRUE` : configures nursery sizes where the initial size is 50%
|
||||
of the `MAX_MEMORY` and the max size is 80%.
|
||||
|
||||
## Enabling rolling logs
|
||||
|
||||
By default the vanilla log file will grow without limit. The logger can be reconfigured to use a rolling log files strategy by using:
|
||||
|
||||
```
|
||||
-e ENABLE_ROLLING_LOGS=true
|
||||
```
|
||||
|
||||
> **NOTE** this will interfere with interactive/color consoles [as described in the section above](#interactive-and-color-console)
|
||||
|
||||
## Timezone Configuration
|
||||
|
||||
You can configure the timezone to match yours by setting the `TZ` environment variable:
|
||||
|
||||
-e TZ=Europe/London
|
||||
|
||||
such as:
|
||||
|
||||
docker run -d -it -e TZ=Europe/London -p 25565:25565 --name mc itzg/minecraft-server
|
||||
|
||||
Or mounting `/etc/timezone` as readonly (not supported on Windows):
|
||||
|
||||
-v /etc/timezone:/etc/timezone:ro
|
||||
|
||||
such as:
|
||||
|
||||
docker run -d -it -v /etc/timezone:/etc/timezone:ro -p 25565:25565 --name mc itzg/minecraft-server
|
||||
|
||||
## HTTP Proxy
|
||||
|
||||
You may configure the use of an HTTP/HTTPS proxy by passing the proxy's "host:port" via the environment variable `PROXY`. In [the example compose file](https://github.com/itzg/docker-minecraft-server/blob/master/examples/docker-compose-proxied.yml) it references a Squid proxy. The host and port can be separately passed via the environment variables `PROXY_HOST` and `PROXY_PORT`. A `|` delimited list of hosts to exclude from proxying can be passed via `PROXY_NON_PROXY_HOSTS`.
|
||||
|
||||
## Using "noconsole" option
|
||||
|
||||
Some older versions (pre-1.14) of Spigot required `--noconsole` to be passed when detaching stdin, which can be done by setting `-e CONSOLE=FALSE`.
|
||||
|
||||
## Explicitly disable GUI
|
||||
|
||||
Some older servers get confused and think that the GUI interface is enabled. You can explicitly
|
||||
disable that by passing `-e GUI=FALSE`.
|
||||
|
||||
## Stop Duration
|
||||
|
||||
When the container is signaled to stop, the Minecraft process wrapper will attempt to send a "stop" command via RCON or console and waits for the process to gracefully finish. By default, it waits 60 seconds, but that duration can be configured by setting the environment variable `STOP_DURATION` to the number of seconds.
|
||||
|
||||
Be sure to also increase the shutdown timeout described [here for docker compose down](https://docs.docker.com/reference/cli/docker/compose/down/#options) and [here for docker stop](https://docs.docker.com/reference/cli/docker/container/stop/#options).
|
||||
|
||||
## Setup only
|
||||
|
||||
If you are using a host-attached data directory, then you can have the image setup the Minecraft server files and stop prior to launching the server process by setting `SETUP_ONLY` to `true`.
|
||||
|
||||
## Enable Flare Flags
|
||||
|
||||
To enable the JVM flags required to fully support the [Flare profiling suite](https://blog.airplane.gg/flare), set the following variable:
|
||||
|
||||
-e USE_FLARE_FLAGS=true
|
||||
|
||||
Flare is built-in to Pufferfish/Purpur, and is available in [plugin form](https://github.com/TECHNOVE/FlarePlugin) for other server types.
|
||||
|
||||
## Enable support for optimized SIMD operations
|
||||
|
||||
To enable support for optimized SIMD operations, the JVM flag can be set with the following variable:
|
||||
|
||||
-e USE_SIMD_FLAGS=true
|
||||
|
||||
SIMD optimized operations are supported by Pufferfish and Purpur.
|
||||
|
||||
## Downloading extra configuration files
|
||||
|
||||
You can download additional configuration files or other resources before the server starts by using the `DOWNLOAD_EXTRA_CONFIGS` environment variable. This is useful for downloading configs that you want to patch or modify during the startup process.
|
||||
|
||||
The format uses a `<` separator between the destination path and the source URL:
|
||||
|
||||
```
|
||||
DOWNLOAD_EXTRA_CONFIGS=destination<source_url[,destination2<source_url2,...]
|
||||
```
|
||||
|
||||
For example, to download configuration files for plugins:
|
||||
|
||||
```yaml
|
||||
environment:
|
||||
DOWNLOAD_EXTRA_CONFIGS: |
|
||||
plugins/WorldEdit<https://raw.githubusercontent.com/EngineHub/WorldEdit/refs/heads/version/7.3.x/worldedit-bukkit/src/main/resources/defaults/config.yml
|
||||
plugins/EssentialsX<https://raw.githubusercontent.com/EssentialsX/Essentials/refs/heads/2.x/Essentials/src/main/resources/config.yml
|
||||
```
|
||||
|
||||
Or as a single line:
|
||||
|
||||
```yaml
|
||||
environment:
|
||||
DOWNLOAD_EXTRA_CONFIGS: "plugins/WorldEdit<https://example.com/worldedit.yml,config<https://example.com/another.yml"
|
||||
```
|
||||
|
||||
The files will be downloaded to `/data/` relative paths, so `plugins/WorldEdit` will be saved as `/data/plugins/WorldEdit/config.yml`.
|
||||
|
||||
!!! note
|
||||
The downloaded files can be further processed using [environment variable replacement](interpolating.md) or [patch definitions](interpolating.md#patching-existing-files)
|
||||
|
||||
## Enable timestamps in init logs
|
||||
|
||||
Before the container starts the Minecraft Server its output is prefixed with `[init]`, such as
|
||||
|
||||
```
|
||||
[init] Starting the Minecraft server...
|
||||
```
|
||||
|
||||
To also include the timestamp with each log, set `LOG_TIMESTAMP` to "true". The log output will then look like:
|
||||
|
||||
```
|
||||
[init] 2022-02-05 16:58:33+00:00 Starting the Minecraft server...
|
||||
```
|
||||
|
||||
BIN
docs/img/modrinth-copy-project-id.png
Normal file
BIN
docs/img/modrinth-copy-project-id.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 17 KiB |
@@ -133,6 +133,14 @@ The newline delimiting allows for compose file usage like:
|
||||
https://download.geysermc.org/v2/projects/floodgate/versions/latest/builds/latest/downloads/spigot
|
||||
```
|
||||
|
||||
!!! note "Auto-removal"
|
||||
|
||||
Entries that are removed from the `MODS` or `PLUGINS` list will be automatically removed from the `mods` or `plugins` directory. This is useful for removing mods/plugins that are no longer needed. An empty `MODS` or `PLUGINS` list will remove all mods/plugins.
|
||||
|
||||
!!! note "Disable processing"
|
||||
|
||||
To temporarily disable processing of the `MODS` or `PLUGINS` list, then comment out the `MODS` or `PLUGINS` environment variable.
|
||||
|
||||
## Mod/Plugin URL Listing File
|
||||
|
||||
As an alternative to `MODS`/`PLUGINS`, the variable `MODS_FILE` or `PLUGINS_FILE` can be set with the container path or URL of a text file listing a mod/plugin URLs on each line. For example, the following
|
||||
|
||||
@@ -2,28 +2,46 @@
|
||||
|
||||
[Modrinth](https://modrinth.com/) is an open source modding platform with a clean, easy to use website for finding [Fabric, Forge, etc mods](https://modrinth.com/mods) and [Paper, etc plugins](https://modrinth.com/plugins), and [datapacks](https://modrinth.com/datapacks). At startup, the container will automatically locate and download the newest versions of mod/plugin files that correspond to the `TYPE` and `VERSION` in use. Older file versions downloaded previously will automatically be cleaned up.
|
||||
|
||||
- **MODRINTH_PROJECTS** : comma or newline separated list of project slugs (short name) or IDs. The project ID is located in the "Technical information" section. The project slug is the part of the URL that follows `/mod/`, `/plugin/`, or `/datapack/`. For example:
|
||||
```
|
||||
## Usage
|
||||
|
||||
To use this feature, set the environment variable `MODRINTH_PROJECTS` to a comma or newline separated list of project slugs (short name) or IDs.
|
||||
|
||||
!!! tip "Project ID"
|
||||
|
||||
The project ID can be copied to the clipboard from the project page menu:
|
||||
|
||||

|
||||
|
||||
!!! tip "Project Slug"
|
||||
|
||||
The project slug is the part of the URL that follows `/mod/`, `/plugin/`, or `/datapack/`. For example:
|
||||
|
||||
```
|
||||
https://modrinth.com/mod/fabric-api
|
||||
----------
|
||||
|
|
||||
+-- project slug
|
||||
```
|
||||
Also, a specific version (or release type) can be declared adding a colon and then the version id, version number/name, or release type after the project slug. The version ID or number can be found in the 'Metadata' section. Valid release types are `release`, `beta`, `alpha`.
|
||||
|
||||
To select a datapack from a Modrinth project, prefix the entry with "datapack:". When running a vanilla server, this is optional since only datapacks will be available for vanilla servers to select.
|
||||
|
||||
You can also reference a file containing project entries by prefixing the **container path** path with `@`.
|
||||
|
||||
| Description | Example projects entry |
|
||||
|---------------------------------|-------------------------------------------------------|
|
||||
| Select latest version | `fabric-api` |
|
||||
| Select specific version | `fabric-api:bQZpGIz0`<br/>`fabric-api:0.119.2+1.21.4` |
|
||||
| Select latest beta version | `fabric-api:beta` |
|
||||
| Latest version using project ID | `P7dR8mSH` |
|
||||
| Latest version of datapack | `datapack:terralith` |
|
||||
| Specific version of datapack | `datapack:terralith:2.5.5` |
|
||||
| Projects Listing File | `@/path/to/modrinth-mods.txt` |
|
||||
```
|
||||
|
||||
Also, a specific version (or release type) can be declared by adding a colon and then the version id, version number/name, or release type after the project slug. The version ID or number can be found in the 'Metadata' section. Valid release types are `release`, `beta`, `alpha`.
|
||||
|
||||
To select a datapack from a Modrinth project, prefix the entry with "datapack:". When running a vanilla server, this is optional since only datapacks will be available for vanilla servers to select.
|
||||
|
||||
You can also reference a file containing project entries by prefixing the **container path** path with `@`.
|
||||
|
||||
### Examples
|
||||
|
||||
| Description | Example projects entry |
|
||||
|---------------------------------|-------------------------------------------------------|
|
||||
| Select latest version | `fabric-api` |
|
||||
| Select specific version | `fabric-api:bQZpGIz0`<br/>`fabric-api:0.119.2+1.21.4` |
|
||||
| Select latest beta version | `fabric-api:beta` |
|
||||
| Latest version using project ID | `P7dR8mSH` |
|
||||
| Latest version of datapack | `datapack:terralith` |
|
||||
| Specific version of datapack | `datapack:terralith:2.5.5` |
|
||||
| Projects Listing File | `@/path/to/modrinth-mods.txt` |
|
||||
|
||||
### Notes
|
||||
|
||||
!!! info "More about listing files"
|
||||
|
||||
@@ -42,6 +60,14 @@
|
||||
datapack:terralith
|
||||
```
|
||||
|
||||
!!! note "Auto-removal"
|
||||
|
||||
Entries that are removed from the `MODRINTH_PROJECTS` list will be automatically removed from the `mods` or `plugins` directory. This is useful for removing mods/plugins that are no longer needed. An empty `MODRINTH_PROJECTS` list will remove all mods/plugins.
|
||||
|
||||
!!! note "Disable processing"
|
||||
|
||||
To temporarily disable processing of the `MODRINTH_PROJECTS` list, then comment out the `MODRINTH_PROJECTS` environment variable.
|
||||
|
||||
## Version from Projects
|
||||
|
||||
When the environment variable `VERSION_FROM_MODRINTH_PROJECTS` is set to "true" the Minecraft [`VERSION`](../versions/minecraft.md) will be automatically determined by looking at the most recent version of Minecraft that is supported by all the projects provided in `MODRINTH_PROJECTS`.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
mkdocs-material == 9.6.20
|
||||
mkdocs-material == 9.6.21
|
||||
mkdocs-autorefs == 1.4.3
|
||||
mkdocstrings[python] == 0.30.1
|
||||
mkdocs-literate-nav == 0.6.2
|
||||
|
||||
@@ -1,197 +1,204 @@
|
||||
{
|
||||
"globalExcludes": [
|
||||
"advancement-plaques",
|
||||
"ambience-music-mod",
|
||||
"ambientsounds",
|
||||
"appleskin",
|
||||
"armor-chroma",
|
||||
"armor-toughness-bar",
|
||||
"audio-extension-for-fancymenu-forge",
|
||||
"auudio-forge",
|
||||
"beehivetooltips",
|
||||
"better-advancements",
|
||||
"better-foliage",
|
||||
"better-modlist-neoforge",
|
||||
"better-placement",
|
||||
"better-sprinting",
|
||||
"better-third-person",
|
||||
"better-tips-nbt-tag",
|
||||
"betterf3",
|
||||
"betterfps",
|
||||
"bettergrassify",
|
||||
"biomeinfo",
|
||||
"block-drops-jei-addon",
|
||||
"blur-forge",
|
||||
"cartography",
|
||||
"chattoggle",
|
||||
"cherished-worlds",
|
||||
"chunk-animator",
|
||||
"clickable-advancements",
|
||||
"compass-coords",
|
||||
"config-menus-forge",
|
||||
"configured",
|
||||
"controllable",
|
||||
"controlling",
|
||||
"craftpresence",
|
||||
"ctm",
|
||||
"custom-main-menu",
|
||||
"dark-mode-everywhere",
|
||||
"defensive-measures",
|
||||
"ding",
|
||||
"distraction-free-recipes",
|
||||
"drippy-loading-screen",
|
||||
"dynamic-surroundings",
|
||||
"dynamic-view",
|
||||
"dynamiclights-reforged",
|
||||
"easiervillagertrading",
|
||||
"effective-forge",
|
||||
"embeddium",
|
||||
"embeddium-extension",
|
||||
"embeddium-extras",
|
||||
"enchantment-descriptions",
|
||||
"enhanced-boss-bars",
|
||||
"enhancedvisuals",
|
||||
"entity-collision-fps-fix",
|
||||
"entity-model-features",
|
||||
"entity-texture-features-fabric",
|
||||
"entityculling",
|
||||
"equipment-compare",
|
||||
"essential-mod",
|
||||
"euphoria-patches",
|
||||
"extreme-sound-muffler",
|
||||
"ezzoom",
|
||||
"fading-night-vision",
|
||||
"falling-leaves-forge",
|
||||
"fancymenu",
|
||||
"farsight",
|
||||
"faster-ladder-climbing",
|
||||
"fastquit",
|
||||
"fastquit-forge",
|
||||
"flerovium",
|
||||
"foamfix-optimization-mod",
|
||||
"forgeskyboxes",
|
||||
"fps-reducer",
|
||||
"free-cam",
|
||||
"ftb-backups-2",
|
||||
"fullscreen-windowed-borderless-for-minecraft",
|
||||
"hwyla",
|
||||
"iceberg",
|
||||
"ignitioncoil",
|
||||
"illager-raid-music",
|
||||
"inmisaddon",
|
||||
"iris-flywheel-compat",
|
||||
"irisshaders",
|
||||
"item-borders",
|
||||
"item-highlighter",
|
||||
"item-obliterator",
|
||||
"itemphysic-lite",
|
||||
"itemzoom",
|
||||
"just-enough-harvestcraft",
|
||||
"just-enough-mekanism-multiblocks",
|
||||
"just-enough-resources-jer",
|
||||
"just-zoom",
|
||||
"legendary-tooltips",
|
||||
"lighty",
|
||||
"loot-capacitor-tooltips",
|
||||
"loot-journal",
|
||||
"lootbeams",
|
||||
"magnesium-extras",
|
||||
"make-bubbles-pop",
|
||||
"menumobs",
|
||||
"minecraft-rich-presence",
|
||||
"model-gap-fix",
|
||||
"more-overlays",
|
||||
"mouse-tweaks",
|
||||
"neat",
|
||||
"nekos-enchanted-books",
|
||||
"no-nv-flash",
|
||||
"no-recipe-book",
|
||||
"not-enough-animations",
|
||||
"oculus",
|
||||
"ok-zoomer",
|
||||
"oldjavawarning",
|
||||
"overloaded-armor-bar",
|
||||
"packmenu",
|
||||
"packmodemenu",
|
||||
"particle-effects",
|
||||
"particle-effects-reforged",
|
||||
"particle-rain",
|
||||
"particular",
|
||||
"particular-reforged",
|
||||
"reauth",
|
||||
"rebind-narrator",
|
||||
"reblured",
|
||||
"reeses-sodium-options",
|
||||
"reforgium",
|
||||
"resource-reloader",
|
||||
"rubidium",
|
||||
"rubidium-extra",
|
||||
"ryoamiclights",
|
||||
"schematica",
|
||||
"seamless-loading-screen",
|
||||
"seamless-loading-screen-forge",
|
||||
"searchables",
|
||||
"seasonhud",
|
||||
"shulkerboxviewer",
|
||||
"skin-layers-3d",
|
||||
"smart-hud",
|
||||
"smithing-template-viewer",
|
||||
"smooth-font",
|
||||
"smoothwater",
|
||||
"sodium",
|
||||
"sodium-extra",
|
||||
"sodium-options-api",
|
||||
"sodium-rubidium-occlusion-culling-fix",
|
||||
"sound",
|
||||
"sound-filters",
|
||||
"sound-physics-remastered",
|
||||
"sound-reloader",
|
||||
"stellar-sky",
|
||||
"swingthroughgrass",
|
||||
"textrues-embeddium-options",
|
||||
"textrues-rubidium-options",
|
||||
"thaumic-jei",
|
||||
"tips",
|
||||
"toast-control",
|
||||
"torohealth-damage-indicators",
|
||||
"true-darkness",
|
||||
"ungrab-mouse-mod",
|
||||
"vanillafix",
|
||||
"visuality",
|
||||
"waila-harvestability",
|
||||
"waila-stages",
|
||||
"wakes-reforged",
|
||||
"wawla",
|
||||
"welcome-screen",
|
||||
"xaeroplus",
|
||||
"yungs-menu-tweaks",
|
||||
"zume"
|
||||
],
|
||||
"modpacks": {
|
||||
"all-of-fabric-6": {
|
||||
"forceIncludes": ["revelationary"]
|
||||
},
|
||||
"beyond-depth": {
|
||||
"forceIncludes": ["particular-reforged"]
|
||||
},
|
||||
"create-arcane-engineering": {
|
||||
"forceIncludes": ["just-enough-resources-jer"]
|
||||
},
|
||||
"skyfactory-5": {
|
||||
"forceIncludes": [
|
||||
"colored-torches",
|
||||
"dye-mob-dye",
|
||||
"openstairs"
|
||||
]
|
||||
},
|
||||
"valhelsia-5": {
|
||||
"excludes": ["modernfix"]
|
||||
},
|
||||
"mc-eternal-2": {
|
||||
"forceIncludes": [
|
||||
"particular-reforged",
|
||||
"mob-player-animator"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
{
|
||||
"globalExcludes": [
|
||||
"advancement-plaques",
|
||||
"ambience-music-mod",
|
||||
"ambientsounds",
|
||||
"appleskin",
|
||||
"armor-chroma",
|
||||
"armor-toughness-bar",
|
||||
"audio-extension-for-fancymenu-forge",
|
||||
"auudio-forge",
|
||||
"beehivetooltips",
|
||||
"better-advancements",
|
||||
"better-foliage",
|
||||
"better-modlist-neoforge",
|
||||
"better-placement",
|
||||
"better-sprinting",
|
||||
"better-third-person",
|
||||
"better-tips-nbt-tag",
|
||||
"betterf3",
|
||||
"betterfps",
|
||||
"bettergrassify",
|
||||
"biomeinfo",
|
||||
"block-drops-jei-addon",
|
||||
"blur-forge",
|
||||
"cartography",
|
||||
"chattoggle",
|
||||
"cherished-worlds",
|
||||
"chunk-animator",
|
||||
"clickable-advancements",
|
||||
"colorwheel",
|
||||
"colorwheel-patcher",
|
||||
"compass-coords",
|
||||
"config-menus-forge",
|
||||
"configured",
|
||||
"controllable",
|
||||
"controlling",
|
||||
"craftpresence",
|
||||
"ctm",
|
||||
"custom-main-menu",
|
||||
"dark-mode-everywhere",
|
||||
"defensive-measures",
|
||||
"ding",
|
||||
"distraction-free-recipes",
|
||||
"drippy-loading-screen",
|
||||
"dynamic-surroundings",
|
||||
"dynamic-view",
|
||||
"dynamiclights-reforged",
|
||||
"easiervillagertrading",
|
||||
"effective-forge",
|
||||
"embeddium",
|
||||
"embeddium-extension",
|
||||
"embeddium-extras",
|
||||
"enchantment-descriptions",
|
||||
"enhanced-boss-bars",
|
||||
"enhancedvisuals",
|
||||
"entity-collision-fps-fix",
|
||||
"entity-model-features",
|
||||
"entity-texture-features-fabric",
|
||||
"entityculling",
|
||||
"equipment-compare",
|
||||
"essential-mod",
|
||||
"euphoria-patches",
|
||||
"extreme-sound-muffler",
|
||||
"ezzoom",
|
||||
"fading-night-vision",
|
||||
"falling-leaves-forge",
|
||||
"fancymenu",
|
||||
"farsight",
|
||||
"faster-ladder-climbing",
|
||||
"fastquit",
|
||||
"fastquit-forge",
|
||||
"flerovium",
|
||||
"foamfix-optimization-mod",
|
||||
"forgeskyboxes",
|
||||
"fps-reducer",
|
||||
"free-cam",
|
||||
"ftb-backups-2",
|
||||
"fullscreen-windowed-borderless-for-minecraft",
|
||||
"hwyla",
|
||||
"iceberg",
|
||||
"ignitioncoil",
|
||||
"illager-raid-music",
|
||||
"inmisaddon",
|
||||
"iris-flywheel-compat",
|
||||
"irisshaders",
|
||||
"item-borders",
|
||||
"item-highlighter",
|
||||
"item-obliterator",
|
||||
"itemphysic-lite",
|
||||
"itemzoom",
|
||||
"just-enough-harvestcraft",
|
||||
"just-enough-mekanism-multiblocks",
|
||||
"just-enough-resources-jer",
|
||||
"just-zoom",
|
||||
"legendary-tooltips",
|
||||
"lighty",
|
||||
"loot-capacitor-tooltips",
|
||||
"loot-journal",
|
||||
"lootbeams",
|
||||
"magnesium-extras",
|
||||
"make-bubbles-pop",
|
||||
"menumobs",
|
||||
"minecraft-rich-presence",
|
||||
"model-gap-fix",
|
||||
"more-overlays",
|
||||
"mouse-tweaks",
|
||||
"neat",
|
||||
"nekos-enchanted-books",
|
||||
"no-nv-flash",
|
||||
"no-recipe-book",
|
||||
"not-enough-animations",
|
||||
"oculus",
|
||||
"ok-zoomer",
|
||||
"oldjavawarning",
|
||||
"overloaded-armor-bar",
|
||||
"packmenu",
|
||||
"packmodemenu",
|
||||
"particle-effects",
|
||||
"particle-effects-reforged",
|
||||
"particle-rain",
|
||||
"particular",
|
||||
"particular-reforged",
|
||||
"reauth",
|
||||
"rebind-narrator",
|
||||
"reblured",
|
||||
"reeses-sodium-options",
|
||||
"reforgium",
|
||||
"resource-reloader",
|
||||
"rubidium",
|
||||
"rubidium-extra",
|
||||
"ryoamiclights",
|
||||
"schematica",
|
||||
"seamless-loading-screen",
|
||||
"seamless-loading-screen-forge",
|
||||
"searchables",
|
||||
"seasonhud",
|
||||
"shulkerboxviewer",
|
||||
"skin-layers-3d",
|
||||
"smart-hud",
|
||||
"smithing-template-viewer",
|
||||
"smooth-font",
|
||||
"smoothwater",
|
||||
"sodium",
|
||||
"sodium-extra",
|
||||
"sodium-options-api",
|
||||
"sodium-rubidium-occlusion-culling-fix",
|
||||
"sound",
|
||||
"sound-filters",
|
||||
"sound-physics-remastered",
|
||||
"sound-reloader",
|
||||
"stellar-sky",
|
||||
"swingthroughgrass",
|
||||
"textrues-embeddium-options",
|
||||
"textrues-rubidium-options",
|
||||
"thaumic-jei",
|
||||
"tips",
|
||||
"toast-control",
|
||||
"torohealth-damage-indicators",
|
||||
"true-darkness",
|
||||
"ungrab-mouse-mod",
|
||||
"vanillafix",
|
||||
"visuality",
|
||||
"waila-harvestability",
|
||||
"waila-stages",
|
||||
"wakes-reforged",
|
||||
"wawla",
|
||||
"welcome-screen",
|
||||
"xaeroplus",
|
||||
"yungs-menu-tweaks",
|
||||
"zume"
|
||||
],
|
||||
"modpacks": {
|
||||
"all-of-fabric-6": {
|
||||
"forceIncludes": ["revelationary"]
|
||||
},
|
||||
"beyond-depth": {
|
||||
"forceIncludes": ["particular-reforged"]
|
||||
},
|
||||
"create-arcane-engineering": {
|
||||
"forceIncludes": ["just-enough-resources-jer"]
|
||||
},
|
||||
"mc-eternal-2": {
|
||||
"forceIncludes": [
|
||||
"particular-reforged",
|
||||
"mob-player-animator"
|
||||
]
|
||||
},
|
||||
"reclamation-reclaim-the-world": {
|
||||
"forceIncludes": [
|
||||
"more-overlays-updated"
|
||||
]
|
||||
},
|
||||
"skyfactory-5": {
|
||||
"forceIncludes": [
|
||||
"colored-torches",
|
||||
"dye-mob-dye",
|
||||
"openstairs"
|
||||
]
|
||||
},
|
||||
"valhelsia-5": {
|
||||
"excludes": ["modernfix"]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -26,6 +26,7 @@
|
||||
"clickadv",
|
||||
"cobblemon-ui-tweaks",
|
||||
"compass-coords",
|
||||
"colorwheel",
|
||||
"connectedness",
|
||||
"connector",
|
||||
"continuity",
|
||||
|
||||
@@ -25,4 +25,4 @@ isDebugging && set -x
|
||||
isNumericElseSetToDefault RCON_CMDS_PERIOD 10
|
||||
checkIfNotZeroElseSetToDefault RCON_CMDS_PERIOD 10
|
||||
|
||||
/usr/local/bin/rcon-cmds-daemon.sh &
|
||||
"$(dirname "$0")/auto/rcon-cmds-daemon.sh" &
|
||||
|
||||
@@ -3,10 +3,8 @@
|
||||
set -e -o pipefail
|
||||
|
||||
: "${REMOVE_OLD_MODS:=false}"
|
||||
: "${MODS:=}"
|
||||
: "${MODS_OUT_DIR:=/data/mods}"
|
||||
: "${MODS_FILE:=}"
|
||||
: "${PLUGINS:=}"
|
||||
: "${PLUGINS_OUT_DIR:=/data/plugins}"
|
||||
: "${PLUGINS_FILE:=}"
|
||||
: "${REMOVE_OLD_MODS_DEPTH:=1} "
|
||||
@@ -94,7 +92,7 @@ fi
|
||||
|
||||
function handleListings() {
|
||||
if usesMods && usesPlugins; then
|
||||
if [[ "$MODS" ]]; then
|
||||
if [[ -v MODS ]]; then
|
||||
|
||||
ensureRemoveAllModsOff "MODS is set"
|
||||
|
||||
@@ -105,7 +103,7 @@ function handleListings() {
|
||||
--to="$MODS_OUT_DIR" \
|
||||
"$MODS"
|
||||
fi
|
||||
if [[ "$PLUGINS" ]]; then
|
||||
if [[ -v PLUGINS ]]; then
|
||||
ensureRemoveAllModsOff "PLUGINS is set"
|
||||
mkdir -p "$PLUGINS_OUT_DIR"
|
||||
mc-image-helper mcopy \
|
||||
@@ -140,14 +138,14 @@ function handleListings() {
|
||||
outDir="$PLUGINS_OUT_DIR"
|
||||
fi
|
||||
|
||||
if [[ "$MODS" || "$PLUGINS" ]]; then
|
||||
if [[ -v MODS || -v PLUGINS ]]; then
|
||||
ensureRemoveAllModsOff "MODS or PLUGINS is set"
|
||||
mkdir -p "$outDir"
|
||||
mc-image-helper mcopy \
|
||||
--glob=*.jar \
|
||||
--scope=var-list \
|
||||
--to="$outDir" \
|
||||
"$MODS" "$PLUGINS"
|
||||
"${MODS:-}" "${PLUGINS:-}"
|
||||
fi
|
||||
|
||||
if [[ "$MODS_FILE" || "$PLUGINS_FILE" ]]; then
|
||||
|
||||
Reference in New Issue
Block a user