mirror of
https://github.com/itzg/docker-minecraft-server.git
synced 2026-04-10 23:58:52 +00:00
Compare commits
1 Commits
2025.10.2
...
misc/rcon-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a465d759b8 |
4
.gitattributes
vendored
4
.gitattributes
vendored
@@ -1,2 +1,2 @@
|
|||||||
# Auto detect text files and perform LF normalization
|
# Auto detect text files and perform LF normalization
|
||||||
* text eol=lf
|
* text=lf
|
||||||
|
|||||||
20
.github/workflows/build-multiarch.yml
vendored
20
.github/workflows/build-multiarch.yml
vendored
@@ -21,8 +21,8 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
# NOTE: the "latest" variant is identified in the Docker meta step's 'latest' config
|
# NOTE: the "latest" variant is identified in the Docker meta step's 'latest' config
|
||||||
variant:
|
variant:
|
||||||
- java25
|
- java24
|
||||||
- java25-graalvm
|
- java24-graalvm
|
||||||
- java21
|
- java21
|
||||||
- java21-alpine
|
- java21-alpine
|
||||||
- java21-graalvm
|
- java21-graalvm
|
||||||
@@ -37,13 +37,13 @@ jobs:
|
|||||||
- java8-openj9
|
- java8-openj9
|
||||||
- java8-jdk
|
- java8-jdk
|
||||||
include:
|
include:
|
||||||
# JAVA 25
|
# JAVA 24
|
||||||
- variant: java25
|
- variant: java24
|
||||||
baseImage: eclipse-temurin:25-jre
|
baseImage: eclipse-temurin:24-jre
|
||||||
platforms: linux/amd64,linux/arm64
|
platforms: linux/amd64,linux/arm64
|
||||||
mcVersion: latest
|
mcVersion: latest
|
||||||
- variant: java25-graalvm
|
- variant: java24-graalvm
|
||||||
baseImage: container-registry.oracle.com/graalvm/jdk:25-ol8
|
baseImage: container-registry.oracle.com/graalvm/jdk:24-ol8
|
||||||
platforms: linux/amd64,linux/arm64
|
platforms: linux/amd64,linux/arm64
|
||||||
mcVersion: latest
|
mcVersion: latest
|
||||||
# JAVA 21:
|
# JAVA 21:
|
||||||
@@ -119,7 +119,7 @@ jobs:
|
|||||||
runs-on: ubuntu-22.04
|
runs-on: ubuntu-22.04
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v5.0.0
|
uses: actions/checkout@v4.2.2
|
||||||
with:
|
with:
|
||||||
# for build-files step
|
# for build-files step
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
@@ -186,14 +186,14 @@ jobs:
|
|||||||
tests/test.sh
|
tests/test.sh
|
||||||
|
|
||||||
- name: Login to DockerHub
|
- name: Login to DockerHub
|
||||||
uses: docker/login-action@v3.6.0
|
uses: docker/login-action@v3.5.0
|
||||||
if: env.HAS_IMAGE_REPO_ACCESS
|
if: env.HAS_IMAGE_REPO_ACCESS
|
||||||
with:
|
with:
|
||||||
username: ${{ secrets.DOCKER_USER }}
|
username: ${{ secrets.DOCKER_USER }}
|
||||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||||
|
|
||||||
- name: Login to GHCR
|
- name: Login to GHCR
|
||||||
uses: docker/login-action@v3.6.0
|
uses: docker/login-action@v3.5.0
|
||||||
if: env.HAS_IMAGE_REPO_ACCESS
|
if: env.HAS_IMAGE_REPO_ACCESS
|
||||||
with:
|
with:
|
||||||
registry: ghcr.io
|
registry: ghcr.io
|
||||||
|
|||||||
2
.github/workflows/stale-check.yml
vendored
2
.github/workflows/stale-check.yml
vendored
@@ -12,7 +12,7 @@ jobs:
|
|||||||
pull-requests: write
|
pull-requests: write
|
||||||
steps:
|
steps:
|
||||||
- name: Process Stale Issues
|
- name: Process Stale Issues
|
||||||
uses: actions/stale@v10
|
uses: actions/stale@v9
|
||||||
with:
|
with:
|
||||||
stale-issue-label: status/stale
|
stale-issue-label: status/stale
|
||||||
stale-pr-label: status/stale
|
stale-pr-label: status/stale
|
||||||
|
|||||||
2
.github/workflows/verify-pr.yml
vendored
2
.github/workflows/verify-pr.yml
vendored
@@ -50,7 +50,7 @@ jobs:
|
|||||||
runs-on: ubuntu-22.04
|
runs-on: ubuntu-22.04
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v5.0.0
|
uses: actions/checkout@v4.2.2
|
||||||
with:
|
with:
|
||||||
# for build-files step
|
# for build-files step
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
|
|||||||
173
Dockerfile
173
Dockerfile
@@ -1,91 +1,82 @@
|
|||||||
ARG BASE_IMAGE=eclipse-temurin:21-jre
|
ARG BASE_IMAGE=eclipse-temurin:21-jre
|
||||||
FROM ${BASE_IMAGE}
|
FROM ${BASE_IMAGE}
|
||||||
|
|
||||||
# hook into docker BuildKit --platform support
|
# hook into docker BuildKit --platform support
|
||||||
# see https://docs.docker.com/engine/reference/builder/#automatic-platform-args-in-the-global-scope
|
# see https://docs.docker.com/engine/reference/builder/#automatic-platform-args-in-the-global-scope
|
||||||
ARG TARGETOS
|
ARG TARGETOS
|
||||||
ARG TARGETARCH
|
ARG TARGETARCH
|
||||||
ARG TARGETVARIANT
|
ARG TARGETVARIANT
|
||||||
|
|
||||||
# The following three arg/env vars get used by the platform specific "install-packages" script
|
# The following three arg/env vars get used by the platform specific "install-packages" script
|
||||||
ARG EXTRA_DEB_PACKAGES=""
|
ARG EXTRA_DEB_PACKAGES=""
|
||||||
ARG EXTRA_DNF_PACKAGES=""
|
ARG EXTRA_DNF_PACKAGES=""
|
||||||
ARG EXTRA_ALPINE_PACKAGES=""
|
ARG EXTRA_ALPINE_PACKAGES=""
|
||||||
ARG FORCE_INSTALL_PACKAGES=1
|
ARG FORCE_INSTALL_PACKAGES=1
|
||||||
RUN --mount=target=/build,source=build \
|
RUN --mount=target=/build,source=build \
|
||||||
TARGET=${TARGETARCH}${TARGETVARIANT} \
|
TARGET=${TARGETARCH}${TARGETVARIANT} \
|
||||||
/build/run.sh install-packages
|
/build/run.sh install-packages
|
||||||
|
|
||||||
RUN --mount=target=/build,source=build \
|
RUN --mount=target=/build,source=build \
|
||||||
/build/run.sh setup-user
|
/build/run.sh setup-user
|
||||||
|
|
||||||
EXPOSE 25565
|
EXPOSE 25565
|
||||||
|
|
||||||
ARG APPS_REV=1
|
ARG APPS_REV=1
|
||||||
ARG GITHUB_BASEURL=https://github.com
|
ARG GITHUB_BASEURL=https://github.com
|
||||||
|
|
||||||
ARG EASY_ADD_VERSION=0.8.11
|
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
|
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
|
RUN chmod +x /usr/bin/easy-add
|
||||||
|
|
||||||
ARG RESTIFY_VERSION=1.7.10
|
ARG RESTIFY_VERSION=1.7.10
|
||||||
RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
|
RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
|
||||||
--var version=${RESTIFY_VERSION} --var app=restify --file {{.app}} \
|
--var version=${RESTIFY_VERSION} --var app=restify --file {{.app}} \
|
||||||
--from ${GITHUB_BASEURL}/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
|
--from ${GITHUB_BASEURL}/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
|
||||||
|
|
||||||
ARG RCON_CLI_VERSION=1.7.1
|
ARG RCON_CLI_VERSION=1.7.2
|
||||||
RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
|
RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
|
||||||
--var version=${RCON_CLI_VERSION} --var app=rcon-cli --file {{.app}} \
|
--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
|
--from ${GITHUB_BASEURL}/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
|
||||||
|
|
||||||
ARG MC_MONITOR_VERSION=0.15.6
|
ARG MC_MONITOR_VERSION=0.15.6
|
||||||
RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
|
RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
|
||||||
--var version=${MC_MONITOR_VERSION} --var app=mc-monitor --file {{.app}} \
|
--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
|
--from ${GITHUB_BASEURL}/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
|
||||||
|
|
||||||
ARG MC_SERVER_RUNNER_VERSION=1.13.4
|
ARG MC_SERVER_RUNNER_VERSION=1.13.1
|
||||||
RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
|
RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
|
||||||
--var version=${MC_SERVER_RUNNER_VERSION} --var app=mc-server-runner --file {{.app}} \
|
--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
|
--from ${GITHUB_BASEURL}/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
|
||||||
|
|
||||||
ARG MC_HELPER_VERSION=1.49.2
|
ARG MC_HELPER_VERSION=1.48.10
|
||||||
ARG MC_HELPER_BASE_URL=${GITHUB_BASEURL}/itzg/mc-image-helper/releases/download/${MC_HELPER_VERSION}
|
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
|
# used for cache busting local copy of mc-image-helper
|
||||||
ARG MC_HELPER_REV=1
|
ARG MC_HELPER_REV=1
|
||||||
RUN curl -fsSL ${MC_HELPER_BASE_URL}/mc-image-helper-${MC_HELPER_VERSION}.tgz \
|
RUN curl -fsSL ${MC_HELPER_BASE_URL}/mc-image-helper-${MC_HELPER_VERSION}.tgz \
|
||||||
| tar -C /usr/share -zxf - \
|
| 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-${MC_HELPER_VERSION}/bin/mc-image-helper /usr/bin
|
||||||
&& ln -s /usr/share/mc-image-helper/bin/mc-image-helper /usr/bin
|
|
||||||
|
VOLUME ["/data"]
|
||||||
VOLUME ["/data"]
|
WORKDIR /data
|
||||||
WORKDIR /data
|
|
||||||
|
STOPSIGNAL SIGTERM
|
||||||
STOPSIGNAL SIGTERM
|
|
||||||
|
# End user MUST set EULA and change RCON_PASSWORD
|
||||||
# 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
|
||||||
ENV TYPE=VANILLA VERSION=LATEST EULA="" UID=1000 GID=1000 LC_ALL=en_US.UTF-8
|
|
||||||
|
COPY --chmod=755 scripts/start* /
|
||||||
COPY --chmod=755 scripts/start* /image/scripts/
|
COPY --chmod=755 files/shims/ /usr/local/bin/
|
||||||
|
COPY --chmod=755 files/* /image/
|
||||||
# Backward compatible shim for those with legacy entrypoint
|
COPY --chmod=755 files/auto /auto
|
||||||
COPY --chmod=755 <<EOF /start
|
|
||||||
#!/bin/bash
|
RUN curl -fsSL -o /image/Log4jPatcher.jar https://github.com/CreeperHost/Log4jPatcher/releases/download/v1.0.1/Log4jPatcher-1.0.1.jar
|
||||||
exec /image/scripts/start
|
|
||||||
EOF
|
RUN dos2unix /start* /auto/*
|
||||||
|
|
||||||
COPY --chmod=755 scripts/auto/* /image/scripts/auto/
|
ENTRYPOINT [ "/start" ]
|
||||||
COPY --chmod=755 scripts/shims/* /image/scripts/shims/
|
HEALTHCHECK --start-period=2m --retries=2 --interval=30s CMD mc-health
|
||||||
RUN ln -s /image/scripts/shims/* /usr/local/bin/
|
|
||||||
COPY --chmod=755 files/* /image/
|
ARG BUILDTIME=local
|
||||||
|
ARG VERSION=local
|
||||||
RUN curl -fsSL -o /image/Log4jPatcher.jar https://github.com/CreeperHost/Log4jPatcher/releases/download/v1.0.1/Log4jPatcher-1.0.1.jar
|
ARG REVISION=local
|
||||||
|
RUN echo "buildtime=${BUILDTIME}\nversion=${VERSION}\nrevision=${REVISION}" > /etc/image.properties
|
||||||
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,139 +1,143 @@
|
|||||||
# JVM Options
|
# JVM Options
|
||||||
|
|
||||||
## Memory Limit
|
## Memory Limit
|
||||||
|
|
||||||
By default, the image declares an initial and maximum Java memory-heap limit of 1 GB. There are several ways to adjust the memory settings:
|
By default, the image declares an initial and maximum Java memory-heap limit of 1 GB. There are several ways to adjust the memory settings:
|
||||||
|
|
||||||
- `MEMORY`: "1G" by default, can be used to adjust both initial (`Xms`) and max (`Xmx`) memory heap settings of the JVM
|
- `MEMORY`: "1G" by default, can be used to adjust both initial (`Xms`) and max (`Xmx`) memory heap settings of the JVM
|
||||||
- `INIT_MEMORY`: independently sets the initial heap size
|
- `INIT_MEMORY`: independently sets the initial heap size
|
||||||
- `MAX_MEMORY`: independently sets the max heap size
|
- `MAX_MEMORY`: independently sets the max heap size
|
||||||
|
|
||||||
The values of all three are passed directly to the JVM and support format/units as `<size>[g|G|m|M|k|K]`.
|
The values of all three are passed directly to the JVM and support format/units as `<size>[g|G|m|M|k|K]`.
|
||||||
|
|
||||||
!!! example "Using docker run"
|
!!! example "Using docker run"
|
||||||
|
|
||||||
```
|
```
|
||||||
-e MEMORY=2G
|
-e MEMORY=2G
|
||||||
```
|
```
|
||||||
|
|
||||||
or to use init and max memory:
|
or to use init and max memory:
|
||||||
|
|
||||||
```
|
```
|
||||||
-e INIT_MEMORY=1G -e MAX_MEMORY=4G
|
-e INIT_MEMORY=1G -e MAX_MEMORY=4G
|
||||||
```
|
```
|
||||||
|
|
||||||
!!! example "Using compose file"
|
!!! example "Using compose file"
|
||||||
|
|
||||||
```
|
```
|
||||||
environment:
|
environment:
|
||||||
MEMORY: 2G
|
MEMORY: 2G
|
||||||
```
|
```
|
||||||
|
|
||||||
or to use init and max memory:
|
or to use init and max memory:
|
||||||
|
|
||||||
```
|
```
|
||||||
environment:
|
environment:
|
||||||
INIT_MEMORY: 1G
|
INIT_MEMORY: 1G
|
||||||
MAX_MEMORY: 4G
|
MAX_MEMORY: 4G
|
||||||
```
|
```
|
||||||
|
|
||||||
To let the JVM calculate the heap size from the container declared memory limit, unset `MEMORY` with an empty value, such as `-e MEMORY=""`. By default, the JVM will use 25% of the container memory limit as the heap limit; however, as an example the following would tell the JVM to use 75% of the container limit of 4GB of memory:
|
To let the JVM calculate the heap size from the container declared memory limit, unset `MEMORY` with an empty value, such as `-e MEMORY=""`. By default, the JVM will use 25% of the container memory limit as the heap limit; however, as an example the following would tell the JVM to use 75% of the container limit of 4GB of memory:
|
||||||
|
|
||||||
!!! example "MaxRAMPercentage using compose file"
|
!!! example "MaxRAMPercentage using compose file"
|
||||||
|
|
||||||
```
|
```
|
||||||
environment:
|
environment:
|
||||||
MEMORY: ""
|
MEMORY: ""
|
||||||
JVM_XX_OPTS: "-XX:MaxRAMPercentage=75"
|
JVM_XX_OPTS: "-XX:MaxRAMPercentage=75"
|
||||||
deploy:
|
deploy:
|
||||||
resources:
|
resources:
|
||||||
limits:
|
limits:
|
||||||
memory: 4G
|
memory: 4G
|
||||||
```
|
```
|
||||||
|
|
||||||
!!! important
|
!!! important
|
||||||
The settings above only set the Java **heap** limits. Memory resource requests and limits on the overall container should also account for non-heap memory usage. An extra 25% is [a general best practice](https://dzone.com/articles/best-practices-java-memory-arguments-for-container).
|
The settings above only set the Java **heap** limits. Memory resource requests and limits on the overall container should also account for non-heap memory usage. An extra 25% is [a general best practice](https://dzone.com/articles/best-practices-java-memory-arguments-for-container).
|
||||||
|
|
||||||
## Extra JVM Options
|
## Extra JVM Options
|
||||||
|
|
||||||
General JVM options can be passed to the Minecraft Server invocation by passing a `JVM_OPTS`
|
General JVM options can be passed to the Minecraft Server invocation by passing a `JVM_OPTS`
|
||||||
environment variable. The JVM requires `-XX` options to precede `-X` options, so those can be declared in `JVM_XX_OPTS`. Both variables are space-delimited, raw JVM arguments.
|
environment variable. The JVM requires `-XX` options to precede `-X` options, so those can be declared in `JVM_XX_OPTS`. Both variables are space-delimited, raw JVM arguments.
|
||||||
|
|
||||||
```
|
```
|
||||||
docker run ... -e JVM_OPTS="-someJVMOption someJVMOptionValue" ...
|
docker run ... -e JVM_OPTS="-someJVMOption someJVMOptionValue" ...
|
||||||
```
|
```
|
||||||
|
|
||||||
**NOTE** When declaring `JVM_OPTS` in a compose file's `environment` section with list syntax, **do not** include the quotes:
|
**NOTE** When declaring `JVM_OPTS` in a compose file's `environment` section with list syntax, **do not** include the quotes:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
environment:
|
environment:
|
||||||
- EULA=true
|
- EULA=true
|
||||||
- JVM_OPTS=-someJVMOption someJVMOptionValue
|
- JVM_OPTS=-someJVMOption someJVMOptionValue
|
||||||
```
|
```
|
||||||
|
|
||||||
Using object syntax is recommended and more intuitive:
|
Using object syntax is recommended and more intuitive:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
environment:
|
environment:
|
||||||
EULA: "true"
|
EULA: "true"
|
||||||
JVM_OPTS: "-someJVMOption someJVMOptionValue"
|
JVM_OPTS: "-someJVMOption someJVMOptionValue"
|
||||||
# or
|
# or
|
||||||
# JVM_OPTS: -someJVMOption someJVMOptionValue
|
# JVM_OPTS: -someJVMOption someJVMOptionValue
|
||||||
```
|
```
|
||||||
|
|
||||||
As a shorthand for passing several system properties as `-D` arguments, you can instead pass a comma separated list of `name=value` or `name:value` pairs with `JVM_DD_OPTS`. (The colon syntax is provided for management platforms like Plesk that don't allow `=` inside a value.)
|
As a shorthand for passing several system properties as `-D` arguments, you can instead pass a comma separated list of `name=value` or `name:value` pairs with `JVM_DD_OPTS`. (The colon syntax is provided for management platforms like Plesk that don't allow `=` inside a value.)
|
||||||
|
|
||||||
For example, instead of passing
|
For example, instead of passing
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
JVM_OPTS: -Dfml.queryResult=confirm -Dname=value
|
JVM_OPTS: -Dfml.queryResult=confirm -Dname=value
|
||||||
```
|
```
|
||||||
|
|
||||||
you can use
|
you can use
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
JVM_DD_OPTS: fml.queryResult=confirm,name=value
|
JVM_DD_OPTS: fml.queryResult=confirm,name=value
|
||||||
```
|
```
|
||||||
|
|
||||||
## Enable Remote JMX for Profiling
|
## Enable Remote JMX for Profiling
|
||||||
|
|
||||||
To enable remote JMX, such as for profiling with VisualVM or JMC, set the environment variable `ENABLE_JMX` to "true", set `JMX_HOST` to the IP/host running the Docker container, and add a port forwarding of TCP port 7091, such as:
|
To enable remote JMX, such as for profiling with VisualVM or JMC, set the environment variable `ENABLE_JMX` to "true", set `JMX_HOST` to the IP/host running the Docker container, and add a port forwarding of TCP port 7091, such as:
|
||||||
|
|
||||||
!!! example
|
!!! example
|
||||||
|
|
||||||
With `docker run`
|
With `docker run`
|
||||||
|
|
||||||
```
|
```
|
||||||
-e ENABLE_JMX=true -e JMX_HOST=$HOSTNAME -p 7091:7091
|
-e ENABLE_JMX=true -e JMX_HOST=$HOSTNAME -p 7091:7091
|
||||||
```
|
```
|
||||||
|
|
||||||
If needing to map to a different port, then also set the environment variable `JMX_PORT` to the desired host port.
|
If needing to map to a different port, then also set the environment variable `JMX_PORT` to the desired host port.
|
||||||
|
|
||||||
!!! example
|
!!! example
|
||||||
|
|
||||||
With a compose file:
|
With a compose file:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
environment:
|
environment:
|
||||||
ENABLE_JMX: true
|
ENABLE_JMX: true
|
||||||
JMX_HOST: ${HOSTNAME}
|
JMX_HOST: ${HOSTNAME}
|
||||||
JMX_PORT: "7092"
|
JMX_PORT: "7092"
|
||||||
ports:
|
ports:
|
||||||
- "7092:7092"
|
- "7092:7092"
|
||||||
```
|
```
|
||||||
|
|
||||||
## Enable Aikar's Flags
|
## Enable Aikar's Flags
|
||||||
|
|
||||||
[Aikar has done some research](https://aikar.co/2018/07/02/tuning-the-jvm-g1gc-garbage-collector-flags-for-minecraft/) into finding the optimal JVM flags for GC tuning, which becomes more important as more users are connected concurrently. [PaperMC also has an explanation](https://docs.papermc.io/paper/aikars-flags) of what the JVM flags are doing.
|
[Aikar has done some research](https://aikar.co/2018/07/02/tuning-the-jvm-g1gc-garbage-collector-flags-for-minecraft/) into finding the optimal JVM flags for GC tuning, which becomes more important as more users are connected concurrently. [PaperMC also has an explanation](https://docs.papermc.io/paper/aikars-flags) of what the JVM flags are doing.
|
||||||
|
|
||||||
The set of flags documented there can be added using
|
The set of flags documented there can be added using
|
||||||
|
|
||||||
-e USE_AIKAR_FLAGS=true
|
-e USE_AIKAR_FLAGS=true
|
||||||
|
|
||||||
When `MEMORY` is greater than or equal to 12G, then the Aikar flags will be adjusted according to the article.
|
When `MEMORY` is greater than or equal to 12G, then the Aikar flags will be adjusted according to the article.
|
||||||
|
|
||||||
## Enable MeowIce's Flags
|
## Enable MeowIce's Flags
|
||||||
|
|
||||||
[MeowIce has created an updated set of JVM flags](https://github.com/MeowIce/meowice-flags?tab=readme-ov-file#why-would-i-have-to-switch-) based on Aikar's flags but with support for optimizations for Java 17 and above
|
[MeowIce has created an updated set of JVM flags](https://github.com/MeowIce/meowice-flags?tab=readme-ov-file#why-would-i-have-to-switch-) based on Aikar's flags but with support for optimizations for Java 17 and above
|
||||||
|
|
||||||
The set of flags documented there can be added by setting the environment variable `USE_MEOWICE_FLAGS` to `true`. There is an optional `USE_MEOWICE_GRAALVM_FLAGS` variable to enable GraalVM specific optimizations, defaults to `FALSE`.
|
The set of flags documented there can be added using
|
||||||
|
|
||||||
|
-e USE_MEOWICE_FLAGS=true
|
||||||
|
|
||||||
|
There is an optional `USE_MEOWICE_GRAALVM_FLAGS` variable to enable GraalVM specific optimizations, defaults to `TRUE` if USE_MEOWICE_GRAALVM_FLAGS is `TRUE`
|
||||||
|
|||||||
@@ -1,189 +1,157 @@
|
|||||||
## Running with a custom server JAR
|
|
||||||
|
## 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 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,
|
If it is a URL, it will only be downloaded into the `/data` directory if it wasn't already. As
|
||||||
remove the file from the container's `/data` directory, and start again.
|
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
|
|
||||||
|
## 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
|
For VANILLA, FORGE, BUKKIT, SPIGOT, PAPER, CURSEFORGE, SPONGEVANILLA server types, set
|
||||||
the particular server type. by adding a `-e FORCE_REDOWNLOAD=true` to your command-line.
|
`$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:
|
|
||||||
|
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 \
|
docker run -d -v /path/on/host:/data \
|
||||||
-p 25565:25565 -e EULA=TRUE --name mc itzg/minecraft-server
|
-e TYPE=PAPER -e FORCE_REDOWNLOAD=true \
|
||||||
```
|
-p 25565:25565 -e EULA=TRUE --name mc itzg/minecraft-server
|
||||||
|
```
|
||||||
## Running as alternate user/group ID
|
|
||||||
|
## 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`.
|
|
||||||
|
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.
|
|
||||||
|
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
|
|
||||||
|
## 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.
|
|
||||||
|
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.
|
|
||||||
|
See [Custom worlds directory path](../misc/world-data.md#custom-worlds-directory-path) for an example.
|
||||||
## Interactive and Color Console
|
|
||||||
|
## 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.
|
|
||||||
|
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.
|
|
||||||
|
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
|
|
||||||
|
## 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.
|
|
||||||
|
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"
|
|
||||||
|
!!! 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 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 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.
|
|
||||||
|
The `STOP_SERVER_ANNOUNCE_DELAY` can be bypassed by sending a `SIGUSR1` signal to the `mc-server-runner` process.
|
||||||
`docker`:
|
|
||||||
|
`docker`:
|
||||||
docker stop --signal SIGUSR1 mc
|
|
||||||
|
docker stop --signal SIGUSR1 mc
|
||||||
`docker compose`:
|
|
||||||
|
`docker compose`:
|
||||||
docker compose kill --signal SIGUSR1
|
|
||||||
|
docker compose kill --signal SIGUSR1
|
||||||
## Configuration Options for Minecraft Server Health Monitoring
|
|
||||||
|
## Configuration Options for Minecraft Server Health Monitoring
|
||||||
The image tags include specific variables to simplify configuration for monitoring the health of a Minecraft server:
|
|
||||||
|
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_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.
|
|
||||||
|
- `-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
|
|
||||||
|
## OpenJ9 Specific Options
|
||||||
The openj9 image tags include specific variables to simplify configuration:
|
|
||||||
|
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_VIRTUALIZED=TRUE` : enables the option to
|
||||||
- `-e TUNE_NURSERY_SIZES=TRUE` : configures nursery sizes where the initial size is 50%
|
[optimize for virtualized environments](https://www.eclipse.org/openj9/docs/xtunevirtualized/)
|
||||||
of the `MAX_MEMORY` and the max size is 80%.
|
- `-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
|
|
||||||
|
## 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:
|
|
||||||
|
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
|
```
|
||||||
```
|
-e ENABLE_ROLLING_LOGS=true
|
||||||
|
```
|
||||||
> **NOTE** this will interfere with interactive/color consoles [as described in the section above](#interactive-and-color-console)
|
|
||||||
|
> **NOTE** this will interfere with interactive/color consoles [as described in the section above](#interactive-and-color-console)
|
||||||
## Timezone Configuration
|
|
||||||
|
## Timezone Configuration
|
||||||
You can configure the timezone to match yours by setting the `TZ` environment variable:
|
|
||||||
|
You can configure the timezone to match yours by setting the `TZ` environment variable:
|
||||||
-e TZ=Europe/London
|
|
||||||
|
-e TZ=Europe/London
|
||||||
such as:
|
|
||||||
|
such as:
|
||||||
docker run -d -it -e TZ=Europe/London -p 25565:25565 --name mc itzg/minecraft-server
|
|
||||||
|
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):
|
|
||||||
|
Or mounting `/etc/timezone` as readonly (not supported on Windows):
|
||||||
-v /etc/timezone:/etc/timezone:ro
|
|
||||||
|
-v /etc/timezone:/etc/timezone:ro
|
||||||
such as:
|
|
||||||
|
such as:
|
||||||
docker run -d -it -v /etc/timezone:/etc/timezone:ro -p 25565:25565 --name mc itzg/minecraft-server
|
|
||||||
|
docker run -d -it -v /etc/timezone:/etc/timezone:ro -p 25565:25565 --name mc itzg/minecraft-server
|
||||||
## HTTP Proxy
|
|
||||||
|
## 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`.
|
|
||||||
|
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
|
|
||||||
|
## 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`.
|
|
||||||
|
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
|
|
||||||
|
## 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`.
|
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
|
|
||||||
|
## 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.
|
|
||||||
|
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.
|
||||||
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
|
||||||
## 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`.
|
||||||
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
|
||||||
## 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:
|
||||||
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
|
||||||
-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.
|
||||||
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
|
||||||
## Enable support for optimized SIMD operations
|
|
||||||
|
To enable support for optimized SIMD operations, the JVM flag can be set with the following variable:
|
||||||
To enable support for optimized SIMD operations, the JVM flag can be set with the following variable:
|
|
||||||
|
-e USE_SIMD_FLAGS=true
|
||||||
-e USE_SIMD_FLAGS=true
|
|
||||||
|
SIMD optimized operations are supported by Pufferfish and Purpur.
|
||||||
SIMD optimized operations are supported by Pufferfish and Purpur.
|
|
||||||
|
## Enable timestamps in init logs
|
||||||
## Downloading extra configuration files
|
|
||||||
|
Before the container starts the Minecraft Server its output is prefixed with `[init]`, such as
|
||||||
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:
|
[init] Starting the Minecraft server...
|
||||||
|
```
|
||||||
```
|
|
||||||
DOWNLOAD_EXTRA_CONFIGS=destination<source_url[,destination2<source_url2,...]
|
To also include the timestamp with each log, set `LOG_TIMESTAMP` to "true". The log output will then look like:
|
||||||
```
|
|
||||||
|
```
|
||||||
For example, to download configuration files for plugins:
|
[init] 2022-02-05 16:58:33+00:00 Starting the Minecraft server...
|
||||||
|
```
|
||||||
```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...
|
|
||||||
```
|
|
||||||
|
|||||||
@@ -396,51 +396,43 @@ When using `docker run` from a bash shell, the entries must be quoted with the `
|
|||||||
|
|
||||||
### Other server property mappings
|
### Other server property mappings
|
||||||
|
|
||||||
| Environment Variable | Server Property |
|
| Environment Variable | Server Property |
|
||||||
|-----------------------------------------|-------------------------------------------------------------------------------------------------------------------------------|
|
|-----------------------------------|-------------------------------------------------------------------------------------------------------------------|
|
||||||
| ACCEPTS_TRANSFERS | [accepts-transfers](https://minecraft.wiki/w/Server.properties#accepts-transfers) |
|
| ACCEPTS_TRANSFERS | [accepts-transfers](https://minecraft.wiki/w/Server.properties#accepts-transfers) |
|
||||||
| ALLOW_FLIGHT | [allow-flight](https://minecraft.wiki/w/Server.properties#allow-flight) |
|
| ALLOW_FLIGHT | [allow-flight](https://minecraft.wiki/w/Server.properties#allow-flight) |
|
||||||
| ALLOW_NETHER | [allow-nether](https://minecraft.wiki/w/Server.properties#allow-nether) |
|
| ALLOW_NETHER | [allow-nether](https://minecraft.wiki/w/Server.properties#allow-nether) |
|
||||||
| BROADCAST_CONSOLE_TO_OPS | [broadcast-console-to-ops](https://minecraft.wiki/w/Server.properties#broadcast-console-to-ops) |
|
| BROADCAST_CONSOLE_TO_OPS | [broadcast-console-to-ops](https://minecraft.wiki/w/Server.properties#broadcast-console-to-ops) |
|
||||||
| BROADCAST_RCON_TO_OPS | [broadcast-rcon-to-ops](https://minecraft.wiki/w/Server.properties#broadcast-rcon-to-ops) |
|
| BROADCAST_RCON_TO_OPS | [broadcast-rcon-to-ops](https://minecraft.wiki/w/Server.properties#broadcast-rcon-to-ops) |
|
||||||
| BUG_REPORT_LINK | [bug-report-link](https://minecraft.wiki/w/Server.properties#bug-report-link) |
|
| BUG_REPORT_LINK | [bug-report-link](https://minecraft.wiki/w/Server.properties#bug-report-link) |
|
||||||
| ENABLE_COMMAND_BLOCK | [enable-command-block](https://minecraft.wiki/w/Server.properties#enable-command-block) |
|
| ENABLE_COMMAND_BLOCK | [enable-command-block](https://minecraft.wiki/w/Server.properties#enable-command-block) |
|
||||||
| ENABLE_STATUS | [enable-status](https://minecraft.wiki/w/Server.properties#enable-status) |
|
| ENABLE_STATUS | [enable-status](https://minecraft.wiki/w/Server.properties#enable-status) |
|
||||||
| ENFORCE_SECURE_PROFILE | [enforce-secure-profile](https://minecraft.wiki/w/Server.properties#enforce-secure-profile) |
|
| ENFORCE_SECURE_PROFILE | [enforce-secure-profile](https://minecraft.wiki/w/Server.properties#enforce-secure-profile) |
|
||||||
| ENTITY_BROADCAST_RANGE_PERCENTAGE | [entity-broadcast-range-percentage](https://minecraft.wiki/w/Server.properties#entity-broadcast-range-percentage) |
|
| ENTITY_BROADCAST_RANGE_PERCENTAGE | [entity-broadcast-range-percentage](https://minecraft.wiki/w/Server.properties#entity-broadcast-range-percentage) |
|
||||||
| FORCE_GAMEMODE | [force-gamemode](https://minecraft.wiki/w/Server.properties#force-gamemode) |
|
| FORCE_GAMEMODE | [force-gamemode](https://minecraft.wiki/w/Server.properties#force-gamemode) |
|
||||||
| FUNCTION_PERMISSION_LEVEL | [function-permission-level](https://minecraft.wiki/w/Server.properties#function-permission-level) |
|
| FUNCTION_PERMISSION_LEVEL | [function-permission-level](https://minecraft.wiki/w/Server.properties#function-permission-level) |
|
||||||
| GENERATE_STRUCTURES | [generate-structures](https://minecraft.wiki/w/Server.properties#generate-structures) |
|
| GENERATE_STRUCTURES | [generate-structures](https://minecraft.wiki/w/Server.properties#generate-structures) |
|
||||||
| HARDCORE | [hardcore](https://minecraft.wiki/w/Server.properties#hardcore) |
|
| HARDCORE | [hardcore](https://minecraft.wiki/w/Server.properties#hardcore) |
|
||||||
| HIDE_ONLINE_PLAYERS | [hide-online-players](https://minecraft.wiki/w/Server.properties#hide-online-players) |
|
| HIDE_ONLINE_PLAYERS | [hide-online-players](https://minecraft.wiki/w/Server.properties#hide-online-players) |
|
||||||
| LOG_IPS | [log-ips](https://minecraft.wiki/w/Server.properties#log-ips) |
|
| LOG_IPS | [log-ips](https://minecraft.wiki/w/Server.properties#log-ips) |
|
||||||
| MANAGEMENT_SERVER_ENABLED | [management-server-enabled](https://minecraft.wiki/w/Server.properties#management-server-enabled) |
|
| MAX_CHAINED_NEIGHBOR_UPDATES | [max-chained-neighbor-updates](https://minecraft.wiki/w/Server.properties#max-chained-neighbor-updates) |
|
||||||
| MANAGEMENT_SERVER_HOST | [management-server-host](https://minecraft.wiki/w/Server.properties#management-server-host) |
|
| MAX_PLAYERS | [max-players](https://minecraft.wiki/w/Server.properties#max-players) |
|
||||||
| MANAGEMENT_SERVER_PORT | [management-server-port](https://minecraft.wiki/w/Server.properties#management-server-port) |
|
| MAX_TICK_TIME | [max-tick-time](https://minecraft.wiki/w/Server.properties#max-tick-time) |
|
||||||
| MANAGEMENT_SERVER_SECRET | [management-server-secret](https://minecraft.wiki/w/Server.properties#management-server-secret) |
|
| MAX_WORLD_SIZE | [max-world-size](https://minecraft.wiki/w/Server.properties#max-world-size) |
|
||||||
| MANAGEMENT_SERVER_TLS_ENABLED | [management-server-tls-enabled](https://minecraft.wiki/w/Server.properties#management-server-tls-enabled) |
|
| NETWORK_COMPRESSION_THRESHOLD | [network-compression-threshold](https://minecraft.wiki/w/Server.properties#network-compression-threshold) |
|
||||||
| MANAGEMENT_SERVER_TLS_KEYSTORE | [management-server-tls-keystore](https://minecraft.wiki/w/Server.properties#management-server-tls-keystore) |
|
| ONLINE_MODE | [online-mode](https://minecraft.wiki/w/Server.properties#online-mode) |
|
||||||
| MANAGEMENT_SERVER_TLS_KEYSTORE_PASSWORD | [management-server-tls-keystore-password](https://minecraft.wiki/w/Server.properties#management-server-tls-keystore-password) |
|
| OP_PERMISSION_LEVEL | [op-permission-level](https://minecraft.wiki/w/Server.properties#op-permission-level) |
|
||||||
| MAX_CHAINED_NEIGHBOR_UPDATES | [max-chained-neighbor-updates](https://minecraft.wiki/w/Server.properties#max-chained-neighbor-updates) |
|
| PAUSE_WHEN_EMPTY_SECONDS | [pause-when-empty-seconds](https://minecraft.wiki/w/Server.properties#pause-when-empty-seconds) |
|
||||||
| MAX_PLAYERS | [max-players](https://minecraft.wiki/w/Server.properties#max-players) |
|
| PLAYER_IDLE_TIMEOUT | [player-idle-timeout](https://minecraft.wiki/w/Server.properties#player-idle-timeout) |
|
||||||
| MAX_TICK_TIME | [max-tick-time](https://minecraft.wiki/w/Server.properties#max-tick-time) |
|
| PREVENT_PROXY_CONNECTIONS | [prevent-proxy-connections](https://minecraft.wiki/w/Server.properties#prevent-proxy-connections) |
|
||||||
| MAX_WORLD_SIZE | [max-world-size](https://minecraft.wiki/w/Server.properties#max-world-size) |
|
| PVP | [pvp](https://minecraft.wiki/w/Server.properties#pvp) |
|
||||||
| NETWORK_COMPRESSION_THRESHOLD | [network-compression-threshold](https://minecraft.wiki/w/Server.properties#network-compression-threshold) |
|
| RATE_LIMIT | [rate-limit](https://minecraft.wiki/w/Server.properties#rate-limit) |
|
||||||
| ONLINE_MODE | [online-mode](https://minecraft.wiki/w/Server.properties#online-mode) |
|
| REGION_FILE_COMPRESSION | [region-file-compression](https://minecraft.wiki/w/Server.properties#region-file-compression) |
|
||||||
| OP_PERMISSION_LEVEL | [op-permission-level](https://minecraft.wiki/w/Server.properties#op-permission-level) |
|
| RESOURCE_PACK_ID | [resource-pack-id](https://minecraft.wiki/w/Server.properties#resource-pack-id) |
|
||||||
| PAUSE_WHEN_EMPTY_SECONDS | [pause-when-empty-seconds](https://minecraft.wiki/w/Server.properties#pause-when-empty-seconds) |
|
| RESOURCE_PACK_PROMPT | [resource-pack-prompt](https://minecraft.wiki/w/Server.properties#resource-pack-prompt) |
|
||||||
| PLAYER_IDLE_TIMEOUT | [player-idle-timeout](https://minecraft.wiki/w/Server.properties#player-idle-timeout) |
|
| SERVER_NAME | [server-name](https://minecraft.wiki/w/Server.properties#server-name) |
|
||||||
| PREVENT_PROXY_CONNECTIONS | [prevent-proxy-connections](https://minecraft.wiki/w/Server.properties#prevent-proxy-connections) |
|
| SIMULATION_DISTANCE | [simulation-distance](https://minecraft.wiki/w/Server.properties#simulation-distance) |
|
||||||
| PVP | [pvp](https://minecraft.wiki/w/Server.properties#pvp) |
|
| SPAWN_MONSTERS | [spawn-monsters](https://minecraft.wiki/w/Server.properties#spawn-monsters) |
|
||||||
| RATE_LIMIT | [rate-limit](https://minecraft.wiki/w/Server.properties#rate-limit) |
|
| SPAWN_PROTECTION | [spawn-protection](https://minecraft.wiki/w/Server.properties#spawn-protection) |
|
||||||
| REGION_FILE_COMPRESSION | [region-file-compression](https://minecraft.wiki/w/Server.properties#region-file-compression) |
|
| SYNC_CHUNK_WRITES | [sync-chunk-writes](https://minecraft.wiki/w/Server.properties#sync-chunk-writes) |
|
||||||
| RESOURCE_PACK_ID | [resource-pack-id](https://minecraft.wiki/w/Server.properties#resource-pack-id) |
|
| USE_NATIVE_TRANSPORT | [use-native-transport](https://minecraft.wiki/w/Server.properties#use-native-transport) |
|
||||||
| RESOURCE_PACK_PROMPT | [resource-pack-prompt](https://minecraft.wiki/w/Server.properties#resource-pack-prompt) |
|
| VIEW_DISTANCE | [view-distance](https://minecraft.wiki/w/Server.properties#view-distance) |
|
||||||
| SERVER_NAME | [server-name](https://minecraft.wiki/w/Server.properties#server-name) |
|
|
||||||
| SIMULATION_DISTANCE | [simulation-distance](https://minecraft.wiki/w/Server.properties#simulation-distance) |
|
|
||||||
| SPAWN_MONSTERS | [spawn-monsters](https://minecraft.wiki/w/Server.properties#spawn-monsters) |
|
|
||||||
| SPAWN_PROTECTION | [spawn-protection](https://minecraft.wiki/w/Server.properties#spawn-protection) |
|
|
||||||
| STATUS_HEARTBEAT_INTERVAL | [status-heartbeat-interval](https://minecraft.wiki/w/Server.properties#status-heartbeat-interval) |
|
|
||||||
| SYNC_CHUNK_WRITES | [sync-chunk-writes](https://minecraft.wiki/w/Server.properties#sync-chunk-writes) |
|
|
||||||
| USE_NATIVE_TRANSPORT | [use-native-transport](https://minecraft.wiki/w/Server.properties#use-native-transport) |
|
|
||||||
| VIEW_DISTANCE | [view-distance](https://minecraft.wiki/w/Server.properties#view-distance) |
|
|
||||||
Binary file not shown.
|
Before Width: | Height: | Size: 17 KiB |
@@ -47,20 +47,20 @@ popd
|
|||||||
Using the baseline image, an interactive container can be started to iteratively run the scripts to be developed. By attaching the current workspace directory, you can use the local editor of your choice to iteratively modify scripts while using the container to run them.
|
Using the baseline image, an interactive container can be started to iteratively run the scripts to be developed. By attaching the current workspace directory, you can use the local editor of your choice to iteratively modify scripts while using the container to run them.
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
docker run -it --rm -v ${PWD}:/image/scripts --entrypoint bash mc-dev
|
docker run -it --rm -v ${PWD}:/scripts -e SCRIPTS=/scripts/ --entrypoint bash mc-dev
|
||||||
```
|
```
|
||||||
|
|
||||||
From within the container you can run individual scripts via the attached `/image/scripts/` path; however, be sure to set any environment variables expected by the scripts by either `export`ing them manually:
|
From within the container you can run individual scripts via the attached `/scripts/` path; however, be sure to set any environment variables expected by the scripts by either `export`ing them manually:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
export VERSION=1.12.2
|
export VERSION=1.12.2
|
||||||
/image/scripts/start-deployFabric
|
/scripts/start-magma
|
||||||
```
|
```
|
||||||
|
|
||||||
...or pre-pending script execution:
|
...or pre-pending script execution:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
VERSION=1.12.2 /image/scripts/start-deployFabric
|
VERSION=1.12.2 /scripts/start-magma
|
||||||
```
|
```
|
||||||
|
|
||||||
!!! note
|
!!! note
|
||||||
@@ -69,28 +69,15 @@ VERSION=1.12.2 /image/scripts/start-deployFabric
|
|||||||
|
|
||||||
## Using development copy of tools
|
## Using development copy of tools
|
||||||
|
|
||||||
In the cloned repo, such as [`mc-image-helper`](https://github.com/itzg/mc-image-helper), install the distribution locally by running:
|
In the cloned repo, such as [`mc-image-helper`](https://github.com/itzg/mc-image-helper), create an up-to-date snapshot build of the tgz distribution using:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
./gradlew installDist
|
./gradlew distTar
|
||||||
```
|
```
|
||||||
|
|
||||||
The distribution will be installed in the project's `build/install/mc-image-helper`. Obtain the absolute path to that directory use in the next step.
|
!!! note
|
||||||
|
|
||||||
Refer to the instructions above to mount any locally modified image scripts or build a local copy of the image using or with alternate `BASE_IMAGE`, as described above:
|
The distribution's version will be `0.0.0-<branch>-SNAPSHOT`
|
||||||
|
|
||||||
```shell
|
|
||||||
docker build -t itzg/minecraft-server .
|
|
||||||
```
|
|
||||||
|
|
||||||
Mount the local mc-image-helper distribution directory as a volume in the container at the path `/usr/share/mc-image-helper`, such as
|
|
||||||
|
|
||||||
```shell
|
|
||||||
docker run -it --rm \
|
|
||||||
-v /path/to/mc-image-helper/build/install/mc-image-helper:/usr/share/mc-image-helper \
|
|
||||||
-e EULA=true \
|
|
||||||
itzg/minecraft-server
|
|
||||||
```
|
|
||||||
|
|
||||||
For Go base tools, run
|
For Go base tools, run
|
||||||
|
|
||||||
|
|||||||
@@ -133,14 +133,6 @@ The newline delimiting allows for compose file usage like:
|
|||||||
https://download.geysermc.org/v2/projects/floodgate/versions/latest/builds/latest/downloads/spigot
|
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
|
## 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
|
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,46 +2,28 @@
|
|||||||
|
|
||||||
[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](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.
|
||||||
|
|
||||||
## Usage
|
- **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:
|
||||||
|
```
|
||||||
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
|
https://modrinth.com/mod/fabric-api
|
||||||
----------
|
----------
|
||||||
|
|
|
|
||||||
+-- project slug
|
+-- 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`.
|
||||||
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.
|
||||||
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 `@`.
|
||||||
You can also reference a file containing project entries by prefixing the **container path** path with `@`.
|
|
||||||
|
| Description | Example projects entry |
|
||||||
### Examples
|
|---------------------------------|-------------------------------------------------------|
|
||||||
|
| Select latest version | `fabric-api` |
|
||||||
| Description | Example projects entry |
|
| Select specific version | `fabric-api:bQZpGIz0`<br/>`fabric-api:0.119.2+1.21.4` |
|
||||||
|---------------------------------|-------------------------------------------------------|
|
| Select latest beta version | `fabric-api:beta` |
|
||||||
| Select latest version | `fabric-api` |
|
| Latest version using project ID | `P7dR8mSH` |
|
||||||
| Select specific version | `fabric-api:bQZpGIz0`<br/>`fabric-api:0.119.2+1.21.4` |
|
| Latest version of datapack | `datapack:terralith` |
|
||||||
| Select latest beta version | `fabric-api:beta` |
|
| Specific version of datapack | `datapack:terralith:2.5.5` |
|
||||||
| Latest version using project ID | `P7dR8mSH` |
|
| Projects Listing File | `@/path/to/modrinth-mods.txt` |
|
||||||
| 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"
|
!!! info "More about listing files"
|
||||||
|
|
||||||
@@ -60,14 +42,6 @@ You can also reference a file containing project entries by prefixing the **cont
|
|||||||
datapack:terralith
|
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
|
## 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`.
|
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,6 +1,6 @@
|
|||||||
mkdocs-material == 9.6.21
|
mkdocs-material == 9.6.16
|
||||||
mkdocs-autorefs == 1.4.3
|
mkdocs-autorefs == 1.4.2
|
||||||
mkdocstrings[python] == 0.30.1
|
mkdocstrings[python] == 0.30.0
|
||||||
mkdocs-literate-nav == 0.6.2
|
mkdocs-literate-nav == 0.6.2
|
||||||
mdx-gh-links == 0.4
|
mdx-gh-links == 0.4
|
||||||
mkdocs-click == 0.9.0
|
mkdocs-click == 0.9.0
|
||||||
|
|||||||
@@ -14,8 +14,8 @@ where `<tag>` refers to the first column of this table:
|
|||||||
|----------------|--------------|--------|--------------------|---------------------|------|
|
|----------------|--------------|--------|--------------------|---------------------|------|
|
||||||
| latest | 21 | Ubuntu | Hotspot | amd64, arm64 | |
|
| latest | 21 | Ubuntu | Hotspot | amd64, arm64 | |
|
||||||
| stable | 21 | Ubuntu | Hotspot | amd64, arm64 | |
|
| stable | 21 | Ubuntu | Hotspot | amd64, arm64 | |
|
||||||
| java25 | 25 | Ubuntu | Hotspot | amd64, arm64 | |
|
| java24 | 24 | Ubuntu | Hotspot | amd64, arm64 | (2) |
|
||||||
| java25-graalvm | 25 | Oracle | Oracle GraalVM (3) | amd64, arm64 | |
|
| java24-graalvm | 24 | Oracle | Oracle GraalVM (3) | amd64, arm64 | (2) |
|
||||||
| java21 | 21 | Ubuntu | Hotspot | amd64, arm64 | |
|
| java21 | 21 | Ubuntu | Hotspot | amd64, arm64 | |
|
||||||
| java21-jdk | 21 | Ubuntu | Hotspot+JDK | amd64, arm64 | |
|
| java21-jdk | 21 | Ubuntu | Hotspot+JDK | amd64, arm64 | |
|
||||||
| java21-alpine | 21 | Alpine | Hotspot | amd64, arm64 | |
|
| java21-alpine | 21 | Alpine | Hotspot | amd64, arm64 | |
|
||||||
@@ -137,7 +137,6 @@ The following image tags have been deprecated and are no longer receiving update
|
|||||||
- java19
|
- java19
|
||||||
- java20-graalvm, java20, java20-alpine
|
- java20-graalvm, java20, java20-alpine
|
||||||
- java23-*
|
- java23-*
|
||||||
- java24, java24-graalvm
|
|
||||||
- java8-multiarch is still built and pushed, but please move to java8 instead
|
- java8-multiarch is still built and pushed, but please move to java8 instead
|
||||||
- java8-alpine, java8-jdk, java8-openj9, java8-graalvm-ce
|
- java8-alpine, java8-jdk, java8-openj9, java8-graalvm-ce
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,6 @@ services:
|
|||||||
EULA: true
|
EULA: true
|
||||||
ALLOW_FLIGHT: true
|
ALLOW_FLIGHT: true
|
||||||
MOD_PLATFORM: AUTO_CURSEFORGE
|
MOD_PLATFORM: AUTO_CURSEFORGE
|
||||||
CF_API_KEY: ${CF_API_KEY}
|
|
||||||
CF_SLUG: craftoria
|
CF_SLUG: craftoria
|
||||||
MOTD: |
|
MOTD: |
|
||||||
A %TYPE% server on %VERSION%
|
A %TYPE% server on %VERSION%
|
||||||
|
|||||||
@@ -9,24 +9,15 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
EULA: "TRUE"
|
EULA: "TRUE"
|
||||||
TYPE: CUSTOM
|
TYPE: CUSTOM
|
||||||
GENERIC_PACKS: GT_New_Horizons_2.8.0_Server_Java_17-25
|
GENERIC_PACKS: GT_New_Horizons_2.7.2_Server_Java_17-21
|
||||||
GENERIC_PACKS_SUFFIX: .zip
|
GENERIC_PACKS_SUFFIX: .zip
|
||||||
GENERIC_PACKS_PREFIX: https://downloads.gtnewhorizons.com/ServerPacks/
|
GENERIC_PACKS_PREFIX: https://downloads.gtnewhorizons.com/ServerPacks/
|
||||||
# if this isn't true, then the container tries to download the modpack every run
|
# if this isn't true, then the container tries to download the modpack every run
|
||||||
SKIP_GENERIC_PACK_UPDATE_CHECK: "true"
|
SKIP_GENERIC_PACK_UPDATE_CHECK: "true"
|
||||||
MEMORY: 6G
|
MEMORY: 6G
|
||||||
# Make sure that this matches what is in your pack's startserver bash file
|
# Make sure that this matches what is in your pack's startserver bash file
|
||||||
JVM_OPTS: "-Dfml.readTimeout=180 @java9args.txt"
|
JVM_OPTS: -Dfml.readTimeout=180 @java9args.txt
|
||||||
CUSTOM_SERVER: "lwjgl3ify-forgePatches.jar"
|
CUSTOM_JAR_EXEC: -jar lwjgl3ify-forgePatches.jar nogui
|
||||||
# Set server.properties according to GTNH server defaults
|
|
||||||
MOTD: "GT:New Horizons 2.8.0"
|
|
||||||
DIFFICULTY: "hard"
|
|
||||||
ENABLE_COMMAND_BLOCK: "true"
|
|
||||||
SPAWN_PROTECTION: 1
|
|
||||||
VIEW_DISTANCE: 8
|
|
||||||
MODE: 0
|
|
||||||
LEVEL_TYPE: "rwg"
|
|
||||||
ALLOW_FLIGHT: "TRUE"
|
|
||||||
volumes:
|
volumes:
|
||||||
# attach a managed volume, change to a relative or absolute host directory if needed
|
# attach a managed volume, change to a relative or absolute host directory if needed
|
||||||
- mc-data:/data
|
- mc-data:/data
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ services:
|
|||||||
EULA: "TRUE"
|
EULA: "TRUE"
|
||||||
TYPE: MOHIST
|
TYPE: MOHIST
|
||||||
VERSION: 1.12.2
|
VERSION: 1.12.2
|
||||||
MOHIST_BUILD: 347
|
DEBUG: "true"
|
||||||
volumes:
|
volumes:
|
||||||
- data:/data
|
- data:/data
|
||||||
|
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
. "$(dirname "$0")/autopause-fcns.sh"
|
. /auto/autopause-fcns.sh
|
||||||
|
|
||||||
# shellcheck source=../start-utils
|
# shellcheck source=../../scripts/start-utils
|
||||||
. "$(dirname "$0")/../start-utils"
|
. "${SCRIPTS:-/}start-utils"
|
||||||
if isTrue "${DEBUG_AUTOPAUSE}"; then
|
if isTrue "${DEBUG_AUTOPAUSE}"; then
|
||||||
set -x
|
set -x
|
||||||
fi
|
fi
|
||||||
@@ -84,7 +84,7 @@ do
|
|||||||
else
|
else
|
||||||
if [[ $(current_uptime) -ge $TIME_THRESH ]] ; then
|
if [[ $(current_uptime) -ge $TIME_THRESH ]] ; then
|
||||||
logAutopause "No client connected since startup / knocked - pausing"
|
logAutopause "No client connected since startup / knocked - pausing"
|
||||||
"$(dirname "$0")/pause.sh"
|
/auto/pause.sh
|
||||||
STATE=S
|
STATE=S
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@@ -109,7 +109,7 @@ do
|
|||||||
else
|
else
|
||||||
if [[ $(current_uptime) -ge $TIME_THRESH ]] ; then
|
if [[ $(current_uptime) -ge $TIME_THRESH ]] ; then
|
||||||
logAutopause "No client reconnected - pausing"
|
logAutopause "No client reconnected - pausing"
|
||||||
"$(dirname "$0")/pause.sh"
|
/auto/pause.sh
|
||||||
STATE=S
|
STATE=S
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@@ -117,7 +117,7 @@ do
|
|||||||
XS)
|
XS)
|
||||||
# Stopped
|
# Stopped
|
||||||
if rcon_client_exists ; then
|
if rcon_client_exists ; then
|
||||||
"$(dirname "$0")/resume.sh"
|
/auto/resume.sh
|
||||||
fi
|
fi
|
||||||
if java_running ; then
|
if java_running ; then
|
||||||
if java_clients_connected ; then
|
if java_clients_connected ; then
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# shellcheck source=../scripts/start-utils
|
# shellcheck source=../scripts/start-utils
|
||||||
. "$(dirname "$0")/../start-utils"
|
. "${SCRIPTS:-/}start-utils"
|
||||||
current_uptime() {
|
current_uptime() {
|
||||||
awk '{print $1}' /proc/uptime | cut -d . -f 1
|
awk '{print $1}' /proc/uptime | cut -d . -f 1
|
||||||
}
|
}
|
||||||
@@ -1,10 +1,10 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# needed for the clients connected function residing in autopause
|
# needed for the clients connected function residing in autopause
|
||||||
. "$(dirname "$0")/autopause-fcns.sh"
|
. /auto/autopause-fcns.sh
|
||||||
|
|
||||||
# shellcheck source=../../scripts/start-utils
|
# shellcheck source=../../scripts/start-utils
|
||||||
. "$(dirname "$0")/../start-utils"
|
. "${SCRIPTS:-/}start-utils"
|
||||||
if isTrue "${DEBUG_AUTOSTOP}"; then
|
if isTrue "${DEBUG_AUTOSTOP}"; then
|
||||||
set -x
|
set -x
|
||||||
fi
|
fi
|
||||||
@@ -49,7 +49,7 @@ do
|
|||||||
else
|
else
|
||||||
if [[ $(current_uptime) -ge $TIME_THRESH ]] ; then
|
if [[ $(current_uptime) -ge $TIME_THRESH ]] ; then
|
||||||
logAutostop "No client connected since startup - stopping server"
|
logAutostop "No client connected since startup - stopping server"
|
||||||
"$(dirname "$0")"/stop.sh
|
/auto/stop.sh
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@@ -74,7 +74,7 @@ do
|
|||||||
else
|
else
|
||||||
if [[ $(current_uptime) -ge $TIME_THRESH ]] ; then
|
if [[ $(current_uptime) -ge $TIME_THRESH ]] ; then
|
||||||
logAutostop "No client reconnected - stopping"
|
logAutostop "No client reconnected - stopping"
|
||||||
"$(dirname "$0")"/stop.sh
|
/auto/stop.sh
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
@@ -3,14 +3,14 @@
|
|||||||
[unpauseMCServer-server]
|
[unpauseMCServer-server]
|
||||||
sequence = 25565
|
sequence = 25565
|
||||||
seq_timeout = 1
|
seq_timeout = 1
|
||||||
command = /image/scripts/auto/resume.sh %IP%
|
command = /auto/resume.sh %IP%
|
||||||
tcpflags = syn
|
tcpflags = syn
|
||||||
[unpauseMCServer-rcon]
|
[unpauseMCServer-rcon]
|
||||||
sequence = 25575
|
sequence = 25575
|
||||||
seq_timeout = 1
|
seq_timeout = 1
|
||||||
command = /image/scripts/auto/resume.sh %IP%
|
command = /auto/resume.sh %IP%
|
||||||
tcpflags = syn
|
tcpflags = syn
|
||||||
[unpauseMCServer-bedrock]
|
[unpauseMCServer-bedrock]
|
||||||
sequence = 19132:udp
|
sequence = 19132:udp
|
||||||
command = /image/scripts/auto/resume.sh %IP%
|
command = /auto/resume.sh %IP%
|
||||||
seq_cooldown = 60
|
seq_cooldown = 60
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
. "$(dirname "$0")/../start-utils"
|
. /start-utils
|
||||||
if isTrue "${DEBUG_AUTOPAUSE}"; then
|
if isTrue "${DEBUG_AUTOPAUSE}"; then
|
||||||
set -x
|
set -x
|
||||||
fi
|
fi
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
. "$(dirname "$0")/../start-utils"
|
. /start-utils
|
||||||
if isTrue "${DEBUG_AUTOPAUSE}"; then
|
if isTrue "${DEBUG_AUTOPAUSE}"; then
|
||||||
set -x
|
set -x
|
||||||
fi
|
fi
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
. "$(dirname "$0")/../start-utils"
|
. /start-utils
|
||||||
if isTrue "${DEBUG_AUTOSTOP}"; then
|
if isTrue "${DEBUG_AUTOSTOP}"; then
|
||||||
set -x
|
set -x
|
||||||
fi
|
fi
|
||||||
@@ -1,204 +1,189 @@
|
|||||||
{
|
{
|
||||||
"globalExcludes": [
|
"globalExcludes": [
|
||||||
"advancement-plaques",
|
"advancement-plaques",
|
||||||
"ambience-music-mod",
|
"ambience-music-mod",
|
||||||
"ambientsounds",
|
"ambientsounds",
|
||||||
"appleskin",
|
"appleskin",
|
||||||
"armor-chroma",
|
"armor-chroma",
|
||||||
"armor-toughness-bar",
|
"armor-toughness-bar",
|
||||||
"audio-extension-for-fancymenu-forge",
|
"audio-extension-for-fancymenu-forge",
|
||||||
"auudio-forge",
|
"auudio-forge",
|
||||||
"beehivetooltips",
|
"beehivetooltips",
|
||||||
"better-advancements",
|
"better-advancements",
|
||||||
"better-foliage",
|
"better-foliage",
|
||||||
"better-modlist-neoforge",
|
"better-modlist-neoforge",
|
||||||
"better-placement",
|
"better-placement",
|
||||||
"better-sprinting",
|
"better-sprinting",
|
||||||
"better-third-person",
|
"better-third-person",
|
||||||
"better-tips-nbt-tag",
|
"better-tips-nbt-tag",
|
||||||
"betterf3",
|
"betterf3",
|
||||||
"betterfps",
|
"betterfps",
|
||||||
"bettergrassify",
|
"bettergrassify",
|
||||||
"biomeinfo",
|
"biomeinfo",
|
||||||
"block-drops-jei-addon",
|
"block-drops-jei-addon",
|
||||||
"blur-forge",
|
"blur-forge",
|
||||||
"cartography",
|
"cartography",
|
||||||
"chattoggle",
|
"chattoggle",
|
||||||
"cherished-worlds",
|
"cherished-worlds",
|
||||||
"chunk-animator",
|
"chunk-animator",
|
||||||
"clickable-advancements",
|
"clickable-advancements",
|
||||||
"colorwheel",
|
"compass-coords",
|
||||||
"colorwheel-patcher",
|
"config-menus-forge",
|
||||||
"compass-coords",
|
"configured",
|
||||||
"config-menus-forge",
|
"controllable",
|
||||||
"configured",
|
"controlling",
|
||||||
"controllable",
|
"craftpresence",
|
||||||
"controlling",
|
"ctm",
|
||||||
"craftpresence",
|
"custom-main-menu",
|
||||||
"ctm",
|
"dark-mode-everywhere",
|
||||||
"custom-main-menu",
|
"defensive-measures",
|
||||||
"dark-mode-everywhere",
|
"ding",
|
||||||
"defensive-measures",
|
"distraction-free-recipes",
|
||||||
"ding",
|
"drippy-loading-screen",
|
||||||
"distraction-free-recipes",
|
"dynamic-surroundings",
|
||||||
"drippy-loading-screen",
|
"dynamic-view",
|
||||||
"dynamic-surroundings",
|
"dynamiclights-reforged",
|
||||||
"dynamic-view",
|
"easiervillagertrading",
|
||||||
"dynamiclights-reforged",
|
"effective-forge",
|
||||||
"easiervillagertrading",
|
"embeddium",
|
||||||
"effective-forge",
|
"embeddium-extension",
|
||||||
"embeddium",
|
"embeddium-extras",
|
||||||
"embeddium-extension",
|
"enchantment-descriptions",
|
||||||
"embeddium-extras",
|
"enhanced-boss-bars",
|
||||||
"enchantment-descriptions",
|
"enhancedvisuals",
|
||||||
"enhanced-boss-bars",
|
"entity-collision-fps-fix",
|
||||||
"enhancedvisuals",
|
"entity-model-features",
|
||||||
"entity-collision-fps-fix",
|
"entity-texture-features-fabric",
|
||||||
"entity-model-features",
|
"entityculling",
|
||||||
"entity-texture-features-fabric",
|
"equipment-compare",
|
||||||
"entityculling",
|
"essential-mod",
|
||||||
"equipment-compare",
|
"euphoria-patches",
|
||||||
"essential-mod",
|
"extreme-sound-muffler",
|
||||||
"euphoria-patches",
|
"ezzoom",
|
||||||
"extreme-sound-muffler",
|
"fading-night-vision",
|
||||||
"ezzoom",
|
"falling-leaves-forge",
|
||||||
"fading-night-vision",
|
"fancymenu",
|
||||||
"falling-leaves-forge",
|
"farsight",
|
||||||
"fancymenu",
|
"faster-ladder-climbing",
|
||||||
"farsight",
|
"fastquit",
|
||||||
"faster-ladder-climbing",
|
"fastquit-forge",
|
||||||
"fastquit",
|
"flerovium",
|
||||||
"fastquit-forge",
|
"foamfix-optimization-mod",
|
||||||
"flerovium",
|
"forgeskyboxes",
|
||||||
"foamfix-optimization-mod",
|
"fps-reducer",
|
||||||
"forgeskyboxes",
|
"free-cam",
|
||||||
"fps-reducer",
|
"ftb-backups-2",
|
||||||
"free-cam",
|
"fullscreen-windowed-borderless-for-minecraft",
|
||||||
"ftb-backups-2",
|
"hwyla",
|
||||||
"fullscreen-windowed-borderless-for-minecraft",
|
"iceberg",
|
||||||
"hwyla",
|
"ignitioncoil",
|
||||||
"iceberg",
|
"illager-raid-music",
|
||||||
"ignitioncoil",
|
"inmisaddon",
|
||||||
"illager-raid-music",
|
"iris-flywheel-compat",
|
||||||
"inmisaddon",
|
"irisshaders",
|
||||||
"iris-flywheel-compat",
|
"item-borders",
|
||||||
"irisshaders",
|
"item-highlighter",
|
||||||
"item-borders",
|
"item-obliterator",
|
||||||
"item-highlighter",
|
"itemphysic-lite",
|
||||||
"item-obliterator",
|
"itemzoom",
|
||||||
"itemphysic-lite",
|
"just-enough-harvestcraft",
|
||||||
"itemzoom",
|
"just-enough-mekanism-multiblocks",
|
||||||
"just-enough-harvestcraft",
|
"just-enough-resources-jer",
|
||||||
"just-enough-mekanism-multiblocks",
|
"just-zoom",
|
||||||
"just-enough-resources-jer",
|
"legendary-tooltips",
|
||||||
"just-zoom",
|
"lighty",
|
||||||
"legendary-tooltips",
|
"loot-capacitor-tooltips",
|
||||||
"lighty",
|
"loot-journal",
|
||||||
"loot-capacitor-tooltips",
|
"lootbeams",
|
||||||
"loot-journal",
|
"magnesium-extras",
|
||||||
"lootbeams",
|
"make-bubbles-pop",
|
||||||
"magnesium-extras",
|
"menumobs",
|
||||||
"make-bubbles-pop",
|
"minecraft-rich-presence",
|
||||||
"menumobs",
|
"model-gap-fix",
|
||||||
"minecraft-rich-presence",
|
"more-overlays",
|
||||||
"model-gap-fix",
|
"mouse-tweaks",
|
||||||
"more-overlays",
|
"neat",
|
||||||
"mouse-tweaks",
|
"nekos-enchanted-books",
|
||||||
"neat",
|
"no-nv-flash",
|
||||||
"nekos-enchanted-books",
|
"no-recipe-book",
|
||||||
"no-nv-flash",
|
"not-enough-animations",
|
||||||
"no-recipe-book",
|
"oculus",
|
||||||
"not-enough-animations",
|
"oldjavawarning",
|
||||||
"oculus",
|
"overloaded-armor-bar",
|
||||||
"ok-zoomer",
|
"packmenu",
|
||||||
"oldjavawarning",
|
"packmodemenu",
|
||||||
"overloaded-armor-bar",
|
"particle-effects",
|
||||||
"packmenu",
|
"particle-effects-reforged",
|
||||||
"packmodemenu",
|
"particular",
|
||||||
"particle-effects",
|
"particular-reforged",
|
||||||
"particle-effects-reforged",
|
"reauth",
|
||||||
"particle-rain",
|
"rebind-narrator",
|
||||||
"particular",
|
"reblured",
|
||||||
"particular-reforged",
|
"reeses-sodium-options",
|
||||||
"reauth",
|
"reforgium",
|
||||||
"rebind-narrator",
|
"resource-reloader",
|
||||||
"reblured",
|
"rubidium",
|
||||||
"reeses-sodium-options",
|
"rubidium-extra",
|
||||||
"reforgium",
|
"ryoamiclights",
|
||||||
"resource-reloader",
|
"schematica",
|
||||||
"rubidium",
|
"seamless-loading-screen",
|
||||||
"rubidium-extra",
|
"seamless-loading-screen-forge",
|
||||||
"ryoamiclights",
|
"searchables",
|
||||||
"schematica",
|
"seasonhud",
|
||||||
"seamless-loading-screen",
|
"shulkerboxviewer",
|
||||||
"seamless-loading-screen-forge",
|
"skin-layers-3d",
|
||||||
"searchables",
|
"smart-hud",
|
||||||
"seasonhud",
|
"smithing-template-viewer",
|
||||||
"shulkerboxviewer",
|
"smooth-font",
|
||||||
"skin-layers-3d",
|
"smoothwater",
|
||||||
"smart-hud",
|
"sodium",
|
||||||
"smithing-template-viewer",
|
"sodium-extra",
|
||||||
"smooth-font",
|
"sodium-options-api",
|
||||||
"smoothwater",
|
"sodium-rubidium-occlusion-culling-fix",
|
||||||
"sodium",
|
"sound",
|
||||||
"sodium-extra",
|
"sound-filters",
|
||||||
"sodium-options-api",
|
"sound-physics-remastered",
|
||||||
"sodium-rubidium-occlusion-culling-fix",
|
"sound-reloader",
|
||||||
"sound",
|
"stellar-sky",
|
||||||
"sound-filters",
|
"swingthroughgrass",
|
||||||
"sound-physics-remastered",
|
"textrues-embeddium-options",
|
||||||
"sound-reloader",
|
"textrues-rubidium-options",
|
||||||
"stellar-sky",
|
"thaumic-jei",
|
||||||
"swingthroughgrass",
|
"tips",
|
||||||
"textrues-embeddium-options",
|
"toast-control",
|
||||||
"textrues-rubidium-options",
|
"torohealth-damage-indicators",
|
||||||
"thaumic-jei",
|
"true-darkness",
|
||||||
"tips",
|
"ungrab-mouse-mod",
|
||||||
"toast-control",
|
"vanillafix",
|
||||||
"torohealth-damage-indicators",
|
"visuality",
|
||||||
"true-darkness",
|
"waila-harvestability",
|
||||||
"ungrab-mouse-mod",
|
"waila-stages",
|
||||||
"vanillafix",
|
"wakes-reforged",
|
||||||
"visuality",
|
"wawla",
|
||||||
"waila-harvestability",
|
"welcome-screen",
|
||||||
"waila-stages",
|
"xaeroplus",
|
||||||
"wakes-reforged",
|
"yungs-menu-tweaks",
|
||||||
"wawla",
|
"zume"
|
||||||
"welcome-screen",
|
],
|
||||||
"xaeroplus",
|
"modpacks": {
|
||||||
"yungs-menu-tweaks",
|
"all-of-fabric-6": {
|
||||||
"zume"
|
"forceIncludes": ["revelationary"]
|
||||||
],
|
},
|
||||||
"modpacks": {
|
"beyond-depth": {
|
||||||
"all-of-fabric-6": {
|
"forceIncludes": ["particular-reforged"]
|
||||||
"forceIncludes": ["revelationary"]
|
},
|
||||||
},
|
"create-arcane-engineering": {
|
||||||
"beyond-depth": {
|
"forceIncludes": ["just-enough-resources-jer"]
|
||||||
"forceIncludes": ["particular-reforged"]
|
},
|
||||||
},
|
"skyfactory-5": {
|
||||||
"create-arcane-engineering": {
|
"forceIncludes": [
|
||||||
"forceIncludes": ["just-enough-resources-jer"]
|
"colored-torches",
|
||||||
},
|
"dye-mob-dye",
|
||||||
"mc-eternal-2": {
|
"openstairs"
|
||||||
"forceIncludes": [
|
]
|
||||||
"particular-reforged",
|
},
|
||||||
"mob-player-animator"
|
"valhelsia-5": {
|
||||||
]
|
"excludes": ["modernfix"]
|
||||||
},
|
}
|
||||||
"reclamation-reclaim-the-world": {
|
}
|
||||||
"forceIncludes": [
|
}
|
||||||
"more-overlays-updated"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"skyfactory-5": {
|
|
||||||
"forceIncludes": [
|
|
||||||
"colored-torches",
|
|
||||||
"dye-mob-dye",
|
|
||||||
"openstairs"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
"valhelsia-5": {
|
|
||||||
"excludes": ["modernfix"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -26,7 +26,6 @@
|
|||||||
"clickadv",
|
"clickadv",
|
||||||
"cobblemon-ui-tweaks",
|
"cobblemon-ui-tweaks",
|
||||||
"compass-coords",
|
"compass-coords",
|
||||||
"colorwheel",
|
|
||||||
"connectedness",
|
"connectedness",
|
||||||
"connector",
|
"connector",
|
||||||
"continuity",
|
"continuity",
|
||||||
@@ -75,9 +74,7 @@
|
|||||||
"nicer-skies",
|
"nicer-skies",
|
||||||
"notenoughanimations",
|
"notenoughanimations",
|
||||||
"oculus",
|
"oculus",
|
||||||
"ok_zoomer",
|
|
||||||
"OverflowingBars",
|
"OverflowingBars",
|
||||||
"particlerain",
|
|
||||||
"PickUpNotifier",
|
"PickUpNotifier",
|
||||||
"PresenceFootsteps",
|
"PresenceFootsteps",
|
||||||
"Prism",
|
"Prism",
|
||||||
|
|||||||
@@ -28,13 +28,6 @@
|
|||||||
"level-seed": {"env": "SEED"},
|
"level-seed": {"env": "SEED"},
|
||||||
"level-type": {"env": "LEVEL_TYPE"},
|
"level-type": {"env": "LEVEL_TYPE"},
|
||||||
"log-ips": {"env": "LOG_IPS"},
|
"log-ips": {"env": "LOG_IPS"},
|
||||||
"management-server-enabled": {"env": "MANAGEMENT_SERVER_ENABLED"},
|
|
||||||
"management-server-host": {"env": "MANAGEMENT_SERVER_HOST"},
|
|
||||||
"management-server-port": {"env": "MANAGEMENT_SERVER_PORT"},
|
|
||||||
"management-server-secret": {"env": "MANAGEMENT_SERVER_SECRET"},
|
|
||||||
"management-server-tls-enabled": {"env": "MANAGEMENT_SERVER_TLS_ENABLED"},
|
|
||||||
"management-server-tls-keystore": {"env": "MANAGEMENT_SERVER_TLS_KEYSTORE"},
|
|
||||||
"management-server-tls-keystore-password": {"env": "MANAGEMENT_SERVER_TLS_KEYSTORE_PASSWORD"},
|
|
||||||
"max-build-height": {"env": "MAX_BUILD_HEIGHT"},
|
"max-build-height": {"env": "MAX_BUILD_HEIGHT"},
|
||||||
"max-chained-neighbor-updates": {"env": "MAX_CHAINED_NEIGHBOR_UPDATES"},
|
"max-chained-neighbor-updates": {"env": "MAX_CHAINED_NEIGHBOR_UPDATES"},
|
||||||
"max-players": {"env": "MAX_PLAYERS"},
|
"max-players": {"env": "MAX_PLAYERS"},
|
||||||
@@ -68,7 +61,6 @@
|
|||||||
"spawn-monsters": {"env": "SPAWN_MONSTERS"},
|
"spawn-monsters": {"env": "SPAWN_MONSTERS"},
|
||||||
"spawn-npcs": {"env": "SPAWN_NPCS"},
|
"spawn-npcs": {"env": "SPAWN_NPCS"},
|
||||||
"spawn-protection": {"env": "SPAWN_PROTECTION"},
|
"spawn-protection": {"env": "SPAWN_PROTECTION"},
|
||||||
"status-heartbeat-interval": {"env": "STATUS_HEARTBEAT_INTERVAL"},
|
|
||||||
"sync-chunk-writes": {"env": "SYNC_CHUNK_WRITES"},
|
"sync-chunk-writes": {"env": "SYNC_CHUNK_WRITES"},
|
||||||
"use-native-transport": {"env": "USE_NATIVE_TRANSPORT"},
|
"use-native-transport": {"env": "USE_NATIVE_TRANSPORT"},
|
||||||
"view-distance": {"env": "VIEW_DISTANCE"},
|
"view-distance": {"env": "VIEW_DISTANCE"},
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
. "/image/scripts/start-utils"
|
# shellcheck source=../scripts/start-utils
|
||||||
|
. "${SCRIPTS:-/}start-utils"
|
||||||
if [ -f /data/.mc-health.env ]; then
|
if [ -f /data/.mc-health.env ]; then
|
||||||
. /data/.mc-health.env
|
. /data/.mc-health.env
|
||||||
fi
|
fi
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
. "/image/scripts/start-utils"
|
. "/start-utils"
|
||||||
: "${CONSOLE_IN_NAMED_PIPE:=/tmp/minecraft-console-in}"
|
: "${CONSOLE_IN_NAMED_PIPE:=/tmp/minecraft-console-in}"
|
||||||
|
|
||||||
if isFalse "${CREATE_CONSOLE_IN_PIPE:-false}"; then
|
if isFalse "${CREATE_CONSOLE_IN_PIPE:-false}"; then
|
||||||
@@ -9,10 +9,10 @@
|
|||||||
|
|
||||||
# needed for the clients connected function residing in autopause
|
# needed for the clients connected function residing in autopause
|
||||||
# shellcheck source=../auto/autopause-fcns.sh
|
# shellcheck source=../auto/autopause-fcns.sh
|
||||||
. /image/scripts/auto/autopause-fcns.sh
|
. /auto/autopause-fcns.sh
|
||||||
|
|
||||||
# shellcheck source=start-utils
|
# shellcheck source=start-utils
|
||||||
. /image/scripts/start-utils
|
. ${SCRIPTS:-/}start-utils
|
||||||
|
|
||||||
run_command(){
|
run_command(){
|
||||||
rcon_cmd="$1"
|
rcon_cmd="$1"
|
||||||
24
images.json
24
images.json
@@ -17,35 +17,19 @@
|
|||||||
"architectures": ["amd64", "arm64"],
|
"architectures": ["amd64", "arm64"],
|
||||||
"lts": true
|
"lts": true
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"tag": "java25",
|
|
||||||
"java": "25",
|
|
||||||
"distribution": "ubuntu",
|
|
||||||
"jvm": "hotspot",
|
|
||||||
"architectures": ["amd64", "arm64"]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"tag": "java25-graalvm",
|
|
||||||
"java": "25",
|
|
||||||
"distribution": "oracle",
|
|
||||||
"jvm": "graalvm",
|
|
||||||
"architectures": ["amd64", "arm64"]
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"tag": "java24",
|
"tag": "java24",
|
||||||
"java": "24",
|
"java": "24",
|
||||||
"distribution": "ubuntu",
|
"distribution": "ubuntu",
|
||||||
"jvm": "hotspot",
|
"jvm": "hotspot",
|
||||||
"architectures": ["amd64", "arm64"],
|
"architectures": ["amd64", "arm64"]
|
||||||
"deprecated": true
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tag": "java24-graalvm",
|
"tag": "java24-graalvm",
|
||||||
"java": "24",
|
"java": "24",
|
||||||
"distribution": "oracle",
|
"distribution": "oracle",
|
||||||
"jvm": "graalvm",
|
"jvm": "graalvm",
|
||||||
"architectures": ["amd64", "arm64"],
|
"architectures": ["amd64", "arm64"]
|
||||||
"deprecated": true
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tag": "java21",
|
"tag": "java21",
|
||||||
@@ -67,7 +51,7 @@
|
|||||||
"java": "21",
|
"java": "21",
|
||||||
"distribution": "oracle",
|
"distribution": "oracle",
|
||||||
"jvm": "graalvm",
|
"jvm": "graalvm",
|
||||||
"architectures": ["amd64", "arm64"]
|
"architectures": ["amd64", "arm64"],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tag": "java21-jdk",
|
"tag": "java21-jdk",
|
||||||
@@ -82,7 +66,7 @@
|
|||||||
"java": "21",
|
"java": "21",
|
||||||
"distribution": "oracle",
|
"distribution": "oracle",
|
||||||
"jvm": "graalvm",
|
"jvm": "graalvm",
|
||||||
"architectures": ["amd64", "arm64"]
|
"architectures": ["amd64", "arm64"],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tag": "java17",
|
"tag": "java17",
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# shellcheck source=start-utils
|
# shellcheck source=start-utils
|
||||||
. "$(dirname "$0")/start-utils"
|
. "${SCRIPTS:-/}start-utils"
|
||||||
|
|
||||||
# The Dockerfile ENVs take precedence here, but defaulting for testing consistency
|
# The Dockerfile ENVs take precedence here, but defaulting for testing consistency
|
||||||
: "${UID:=1000}"
|
: "${UID:=1000}"
|
||||||
@@ -48,7 +48,7 @@ if ! isTrue "${SKIP_SUDO:-false}" && [ "$(id -u)" = 0 ]; then
|
|||||||
echo 'hosts: files dns' > /etc/nsswitch.conf
|
echo 'hosts: files dns' > /etc/nsswitch.conf
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exec $(getSudoFromDistro) ${runAsUser}:${runAsGroup} "$(dirname "$0")/start-configuration" "$@"
|
exec $(getSudoFromDistro) ${runAsUser}:${runAsGroup} "${SCRIPTS:-/}start-configuration" "$@"
|
||||||
else
|
else
|
||||||
exec "$(dirname "$0")/start-configuration" "$@"
|
exec "${SCRIPTS:-/}start-configuration" "$@"
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# shellcheck source=start-utils
|
# shellcheck source=start-utils
|
||||||
. "$(dirname "$0")/start-utils"
|
. "${SCRIPTS:-/}start-utils"
|
||||||
|
|
||||||
: "${SERVER_PORT:=25565}"
|
: "${SERVER_PORT:=25565}"
|
||||||
: "${ENABLE_AUTOPAUSE:=false}"
|
: "${ENABLE_AUTOPAUSE:=false}"
|
||||||
@@ -24,7 +24,7 @@ log "Autopause functionality enabled"
|
|||||||
|
|
||||||
isDebugging && set -x
|
isDebugging && set -x
|
||||||
|
|
||||||
cp /image/knockd-config.cfg /tmp/knockd-config.cfg
|
cp /auto/knockd-config.cfg /tmp/knockd-config.cfg
|
||||||
|
|
||||||
function updatePort() {
|
function updatePort() {
|
||||||
regseq="^\s*sequence\s*=\s*$1\s*$"
|
regseq="^\s*sequence\s*=\s*$1\s*$"
|
||||||
@@ -69,4 +69,4 @@ fi
|
|||||||
let COOLDOWN=$AUTOPAUSE_TIMEOUT_KN/2
|
let COOLDOWN=$AUTOPAUSE_TIMEOUT_KN/2
|
||||||
sed -i "s/\(seq_cooldown *= *\).*/\1$COOLDOWN/" /tmp/knockd-config.cfg
|
sed -i "s/\(seq_cooldown *= *\).*/\1$COOLDOWN/" /tmp/knockd-config.cfg
|
||||||
|
|
||||||
"$(dirname "$0")/auto/autopause-daemon.sh" &
|
/auto/autopause-daemon.sh &
|
||||||
|
|||||||
@@ -1,14 +1,16 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# shellcheck source=start-utils
|
# shellcheck source=start-utils
|
||||||
. "$(dirname "$0")/start-utils"
|
. "${SCRIPTS:-/}start-utils"
|
||||||
|
|
||||||
: "${SERVER_PORT:=25565}"
|
: "${SERVER_PORT:=25565}"
|
||||||
|
: "${ENABLE_AUTOSTOP:=false}"
|
||||||
: "${AUTOSTOP_TIMEOUT_EST:=3600}"
|
: "${AUTOSTOP_TIMEOUT_EST:=3600}"
|
||||||
: "${AUTOSTOP_TIMEOUT_INIT:=1800}"
|
: "${AUTOSTOP_TIMEOUT_INIT:=1800}"
|
||||||
: "${AUTOSTOP_PERIOD:=10}"
|
: "${AUTOSTOP_PERIOD:=10}"
|
||||||
: "${DEBUG_AUTOSTOP:=false}"
|
: "${DEBUG_AUTOSTOP:=false}"
|
||||||
export SERVER_PORT
|
export SERVER_PORT
|
||||||
|
export ENABLE_AUTOSTOP
|
||||||
export AUTOSTOP_TIMEOUT_EST
|
export AUTOSTOP_TIMEOUT_EST
|
||||||
export AUTOSTOP_TIMEOUT_INIT
|
export AUTOSTOP_TIMEOUT_INIT
|
||||||
export AUTOSTOP_PERIOD
|
export AUTOSTOP_PERIOD
|
||||||
@@ -23,4 +25,4 @@ checkIfNotZeroElseSetToDefault "AUTOSTOP_PERIOD" 10
|
|||||||
isNumericElseSetToDefault "AUTOSTOP_TIMEOUT_EST" 3600
|
isNumericElseSetToDefault "AUTOSTOP_TIMEOUT_EST" 3600
|
||||||
isNumericElseSetToDefault "AUTOSTOP_TIMEOUT_INIT" 1800
|
isNumericElseSetToDefault "AUTOSTOP_TIMEOUT_INIT" 1800
|
||||||
|
|
||||||
"$(dirname "$0")/auto/autostop-daemon.sh" &
|
/auto/autostop-daemon.sh &
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ set -euo pipefail
|
|||||||
IFS=$'\n\t'
|
IFS=$'\n\t'
|
||||||
|
|
||||||
# shellcheck source=start-utils
|
# shellcheck source=start-utils
|
||||||
. "$(dirname "$0")/start-utils"
|
. "${SCRIPTS:-/}start-utils"
|
||||||
|
|
||||||
: "${EULA:=}"
|
: "${EULA:=}"
|
||||||
: "${PROXY:=}"
|
: "${PROXY:=}"
|
||||||
@@ -50,7 +50,7 @@ fi
|
|||||||
|
|
||||||
if isTrue "${DEBUG_MEMORY:-false}"; then
|
if isTrue "${DEBUG_MEMORY:-false}"; then
|
||||||
log "Memory usage and availability (in MB)"
|
log "Memory usage and availability (in MB)"
|
||||||
uname -pars
|
uname -parts
|
||||||
free -m
|
free -m
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -166,9 +166,11 @@ if isTrue "${VERSION_FROM_MODRINTH_PROJECTS:-}" && [[ ${MODRINTH_PROJECTS:-} ]];
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if isTrue "${ENABLE_AUTOPAUSE}"; then
|
if isTrue "${ENABLE_AUTOPAUSE}"; then
|
||||||
"$(dirname "$0")/start-autopause"
|
"${SCRIPTS:-/}start-autopause"
|
||||||
elif isTrue "${ENABLE_AUTOSTOP}"; then
|
fi
|
||||||
"$(dirname "$0")/start-autostop"
|
|
||||||
|
if isTrue "${ENABLE_AUTOSTOP}"; then
|
||||||
|
"${SCRIPTS:-/}start-autostop"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if
|
if
|
||||||
@@ -180,7 +182,7 @@ if
|
|||||||
then
|
then
|
||||||
log "Starting RCON commands"
|
log "Starting RCON commands"
|
||||||
# shellcheck source=start-rconcmds
|
# shellcheck source=start-rconcmds
|
||||||
"$(dirname "$0")/start-rconcmds"
|
"${SCRIPTS:-/}start-rconcmds"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
: "${MODPACK_PLATFORM:=${MOD_PLATFORM:-}}"
|
: "${MODPACK_PLATFORM:=${MOD_PLATFORM:-}}"
|
||||||
@@ -198,19 +200,19 @@ esac
|
|||||||
if [[ $MODPACK_PLATFORM ]]; then
|
if [[ $MODPACK_PLATFORM ]]; then
|
||||||
case "${MODPACK_PLATFORM^^}" in
|
case "${MODPACK_PLATFORM^^}" in
|
||||||
FTB|CURSEFORGE)
|
FTB|CURSEFORGE)
|
||||||
exec "$(dirname "$0")/start-deployCF" "$@"
|
exec "${SCRIPTS:-/}start-deployCF" "$@"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
FTBA)
|
FTBA)
|
||||||
exec "$(dirname "$0")/start-deployFTBA" "$@"
|
exec "${SCRIPTS:-/}start-deployFTBA" "$@"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
AUTO_CURSEFORGE)
|
AUTO_CURSEFORGE)
|
||||||
exec "$(dirname "$0")/start-deployAutoCF" "$@"
|
exec "${SCRIPTS:-/}start-deployAutoCF" "$@"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
MODRINTH)
|
MODRINTH)
|
||||||
exec "$(dirname "$0")/start-deployModrinth" "$@"
|
exec "${SCRIPTS:-/}start-deployModrinth" "$@"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
*)
|
*)
|
||||||
@@ -223,99 +225,99 @@ fi
|
|||||||
log "Resolving type given ${TYPE}"
|
log "Resolving type given ${TYPE}"
|
||||||
case "${TYPE^^}" in
|
case "${TYPE^^}" in
|
||||||
*BUKKIT|SPIGOT)
|
*BUKKIT|SPIGOT)
|
||||||
exec "$(dirname "$0")/start-deployBukkitSpigot" "$@"
|
exec "${SCRIPTS:-/}start-deployBukkitSpigot" "$@"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
PAPER)
|
PAPER)
|
||||||
exec "$(dirname "$0")/start-deployPaper" "$@"
|
exec "${SCRIPTS:-/}start-deployPaper" "$@"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
FOLIA)
|
FOLIA)
|
||||||
exec "$(dirname "$0")/start-deployFolia" "$@"
|
exec "${SCRIPTS:-/}start-deployFolia" "$@"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
FORGE)
|
FORGE)
|
||||||
exec "$(dirname "$0")/start-deployForge" "$@"
|
exec "${SCRIPTS:-/}start-deployForge" "$@"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
NEOFORGE|NEOFORGED)
|
NEOFORGE|NEOFORGED)
|
||||||
exec "$(dirname "$0")/start-deployNeoForge" "$@"
|
exec "${SCRIPTS:-/}start-deployNeoForge" "$@"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
FABRIC)
|
FABRIC)
|
||||||
exec "$(dirname "$0")/start-deployFabric" "$@"
|
exec "${SCRIPTS:-/}start-deployFabric" "$@"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
QUILT)
|
QUILT)
|
||||||
exec "$(dirname "$0")/start-deployQuilt" "$@"
|
exec "${SCRIPTS:-/}start-deployQuilt" "$@"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
VANILLA)
|
VANILLA)
|
||||||
exec "$(dirname "$0")/start-deployVanilla" "$@"
|
exec "${SCRIPTS:-/}start-deployVanilla" "$@"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
SPONGEVANILLA)
|
SPONGEVANILLA)
|
||||||
exec "$(dirname "$0")/start-deploySpongeVanilla" "$@"
|
exec "${SCRIPTS:-/}start-deploySpongeVanilla" "$@"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
CUSTOM)
|
CUSTOM)
|
||||||
exec "$(dirname "$0")/start-deployCustom" "$@"
|
exec "${SCRIPTS:-/}start-deployCustom" "$@"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
MAGMA)
|
MAGMA)
|
||||||
exec "$(dirname "$0")/start-deployMagma" "$@"
|
exec "${SCRIPTS:-/}start-deployMagma" "$@"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
MAGMA_MAINTAINED)
|
MAGMA_MAINTAINED)
|
||||||
exec "$(dirname "$0")/start-deployMagmaMaintained" "$@"
|
exec "${SCRIPTS:-/}start-deployMagmaMaintained" "$@"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
KETTING)
|
KETTING)
|
||||||
exec "$(dirname "$0")/start-deployKetting" "$@"
|
exec "${SCRIPTS:-/}start-deployKetting" "$@"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
MOHIST|YOUER|BANNER)
|
MOHIST|YOUER|BANNER)
|
||||||
exec "$(dirname "$0")/start-deployMohist" "$@"
|
exec "${SCRIPTS:-/}start-deployMohist" "$@"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
CATSERVER)
|
CATSERVER)
|
||||||
exec "$(dirname "$0")/start-deployCatserver" "$@"
|
exec "${SCRIPTS:-/}start-deployCatserver" "$@"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
PURPUR)
|
PURPUR)
|
||||||
exec "$(dirname "$0")/start-deployPurpur" "$@"
|
exec "${SCRIPTS:-/}start-deployPurpur" "$@"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
PUFFERFISH)
|
PUFFERFISH)
|
||||||
exec "$(dirname "$0")/start-deployPufferfish" "$@"
|
exec "${SCRIPTS:-/}start-deployPufferfish" "$@"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
CANYON)
|
CANYON)
|
||||||
exec "$(dirname "$0")/start-deployCanyon" "$@"
|
exec "${SCRIPTS:-/}start-deployCanyon" "$@"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
LIMBO)
|
LIMBO)
|
||||||
exec "$(dirname "$0")/start-deployLimbo" "$@"
|
exec "${SCRIPTS:-/}start-deployLimbo" "$@"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
NANOLIMBO)
|
NANOLIMBO)
|
||||||
exec "$(dirname "$0")/start-deployNanoLimbo" "$@"
|
exec "${SCRIPTS:-/}start-deployNanoLimbo" "$@"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
CRUCIBLE)
|
CRUCIBLE)
|
||||||
exec "$(dirname "$0")/start-deployCrucible" "$@"
|
exec "${SCRIPTS:-/}start-deployCrucible" "$@"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
LEAF)
|
LEAF)
|
||||||
exec "$(dirname "$0")/start-deployLeaf" "$@"
|
exec "${SCRIPTS:-/}start-deployLeaf" "$@"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
ARCLIGHT)
|
ARCLIGHT)
|
||||||
exec "$(dirname "$0")/start-deployArcLight" "$@"
|
exec "${SCRIPTS:-/}start-deployArcLight" "$@"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
POSEIDON)
|
POSEIDON)
|
||||||
exec "$(dirname "$0")/start-deployPoseidon" "$@"
|
exec "${SCRIPTS:-/}start-deployPoseidon" "$@"
|
||||||
;;
|
;;
|
||||||
|
|
||||||
*)
|
*)
|
||||||
|
|||||||
@@ -38,4 +38,4 @@ export SERVER
|
|||||||
export FAMILY=HYBRID
|
export FAMILY=HYBRID
|
||||||
export HYBRIDTYPE="${ARCLIGHT_TYPE,,}"
|
export HYBRIDTYPE="${ARCLIGHT_TYPE,,}"
|
||||||
|
|
||||||
exec "$(dirname "$0")/start-spiget" "$@"
|
exec "${SCRIPTS:-/}start-spiget" "$@"
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
set -eu
|
set -eu
|
||||||
|
|
||||||
# shellcheck source=start-utils
|
# shellcheck source=start-utils
|
||||||
. "$(dirname "$0")/start-utils"
|
. "${SCRIPTS:-/}start-utils"
|
||||||
|
|
||||||
: "${CF_PAGE_URL:=}"
|
: "${CF_PAGE_URL:=}"
|
||||||
: "${CF_SLUG:=}"
|
: "${CF_SLUG:=}"
|
||||||
@@ -75,4 +75,4 @@ fi
|
|||||||
applyResultsFile ${resultsFile}
|
applyResultsFile ${resultsFile}
|
||||||
resolveFamily
|
resolveFamily
|
||||||
|
|
||||||
exec "$(dirname "$0")/start-setupWorld" "$@"
|
exec "${SCRIPTS:-/}start-setupWorld" "$@"
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# shellcheck source=start-utils
|
# shellcheck source=start-utils
|
||||||
. "$(dirname "$0")/start-utils"
|
. "${SCRIPTS:-/}start-utils"
|
||||||
isDebugging && set -x
|
isDebugging && set -x
|
||||||
|
|
||||||
set -eo pipefail
|
set -eo pipefail
|
||||||
@@ -123,4 +123,4 @@ export JVM_OPTS
|
|||||||
# Normalize on Spigot for operations below
|
# Normalize on Spigot for operations below
|
||||||
export FAMILY=SPIGOT
|
export FAMILY=SPIGOT
|
||||||
|
|
||||||
exec "$(dirname "$0")/start-spiget" "$@"
|
exec "${SCRIPTS:-/}start-spiget" "$@"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
set -e
|
set -e
|
||||||
|
|
||||||
# shellcheck source=start-utils
|
# shellcheck source=start-utils
|
||||||
. "$(dirname "$0")/start-utils"
|
. "${SCRIPTS:-/}start-utils"
|
||||||
|
|
||||||
loadForgeVars() {
|
loadForgeVars() {
|
||||||
cfgFile=${1?}
|
cfgFile=${1?}
|
||||||
@@ -138,7 +138,7 @@ if ! isTrue "${USE_MODPACK_START_SCRIPT:-true}"; then
|
|||||||
FTB_DIR=$(dirname "${SERVER}")
|
FTB_DIR=$(dirname "${SERVER}")
|
||||||
export FTB_DIR
|
export FTB_DIR
|
||||||
|
|
||||||
exec "$(dirname "$0")/start-setupWorld" "$@"
|
exec "${SCRIPTS:-/}start-setupWorld" "$@"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
@@ -250,4 +250,4 @@ if isTrue "${FTB_LEGACYJAVAFIXER}" && [ ! -e "${legacyJavaFixerPath}" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
export FAMILY=FORGE
|
export FAMILY=FORGE
|
||||||
exec "$(dirname "$0")/start-setupWorld" "$@"
|
exec "${SCRIPTS:-/}start-setupWorld" "$@"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ set -euo pipefail
|
|||||||
IFS=$'\n\t'
|
IFS=$'\n\t'
|
||||||
|
|
||||||
# shellcheck source=start-utils
|
# shellcheck source=start-utils
|
||||||
. "$(dirname "$0")/start-utils"
|
. "${SCRIPTS:-/}start-utils"
|
||||||
isDebugging && set -x
|
isDebugging && set -x
|
||||||
|
|
||||||
: "${CANYON_BUILD:=lastSuccessfulBuild}"
|
: "${CANYON_BUILD:=lastSuccessfulBuild}"
|
||||||
@@ -58,4 +58,4 @@ fi
|
|||||||
# Normalize on Spigot for later operations
|
# Normalize on Spigot for later operations
|
||||||
export FAMILY=SPIGOT
|
export FAMILY=SPIGOT
|
||||||
|
|
||||||
exec "$(dirname "$0")/start-spiget" "$@"
|
exec ${SCRIPTS:-/}start-spiget "$@"
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# shellcheck source=start-utils
|
# shellcheck source=start-utils
|
||||||
. "$(dirname "$0")/start-utils"
|
. "${SCRIPTS:-/}start-utils"
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
@@ -30,4 +30,4 @@ fi
|
|||||||
export FAMILY=HYBRID
|
export FAMILY=HYBRID
|
||||||
export HYBRIDTYPE=forge
|
export HYBRIDTYPE=forge
|
||||||
|
|
||||||
exec "$(dirname "$0")/start-spiget" "$@"
|
exec "${SCRIPTS:-/}start-spiget" "$@"
|
||||||
|
|||||||
@@ -58,4 +58,4 @@ export SERVER
|
|||||||
export FAMILY=HYBRID
|
export FAMILY=HYBRID
|
||||||
export HYBRIDTYPE=forge
|
export HYBRIDTYPE=forge
|
||||||
|
|
||||||
exec "$(dirname "$0")/start-spiget" "$@"
|
exec "${SCRIPTS:-/}start-spiget" "$@"
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
: "${CUSTOM_JAR_EXEC:=}"
|
: "${CUSTOM_JAR_EXEC:=}"
|
||||||
|
|
||||||
# shellcheck source=start-utils
|
# shellcheck source=start-utils
|
||||||
. "$(dirname "$0")/start-utils"
|
. "${SCRIPTS:-/}start-utils"
|
||||||
isDebugging && set -x
|
isDebugging && set -x
|
||||||
|
|
||||||
if isURL "${CUSTOM_SERVER}"; then
|
if isURL "${CUSTOM_SERVER}"; then
|
||||||
@@ -42,4 +42,4 @@ fi
|
|||||||
export FAMILY="${FAMILY:-HYBRID}"
|
export FAMILY="${FAMILY:-HYBRID}"
|
||||||
export HYBRIDTYPE="${HYBRIDTYPE:-any}"
|
export HYBRIDTYPE="${HYBRIDTYPE:-any}"
|
||||||
|
|
||||||
exec "$(dirname "$0")/start-spiget" "$@"
|
exec "${SCRIPTS:-/}start-spiget" "$@"
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
ftbInstallMarker=".ftb-installed"
|
ftbInstallMarker=".ftb-installed"
|
||||||
|
|
||||||
# shellcheck source=start-utils
|
# shellcheck source=start-utils
|
||||||
. "$(dirname "$0")/start-utils"
|
. "${SCRIPTS:-/}start-utils"
|
||||||
isDebugging && set -x
|
isDebugging && set -x
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
@@ -160,4 +160,4 @@ else
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exec "$(dirname "$0")/start-setupWorld" "$@"
|
exec "${SCRIPTS:-/}start-setupWorld" "$@"
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
set -eu
|
set -eu
|
||||||
|
|
||||||
# shellcheck source=start-utils
|
# shellcheck source=start-utils
|
||||||
. "$(dirname "$0")/start-utils"
|
. "${SCRIPTS:-/}start-utils"
|
||||||
|
|
||||||
export TYPE=FABRIC
|
export TYPE=FABRIC
|
||||||
: "${FABRIC_LAUNCHER_VERSION:=${FABRIC_INSTALLER_VERSION:-LATEST}}"
|
: "${FABRIC_LAUNCHER_VERSION:=${FABRIC_INSTALLER_VERSION:-LATEST}}"
|
||||||
@@ -56,4 +56,4 @@ fi
|
|||||||
applyResultsFile ${resultsFile}
|
applyResultsFile ${resultsFile}
|
||||||
|
|
||||||
export FAMILY=FABRIC
|
export FAMILY=FABRIC
|
||||||
exec "$(dirname "$0")/start-setupWorld" "$@"
|
exec "${SCRIPTS:-/}start-setupWorld" "$@"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
: "${FOLIA_CHANNEL:=experimental}"
|
: "${FOLIA_CHANNEL:=experimental}"
|
||||||
|
|
||||||
# shellcheck source=start-utils
|
# shellcheck source=start-utils
|
||||||
. "$(dirname "$0")/start-utils"
|
. "${SCRIPTS:-/}start-utils"
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
handleDebugMode
|
handleDebugMode
|
||||||
|
|
||||||
@@ -18,4 +18,4 @@ fi
|
|||||||
PAPER_PROJECT="folia" \
|
PAPER_PROJECT="folia" \
|
||||||
PAPER_NAME="FoliaMC" \
|
PAPER_NAME="FoliaMC" \
|
||||||
PAPER_CHANNEL="${FOLIA_CHANNEL}" \
|
PAPER_CHANNEL="${FOLIA_CHANNEL}" \
|
||||||
exec "$(dirname "$0")/start-deployPaper" "$@"
|
exec "${SCRIPTS:-/}start-deployPaper" "$@"
|
||||||
|
|||||||
@@ -46,4 +46,4 @@ applyResultsFile ${resultsFile}
|
|||||||
|
|
||||||
export FAMILY=FORGE
|
export FAMILY=FORGE
|
||||||
|
|
||||||
exec "$(dirname "$0")/start-setupWorld" "$@"
|
exec "${SCRIPTS:-/}start-setupWorld" "$@"
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# shellcheck source=start-utils
|
# shellcheck source=start-utils
|
||||||
. "$(dirname "$0")/start-utils"
|
. "${SCRIPTS:-/}start-utils"
|
||||||
isDebugging && set -x
|
isDebugging && set -x
|
||||||
|
|
||||||
if ! SERVER=$(mc-image-helper github download-latest-asset \
|
if ! SERVER=$(mc-image-helper github download-latest-asset \
|
||||||
@@ -30,4 +30,4 @@ export SERVER
|
|||||||
export FAMILY=HYBRID
|
export FAMILY=HYBRID
|
||||||
export HYBRIDTYPE=forge
|
export HYBRIDTYPE=forge
|
||||||
|
|
||||||
exec "$(dirname "$0")/start-spiget" "$@"
|
exec "${SCRIPTS:-/}start-spiget" "$@"
|
||||||
|
|||||||
@@ -48,4 +48,4 @@ fi
|
|||||||
export FAMILY=SPIGOT
|
export FAMILY=SPIGOT
|
||||||
export SERVER
|
export SERVER
|
||||||
|
|
||||||
exec "$(dirname "$0")/start-spiget" "$@"
|
exec "${SCRIPTS:-/}start-spiget" "$@"
|
||||||
@@ -2,15 +2,15 @@
|
|||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
IFS=$'\n\t'
|
IFS=$'\n\t'
|
||||||
|
|
||||||
. "$(dirname "$0")/start-utils"
|
. ${SCRIPTS:-/}start-utils
|
||||||
isDebugging && set -x
|
isDebugging && set -x
|
||||||
|
|
||||||
: "${LIMBO_BUILD:=LATEST}"
|
: ${LIMBO_BUILD:=LATEST}
|
||||||
: "${FORCE_REDOWNLOAD:=false}"
|
: ${FORCE_REDOWNLOAD:=false}
|
||||||
: "${LIMBO_SCHEMA_FILENAME:=default.schem}"
|
: ${LIMBO_SCHEMA_FILENAME:=default.schem}
|
||||||
: "${LEVEL:=default;${LIMBO_SCHEMA_FILENAME}}"
|
: ${LEVEL:=default;${LIMBO_SCHEMA_FILENAME}}
|
||||||
# defaults to localhost, if this is not set
|
# defaults to localhost, if this is not set
|
||||||
: "${SERVER_IP:=0.0.0.0}"
|
: ${SERVER_IP:=0.0.0.0}
|
||||||
|
|
||||||
export LEVEL SERVER_IP
|
export LEVEL SERVER_IP
|
||||||
|
|
||||||
@@ -65,4 +65,4 @@ fi
|
|||||||
export LEVEL
|
export LEVEL
|
||||||
|
|
||||||
export FAMILY=LIMBO
|
export FAMILY=LIMBO
|
||||||
exec "$(dirname "$0")/start-setupWorld" "$@"
|
exec ${SCRIPTS:-/}start-setupWorld "$@"
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# shellcheck source=start-utils
|
# shellcheck source=start-utils
|
||||||
. "$(dirname "$0")/start-utils"
|
. "${SCRIPTS:-/}start-utils"
|
||||||
isDebugging && set -x
|
isDebugging && set -x
|
||||||
|
|
||||||
: "${MAGMA_VERSION:=}"
|
: "${MAGMA_VERSION:=}"
|
||||||
@@ -27,4 +27,4 @@ export SERVER
|
|||||||
export FAMILY=HYBRID
|
export FAMILY=HYBRID
|
||||||
export HYBRIDTYPE=forge
|
export HYBRIDTYPE=forge
|
||||||
|
|
||||||
exec "$(dirname "$0")/start-spiget" "$@"
|
exec "${SCRIPTS:-/}start-spiget" "$@"
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# shellcheck source=start-utils
|
# shellcheck source=start-utils
|
||||||
. "$(dirname "$0")/start-utils"
|
. "${SCRIPTS:-/}start-utils"
|
||||||
isDebugging && set -x
|
isDebugging && set -x
|
||||||
|
|
||||||
: "${FORGE_VERSION:=}"
|
: "${FORGE_VERSION:=}"
|
||||||
@@ -36,4 +36,4 @@ export SERVER
|
|||||||
export FAMILY=HYBRID
|
export FAMILY=HYBRID
|
||||||
export HYBRIDTYPE=forge
|
export HYBRIDTYPE=forge
|
||||||
|
|
||||||
exec "$(dirname "$0")/start-spiget" "$@"
|
exec "${SCRIPTS:-/}start-spiget" "$@"
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
set -eu
|
set -eu
|
||||||
|
|
||||||
# shellcheck source=start-utils
|
# shellcheck source=start-utils
|
||||||
. "$(dirname "$0")/start-utils"
|
. "${SCRIPTS:-/}start-utils"
|
||||||
|
|
||||||
resultsFile=/data/.install-modrinth.env
|
resultsFile=/data/.install-modrinth.env
|
||||||
|
|
||||||
@@ -75,4 +75,4 @@ fi
|
|||||||
applyResultsFile ${resultsFile}
|
applyResultsFile ${resultsFile}
|
||||||
resolveFamily
|
resolveFamily
|
||||||
|
|
||||||
exec "$(dirname "$0")/start-setupWorld" "$@"
|
exec "${SCRIPTS:-/}start-setupWorld" "$@"
|
||||||
|
|||||||
@@ -14,39 +14,38 @@ mohistType="${TYPE,,}"
|
|||||||
mohistApiUrl="https://api.mohistmc.com/project/${mohistType}"
|
mohistApiUrl="https://api.mohistmc.com/project/${mohistType}"
|
||||||
mohistDownloadsPage="https://mohistmc.com/downloadSoftware?project=${mohistType}"
|
mohistDownloadsPage="https://mohistmc.com/downloadSoftware?project=${mohistType}"
|
||||||
|
|
||||||
if [[ "${MOHIST_BUILD}" != "lastSuccessfulBuild" ]] && [[ "${VERSION,,}" != latest ]] && [[ -f "/data/${mohistType}-${VERSION}-${MOHIST_BUILD}-server.jar" ]]; then
|
if ! get --exists "${mohistApiUrl}/${VERSION}/builds"; then
|
||||||
log "Skipping Mohist build lookup since server jar exists"
|
logError "${mohistType} builds do not exist for ${VERSION}"
|
||||||
SERVER="/data/${mohistType}-${VERSION}-${MOHIST_BUILD}-server.jar"
|
logError " check ${mohistDownloadsPage} for available versions"
|
||||||
else
|
logError " and set VERSION accordingly"
|
||||||
if ! get --exists "${mohistApiUrl}/${VERSION}/builds"; then
|
exit 1
|
||||||
logError "${mohistType} builds do not exist for ${VERSION}"
|
fi
|
||||||
logError " check ${mohistDownloadsPage} for available versions"
|
|
||||||
logError " and set VERSION accordingly"
|
if [[ "${MOHIST_BUILD}" == "lastSuccessfulBuild" ]]; then
|
||||||
|
# Get the latest build number from the API
|
||||||
|
if ! buildNumber=$(
|
||||||
|
get --json-path '$[0].id' "${mohistApiUrl}/${VERSION}/builds"
|
||||||
|
); then
|
||||||
|
logError "failed to list ${mohistType} builds for ${VERSION}"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
MOHIST_BUILD="${buildNumber}"
|
||||||
|
fi
|
||||||
|
|
||||||
if [[ "${MOHIST_BUILD}" == "lastSuccessfulBuild" ]]; then
|
downloadUrl="${mohistApiUrl}/${VERSION}/builds/${MOHIST_BUILD}/download"
|
||||||
# Get the latest build number from the API
|
|
||||||
if ! buildNumber=$(
|
|
||||||
get --json-path '$[0].id' "${mohistApiUrl}/${VERSION}/builds"
|
|
||||||
); then
|
|
||||||
logError "failed to list ${mohistType} builds for ${VERSION}"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
MOHIST_BUILD="${buildNumber}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
downloadUrl="${mohistApiUrl}/${VERSION}/builds/${MOHIST_BUILD}/download"
|
if [[ -z "${downloadUrl}" ]]; then
|
||||||
|
logError "Could not find build ${MOHIST_BUILD} for version ${VERSION}"
|
||||||
|
logError " check ${mohistDownloadsPage} for available versions"
|
||||||
|
logError " and set VERSION accordingly"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
if [[ -z "${downloadUrl}" ]]; then
|
SERVER="/data/${mohistType}-${VERSION}-${MOHIST_BUILD}-server.jar"
|
||||||
logError "Could not find build ${MOHIST_BUILD} for version ${VERSION}"
|
|
||||||
logError " check ${mohistDownloadsPage} for available versions"
|
|
||||||
logError " and set VERSION accordingly"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
SERVER="/data/${mohistType}-${VERSION}-${MOHIST_BUILD}-server.jar"
|
if [ ! -f "${SERVER}" ]; then
|
||||||
get --skip-existing -o "${SERVER}" "${downloadUrl}"
|
log "Downloading ${mohistType^} build ${MOHIST_BUILD} for ${VERSION}"
|
||||||
|
get -o "${SERVER}" "${downloadUrl}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "${mohistType}" == "mohist" ]]; then
|
if [[ "${mohistType}" == "mohist" ]]; then
|
||||||
@@ -62,4 +61,4 @@ fi
|
|||||||
export SERVER
|
export SERVER
|
||||||
export FAMILY=HYBRID
|
export FAMILY=HYBRID
|
||||||
|
|
||||||
exec "$(dirname "$0")/start-spiget" "$@"
|
exec "${SCRIPTS:-/}start-spiget" "$@"
|
||||||
|
|||||||
@@ -1,164 +1,19 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# shellcheck source=start-utils
|
# shellcheck source=start-utils
|
||||||
. "$(dirname "$0")/start-utils"
|
. "${SCRIPTS:-/}start-utils"
|
||||||
isDebugging && set -x
|
isDebugging && set -x
|
||||||
|
|
||||||
if ! SERVER=$(mc-image-helper github download-latest-asset \
|
if ! SERVER=$(mc-image-helper github download-latest-asset \
|
||||||
--output-directory=/data \
|
--output-directory=/data \
|
||||||
--name-pattern="NanoLimbo(-.+?(?<!-sources))?\.jar" \
|
--name-pattern="NanoLimbo-.+?(?<!-sources)\.jar" \
|
||||||
BoomEaro/NanoLimbo
|
BoomEaro/NanoLimbo
|
||||||
); then
|
); then
|
||||||
logError "Failed to download NanoLimbo"
|
logError "Failed to download NanoLimbo"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
: "${SERVER_PORT:=25565}"
|
|
||||||
cat <<EOF > /data/settings.yml
|
|
||||||
#
|
|
||||||
# NanoLimbo configuration
|
|
||||||
#
|
|
||||||
|
|
||||||
# Server's host address and port. Set ip empty to use public address
|
|
||||||
bind:
|
|
||||||
ip: '0.0.0.0'
|
|
||||||
port: ${SERVER_PORT}
|
|
||||||
|
|
||||||
# Max number of players can join to server
|
|
||||||
# Set -1 to make it infinite
|
|
||||||
maxPlayers: 100
|
|
||||||
|
|
||||||
# Server's data in servers list
|
|
||||||
ping:
|
|
||||||
description: '{"text": "&9NanoLimbo"}'
|
|
||||||
version: 'NanoLimbo'
|
|
||||||
# Return static protocol version number in ping result
|
|
||||||
# By default, its -1 to return the client version if it supported
|
|
||||||
# https://wiki.vg/Protocol_version_numbers
|
|
||||||
protocol: -1
|
|
||||||
|
|
||||||
# Available dimensions: OVERWORLD, NETHER, THE_END
|
|
||||||
dimension: THE_END
|
|
||||||
|
|
||||||
# Whether to display the player in the player list
|
|
||||||
# For 1.16.5 clients, the player list will be sent even if disabled, to avoid crash
|
|
||||||
playerList:
|
|
||||||
enable: false
|
|
||||||
username: 'NanoLimbo'
|
|
||||||
|
|
||||||
# Whether to display header and footer in player list
|
|
||||||
# For 1.8+ clients
|
|
||||||
headerAndFooter:
|
|
||||||
enable: false
|
|
||||||
header: '{"text": "&eWelcome!"}'
|
|
||||||
footer: '{"text": "&9NanoLimbo"}'
|
|
||||||
|
|
||||||
# Setup player's game mode
|
|
||||||
# 0 - Survival
|
|
||||||
# 1 - Creative (hide HP and food bar)
|
|
||||||
# 2 - Adventure
|
|
||||||
# 3 - Spectator (hide all UI bars)
|
|
||||||
# Spectator works on 1.8+ clients
|
|
||||||
gameMode: 3
|
|
||||||
|
|
||||||
# Remove secure-chat toast
|
|
||||||
# For 1.20.5+ clients
|
|
||||||
secureProfile: false
|
|
||||||
|
|
||||||
# Server name which is shown under F3
|
|
||||||
# For 1.13+ clients
|
|
||||||
brandName:
|
|
||||||
enable: true
|
|
||||||
content: 'NanoLimbo'
|
|
||||||
|
|
||||||
# Message sends when player joins to the server
|
|
||||||
joinMessage:
|
|
||||||
enable: true
|
|
||||||
text: '{"text": "&eWelcome to the Limbo!"}'
|
|
||||||
|
|
||||||
# BossBar displays when player joins to the server
|
|
||||||
# For 1.9+ clients
|
|
||||||
bossBar:
|
|
||||||
enable: true
|
|
||||||
text: '{"text": "Welcome to the Limbo!"}'
|
|
||||||
health: 1.0
|
|
||||||
# Available colors: PINK, BLUE, RED, GREEN, YELLOW, PURPLE, WHITE
|
|
||||||
color: PINK
|
|
||||||
# Available divisions: SOLID, DASHES_6, DASHES_10, DASHES_12, DASHES_20
|
|
||||||
division: SOLID
|
|
||||||
|
|
||||||
# Display title and subtitle
|
|
||||||
# For 1.8+ clients
|
|
||||||
title:
|
|
||||||
enable: true
|
|
||||||
# Set title text value empty, if you need only subtitle
|
|
||||||
title: '{"text": "&9&lWelcome!"}'
|
|
||||||
# Set subtitle text value empty, if you need only title
|
|
||||||
subtitle: '{"text": "&6NanoLimbo"}'
|
|
||||||
# Fade in time in ticks (1 sec = 20 ticks)
|
|
||||||
fadeIn: 10
|
|
||||||
# Stay time in ticks
|
|
||||||
stay: 100
|
|
||||||
# Fade out time in ticks
|
|
||||||
fadeOut: 10
|
|
||||||
|
|
||||||
# Player info forwarding support.
|
|
||||||
# Available types:
|
|
||||||
# - NONE
|
|
||||||
# - LEGACY
|
|
||||||
# - MODERN
|
|
||||||
# - BUNGEE_GUARD
|
|
||||||
# Don't use secret if you do not use MODERN type
|
|
||||||
infoForwarding:
|
|
||||||
type: NONE
|
|
||||||
secret: '<YOUR_SECRET_HERE>'
|
|
||||||
tokens:
|
|
||||||
- '<BUNGEE_GUARD_TOKEN>'
|
|
||||||
|
|
||||||
# Read timeout for connections in milliseconds
|
|
||||||
readTimeout: 30000
|
|
||||||
|
|
||||||
# Define log level. For production, I'd recommend to use level 2
|
|
||||||
# Log levels:
|
|
||||||
# 0 - Display only errors
|
|
||||||
# 1 - Display errors, warnings
|
|
||||||
# 2 - Display errors, warnings, info
|
|
||||||
# 3 - Display errors, warnings, info, debug
|
|
||||||
debugLevel: 2
|
|
||||||
|
|
||||||
# Warning! Do not touch params of this block if you are not completely sure what is this!
|
|
||||||
netty:
|
|
||||||
# Use a Linux native transport type, if it possible
|
|
||||||
useEpoll: true
|
|
||||||
# EventLoopGroup threads count
|
|
||||||
threads:
|
|
||||||
bossGroup: 1
|
|
||||||
workerGroup: 4
|
|
||||||
|
|
||||||
# Options to check incoming traffic and kick potentially malicious connections.
|
|
||||||
# Take into account that player can send many small packets, for example, just moving mouse.
|
|
||||||
traffic:
|
|
||||||
# If true, then additional handler will be added to the channel pipeline
|
|
||||||
enable: true
|
|
||||||
# Max packet size in bytes
|
|
||||||
# Unlimited if -1
|
|
||||||
maxPacketSize: 8192
|
|
||||||
# The interval to measure packets over
|
|
||||||
# Lowering this value will limit peak packets from players which would target people with bad connections
|
|
||||||
# Raising this value will allow higher peak packet rates, which will help with people who have poor connections
|
|
||||||
# Ignored if -1.0
|
|
||||||
interval: 7.0
|
|
||||||
# The maximum packets per second for players
|
|
||||||
# It is measured over the configured interval
|
|
||||||
# Ignored if -1.0
|
|
||||||
maxPacketRate: 500.0
|
|
||||||
# The maximum packet bytes per second for players
|
|
||||||
# It is measured over the configured interval as an average bytes/sec
|
|
||||||
# Ignored if -1.0
|
|
||||||
maxPacketBytesRate: 2048.0
|
|
||||||
EOF
|
|
||||||
|
|
||||||
export SERVER
|
export SERVER
|
||||||
export FAMILY=LIMBO
|
export FAMILY=LIMBO
|
||||||
|
|
||||||
exec "$(dirname "$0")/start-setupMounts" "$@"
|
exec ${SCRIPTS:-/}start-setupMounts "$@"
|
||||||
|
|||||||
@@ -23,4 +23,4 @@ applyResultsFile ${resultsFile}
|
|||||||
|
|
||||||
export FAMILY=FORGE
|
export FAMILY=FORGE
|
||||||
|
|
||||||
exec "$(dirname "$0")/start-setupWorld" "$@"
|
exec "${SCRIPTS:-/}start-setupWorld" "$@"
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# shellcheck source=start-utils
|
# shellcheck source=start-utils
|
||||||
. "$(dirname "$0")/start-utils"
|
. "${SCRIPTS:-/}start-utils"
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
handleDebugMode
|
handleDebugMode
|
||||||
|
|
||||||
@@ -58,4 +58,4 @@ export DOWNLOAD_DEFAULTS
|
|||||||
# Normalize on Spigot for downstream operations
|
# Normalize on Spigot for downstream operations
|
||||||
export FAMILY=SPIGOT
|
export FAMILY=SPIGOT
|
||||||
|
|
||||||
exec "$(dirname "$0")/start-spiget" "$@"
|
exec "${SCRIPTS:-/}start-spiget" "$@"
|
||||||
|
|||||||
@@ -34,4 +34,4 @@ fi
|
|||||||
export SERVER
|
export SERVER
|
||||||
export FAMILY=SPIGOT
|
export FAMILY=SPIGOT
|
||||||
|
|
||||||
exec "$(dirname "$0")/start-spiget" "$@"
|
exec "${SCRIPTS:-/}start-spiget" "$@"
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# shellcheck source=start-utils
|
# shellcheck source=start-utils
|
||||||
. "$(dirname "$0")/start-utils"
|
. "${SCRIPTS:-/}start-utils"
|
||||||
|
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
isDebugging && set -x
|
isDebugging && set -x
|
||||||
@@ -45,4 +45,4 @@ fi
|
|||||||
# Normalize on Spigot for later operations
|
# Normalize on Spigot for later operations
|
||||||
export FAMILY=SPIGOT
|
export FAMILY=SPIGOT
|
||||||
|
|
||||||
exec "$(dirname "$0")/start-spiget" "$@"
|
exec "${SCRIPTS:-/}start-spiget" "$@"
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ IFS=$'\n\t'
|
|||||||
: "${PURPUR_DOWNLOAD_URL:=}"
|
: "${PURPUR_DOWNLOAD_URL:=}"
|
||||||
|
|
||||||
# shellcheck source=start-utils
|
# shellcheck source=start-utils
|
||||||
. "$(dirname "$0")/start-utils"
|
. "${SCRIPTS:-/}start-utils"
|
||||||
isDebugging && set -x
|
isDebugging && set -x
|
||||||
|
|
||||||
resultsFile=/data/.purpur.env
|
resultsFile=/data/.purpur.env
|
||||||
@@ -39,4 +39,4 @@ applyResultsFile ${resultsFile}
|
|||||||
# Normalize on Spigot for later operations
|
# Normalize on Spigot for later operations
|
||||||
export FAMILY=SPIGOT
|
export FAMILY=SPIGOT
|
||||||
|
|
||||||
exec "$(dirname "$0")/start-spiget" "$@"
|
exec "${SCRIPTS:-/}start-spiget" "$@"
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
set -eu
|
set -eu
|
||||||
|
|
||||||
# shellcheck source=start-utils
|
# shellcheck source=start-utils
|
||||||
. "$(dirname "$0")/start-utils"
|
. "${SCRIPTS:-/}start-utils"
|
||||||
|
|
||||||
: "${QUILT_LAUNCHER:=}"
|
: "${QUILT_LAUNCHER:=}"
|
||||||
: "${QUILT_LAUNCHER_URL:=}"
|
: "${QUILT_LAUNCHER_URL:=}"
|
||||||
@@ -29,7 +29,7 @@ if [[ $QUILT_LAUNCHER ]]; then
|
|||||||
resolveVersion
|
resolveVersion
|
||||||
|
|
||||||
export FAMILY=FABRIC
|
export FAMILY=FABRIC
|
||||||
exec "$(dirname "$0")/start-setupWorld" "$@"
|
exec "${SCRIPTS:-/}start-setupWorld" "$@"
|
||||||
|
|
||||||
elif [[ $QUILT_LAUNCHER_URL ]]; then
|
elif [[ $QUILT_LAUNCHER_URL ]]; then
|
||||||
logError "QUILT_LAUNCHER_URL is not longer supported. Pre-download and use QUILT_LAUNCHER."
|
logError "QUILT_LAUNCHER_URL is not longer supported. Pre-download and use QUILT_LAUNCHER."
|
||||||
@@ -52,4 +52,4 @@ fi
|
|||||||
applyResultsFile ${resultsFile}
|
applyResultsFile ${resultsFile}
|
||||||
|
|
||||||
export FAMILY=FABRIC
|
export FAMILY=FABRIC
|
||||||
exec "$(dirname "$0")/start-setupWorld" "$@"
|
exec "${SCRIPTS:-/}start-setupWorld" "$@"
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# shellcheck source=start-utils
|
# shellcheck source=start-utils
|
||||||
. "$(dirname "$0")/start-utils"
|
. ${SCRIPTS:-/}start-utils
|
||||||
|
|
||||||
export TYPE=spongevanilla
|
export TYPE=spongevanilla
|
||||||
: ${SPONGEBRANCH:=STABLE}
|
: ${SPONGEBRANCH:=STABLE}
|
||||||
@@ -37,4 +37,4 @@ if [ ! -e "$SERVER" ] || [ -n "$FORCE_REDOWNLOAD" ]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
export FAMILY=SPONGE
|
export FAMILY=SPONGE
|
||||||
exec "$(dirname "$0")/start-setupWorld" "$@"
|
exec "${SCRIPTS:-/}start-setupWorld" "$@"
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# shellcheck source=start-utils
|
# shellcheck source=start-utils
|
||||||
. "$(dirname "$0")/start-utils"
|
. "${SCRIPTS:-/}start-utils"
|
||||||
isDebugging && set -x
|
isDebugging && set -x
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
|
|
||||||
@@ -53,4 +53,4 @@ fi
|
|||||||
|
|
||||||
isDebugging && ls -l
|
isDebugging && ls -l
|
||||||
export FAMILY=VANILLA
|
export FAMILY=VANILLA
|
||||||
exec "$(dirname "$0")/start-setupWorld" "$@"
|
exec "${SCRIPTS:-/}start-setupWorld" "$@"
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
: "${CUSTOM_JAR_EXEC:=}"
|
: "${CUSTOM_JAR_EXEC:=}"
|
||||||
|
|
||||||
# shellcheck source=start-utils
|
# shellcheck source=start-utils
|
||||||
. "$(dirname "$0")/start-utils"
|
. "${SCRIPTS:-/}start-utils"
|
||||||
isDebugging && set -x
|
isDebugging && set -x
|
||||||
baseDataDir=/data
|
baseDataDir=/data
|
||||||
tmpServerIconPath=/tmp/icon.img
|
tmpServerIconPath=/tmp/icon.img
|
||||||
@@ -151,22 +151,19 @@ if isTrue "${ENABLE_JMX}"; then
|
|||||||
log "JMX is enabled. Make sure you have port forwarding for ${JMX_PORT}"
|
log "JMX is enabled. Make sure you have port forwarding for ${JMX_PORT}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
: "${USE_AIKAR_FLAGS:=false}"
|
|
||||||
: "${USE_MEOWICE_FLAGS:=false}"
|
|
||||||
: "${USE_MEOWICE_GRAALVM_FLAGS:=false}"
|
|
||||||
|
|
||||||
if isTrue "${USE_MEOWICE_FLAGS}"; then
|
if isTrue "${USE_MEOWICE_FLAGS}"; then
|
||||||
java_major_version=$(mc-image-helper java-release)
|
java_major_version=$(mc-image-helper java-release)
|
||||||
if [[ $java_major_version -gt 16 ]]; then
|
if [[ $java_major_version -gt 16 ]]; then
|
||||||
|
USE_MEOWICE_GRAALVM_FLAGS="${USE_MEOWICE_GRAALVM_FLAGS:-TRUE}"
|
||||||
log "Java version $java_major_version using MeowIce's flags for Java 17+"
|
log "Java version $java_major_version using MeowIce's flags for Java 17+"
|
||||||
else
|
else
|
||||||
log "Your Java version is $java_major_version, MeowIce's flags are for Java 17+ falling back to Aikar's"
|
log "Your Java version is $java_major_version, MeowIce's flags are for Java 17+ falling back to Aikar's"
|
||||||
USE_MEOWICE_FLAGS=FALSE
|
USE_MEOWICE_FLAGS=FALSE
|
||||||
USE_AIKAR_FLAGS=TRUE
|
|
||||||
fi
|
fi
|
||||||
|
USE_AIKAR_FLAGS=TRUE
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if isTrue "${USE_AIKAR_FLAGS}" || isTrue "${USE_MEOWICE_FLAGS}"; then
|
if isTrue "${USE_AIKAR_FLAGS}"; then
|
||||||
# From https://mcflags.emc.gs/
|
# From https://mcflags.emc.gs/
|
||||||
if isTrue "${USE_MEOWICE_FLAGS}"; then
|
if isTrue "${USE_MEOWICE_FLAGS}"; then
|
||||||
log "Using MeowIce's flags"
|
log "Using MeowIce's flags"
|
||||||
@@ -216,19 +213,14 @@ if isTrue "${USE_AIKAR_FLAGS}" || isTrue "${USE_MEOWICE_FLAGS}"; then
|
|||||||
-XX:SurvivorRatio=32
|
-XX:SurvivorRatio=32
|
||||||
-XX:+PerfDisableSharedMem
|
-XX:+PerfDisableSharedMem
|
||||||
-XX:MaxTenuringThreshold=1
|
-XX:MaxTenuringThreshold=1
|
||||||
|
-Dusing.aikars.flags=https://mcflags.emc.gs
|
||||||
|
-Daikars.new.flags=true
|
||||||
"
|
"
|
||||||
if isTrue "${USE_AIKAR_FLAGS}"; then
|
|
||||||
JVM_XX_OPTS="${JVM_XX_OPTS}
|
|
||||||
-Dusing.aikars.flags=https://mcflags.emc.gs
|
|
||||||
-Daikars.new.flags=true
|
|
||||||
"
|
|
||||||
fi
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if isTrue "${USE_MEOWICE_FLAGS}"; then
|
if isTrue "${USE_MEOWICE_FLAGS}"; then
|
||||||
JVM_XX_OPTS="${JVM_XX_OPTS}
|
JVM_XX_OPTS="${JVM_XX_OPTS}
|
||||||
-XX:+UnlockDiagnosticVMOptions
|
-XX:+UnlockDiagnosticVMOptions
|
||||||
-XX:+UnlockExperimentalVMOptions
|
|
||||||
-XX:G1SATBBufferEnqueueingThresholdPercent=30
|
-XX:G1SATBBufferEnqueueingThresholdPercent=30
|
||||||
-XX:G1ConcMarkStepDurationMillis=5
|
-XX:G1ConcMarkStepDurationMillis=5
|
||||||
-XX:+UseNUMA
|
-XX:+UseNUMA
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# shellcheck source=start-utils
|
# shellcheck source=start-utils
|
||||||
. "$(dirname "$0")/start-utils"
|
. "${SCRIPTS:-/}start-utils"
|
||||||
|
|
||||||
: "${RCON_CMDS_STARTUP:=}"
|
: "${RCON_CMDS_STARTUP:=}"
|
||||||
: "${RCON_CMDS_ON_CONNECT:=}"
|
: "${RCON_CMDS_ON_CONNECT:=}"
|
||||||
@@ -25,4 +25,4 @@ isDebugging && set -x
|
|||||||
isNumericElseSetToDefault RCON_CMDS_PERIOD 10
|
isNumericElseSetToDefault RCON_CMDS_PERIOD 10
|
||||||
checkIfNotZeroElseSetToDefault RCON_CMDS_PERIOD 10
|
checkIfNotZeroElseSetToDefault RCON_CMDS_PERIOD 10
|
||||||
|
|
||||||
"$(dirname "$0")/auto/rcon-cmds-daemon.sh" &
|
/usr/local/bin/rcon-cmds-daemon.sh &
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ set -e -o pipefail
|
|||||||
: "${REMOVE_OLD_DATAPACKS_INCLUDE:=*.zip}"
|
: "${REMOVE_OLD_DATAPACKS_INCLUDE:=*.zip}"
|
||||||
|
|
||||||
# shellcheck source=start-utils
|
# shellcheck source=start-utils
|
||||||
. "$(dirname "$0")/start-utils"
|
. "${SCRIPTS:-/}start-utils"
|
||||||
isDebugging && set -x
|
isDebugging && set -x
|
||||||
|
|
||||||
out_dir=/data/${LEVEL:-world}/datapacks
|
out_dir=/data/${LEVEL:-world}/datapacks
|
||||||
@@ -89,4 +89,4 @@ if [[ ${VANILLATWEAKS_FILE} || ${VANILLATWEAKS_SHARECODE} ]]; then
|
|||||||
--pack-files="$VANILLATWEAKS_FILE"
|
--pack-files="$VANILLATWEAKS_FILE"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exec "$(dirname "$0")/start-setupModpack" "$@"
|
exec "${SCRIPTS:-/}start-setupModpack" "$@"
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# shellcheck source=start-utils
|
# shellcheck source=start-utils
|
||||||
. "$(dirname "$0")/start-utils"
|
. "${SCRIPTS:-/}start-utils"
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
handleDebugMode
|
handleDebugMode
|
||||||
@@ -17,7 +17,6 @@ handleDebugMode
|
|||||||
: "${DOWNLOAD_DEFAULTS:=}"
|
: "${DOWNLOAD_DEFAULTS:=}"
|
||||||
: "${DOWNLOAD_DEFAULT_CONFIGS:=}"
|
: "${DOWNLOAD_DEFAULT_CONFIGS:=}"
|
||||||
: "${SKIP_DOWNLOAD_DEFAULTS:=false}"
|
: "${SKIP_DOWNLOAD_DEFAULTS:=false}"
|
||||||
: "${DOWNLOAD_EXTRA_CONFIGS:=}"
|
|
||||||
|
|
||||||
if isTrue "${REPLACE_ENV_IN_PLACE}"; then
|
if isTrue "${REPLACE_ENV_IN_PLACE}"; then
|
||||||
log "Replacing env variables in ${REPLACE_ENV_PATHS} that match the prefix '$REPLACE_ENV_VARIABLE_PREFIX' ..."
|
log "Replacing env variables in ${REPLACE_ENV_PATHS} that match the prefix '$REPLACE_ENV_VARIABLE_PREFIX' ..."
|
||||||
@@ -55,15 +54,6 @@ if isFalse "$SKIP_DOWNLOAD_DEFAULTS"; then
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ $DOWNLOAD_EXTRA_CONFIGS ]]; then
|
|
||||||
mc-image-helper mcopy \
|
|
||||||
--to /data \
|
|
||||||
--skip-existing \
|
|
||||||
--skip-up-to-date=false \
|
|
||||||
--quiet-when-skipped \
|
|
||||||
"$DOWNLOAD_EXTRA_CONFIGS"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ ${PATCH_DEFINITIONS} ]]; then
|
if [[ ${PATCH_DEFINITIONS} ]]; then
|
||||||
log "Applying patch definitions from ${PATCH_DEFINITIONS}"
|
log "Applying patch definitions from ${PATCH_DEFINITIONS}"
|
||||||
mc-image-helper patch \
|
mc-image-helper patch \
|
||||||
@@ -71,4 +61,4 @@ if [[ ${PATCH_DEFINITIONS} ]]; then
|
|||||||
"${PATCH_DEFINITIONS}"
|
"${PATCH_DEFINITIONS}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exec "$(dirname "$0")/start-setupRbac" "$@"
|
exec "${SCRIPTS:-/}start-setupRbac" "$@"
|
||||||
|
|||||||
@@ -3,8 +3,10 @@
|
|||||||
set -e -o pipefail
|
set -e -o pipefail
|
||||||
|
|
||||||
: "${REMOVE_OLD_MODS:=false}"
|
: "${REMOVE_OLD_MODS:=false}"
|
||||||
|
: "${MODS:=}"
|
||||||
: "${MODS_OUT_DIR:=/data/mods}"
|
: "${MODS_OUT_DIR:=/data/mods}"
|
||||||
: "${MODS_FILE:=}"
|
: "${MODS_FILE:=}"
|
||||||
|
: "${PLUGINS:=}"
|
||||||
: "${PLUGINS_OUT_DIR:=/data/plugins}"
|
: "${PLUGINS_OUT_DIR:=/data/plugins}"
|
||||||
: "${PLUGINS_FILE:=}"
|
: "${PLUGINS_FILE:=}"
|
||||||
: "${REMOVE_OLD_MODS_DEPTH:=1} "
|
: "${REMOVE_OLD_MODS_DEPTH:=1} "
|
||||||
@@ -24,7 +26,7 @@ if [[ -n ${CF_API_KEY_FILE} ]]; then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# shellcheck source=start-utils
|
# shellcheck source=start-utils
|
||||||
. "$(dirname "$0")/start-utils"
|
. "${SCRIPTS:-/}start-utils"
|
||||||
isDebugging && set -x
|
isDebugging && set -x
|
||||||
|
|
||||||
# CURSE_URL_BASE used in manifest downloads below
|
# CURSE_URL_BASE used in manifest downloads below
|
||||||
@@ -92,7 +94,7 @@ fi
|
|||||||
|
|
||||||
function handleListings() {
|
function handleListings() {
|
||||||
if usesMods && usesPlugins; then
|
if usesMods && usesPlugins; then
|
||||||
if [[ -v MODS ]]; then
|
if [[ "$MODS" ]]; then
|
||||||
|
|
||||||
ensureRemoveAllModsOff "MODS is set"
|
ensureRemoveAllModsOff "MODS is set"
|
||||||
|
|
||||||
@@ -103,7 +105,7 @@ function handleListings() {
|
|||||||
--to="$MODS_OUT_DIR" \
|
--to="$MODS_OUT_DIR" \
|
||||||
"$MODS"
|
"$MODS"
|
||||||
fi
|
fi
|
||||||
if [[ -v PLUGINS ]]; then
|
if [[ "$PLUGINS" ]]; then
|
||||||
ensureRemoveAllModsOff "PLUGINS is set"
|
ensureRemoveAllModsOff "PLUGINS is set"
|
||||||
mkdir -p "$PLUGINS_OUT_DIR"
|
mkdir -p "$PLUGINS_OUT_DIR"
|
||||||
mc-image-helper mcopy \
|
mc-image-helper mcopy \
|
||||||
@@ -138,14 +140,14 @@ function handleListings() {
|
|||||||
outDir="$PLUGINS_OUT_DIR"
|
outDir="$PLUGINS_OUT_DIR"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ -v MODS || -v PLUGINS ]]; then
|
if [[ "$MODS" || "$PLUGINS" ]]; then
|
||||||
ensureRemoveAllModsOff "MODS or PLUGINS is set"
|
ensureRemoveAllModsOff "MODS or PLUGINS is set"
|
||||||
mkdir -p "$outDir"
|
mkdir -p "$outDir"
|
||||||
mc-image-helper mcopy \
|
mc-image-helper mcopy \
|
||||||
--glob=*.jar \
|
--glob=*.jar \
|
||||||
--scope=var-list \
|
--scope=var-list \
|
||||||
--to="$outDir" \
|
--to="$outDir" \
|
||||||
"${MODS:-}" "${PLUGINS:-}"
|
"$MODS" "$PLUGINS"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ "$MODS_FILE" || "$PLUGINS_FILE" ]]; then
|
if [[ "$MODS_FILE" || "$PLUGINS_FILE" ]]; then
|
||||||
@@ -253,6 +255,7 @@ function handleGenericPacks() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function handleModrinthProjects() {
|
function handleModrinthProjects() {
|
||||||
|
: "${MODRINTH_PROJECTS:=}"
|
||||||
: "${MODRINTH_ALLOWED_VERSION_TYPE:=release}"
|
: "${MODRINTH_ALLOWED_VERSION_TYPE:=release}"
|
||||||
: "${MODRINTH_DOWNLOAD_DEPENDENCIES:=none}"
|
: "${MODRINTH_DOWNLOAD_DEPENDENCIES:=none}"
|
||||||
if [[ -v MODRINTH_DOWNLOAD_OPTIONAL_DEPENDENCIES ]]; then
|
if [[ -v MODRINTH_DOWNLOAD_OPTIONAL_DEPENDENCIES ]]; then
|
||||||
@@ -260,7 +263,7 @@ function handleModrinthProjects() {
|
|||||||
logWarning " Use MODRINTH_DOWNLOAD_DEPENDENCIES=optional instead"
|
logWarning " Use MODRINTH_DOWNLOAD_DEPENDENCIES=optional instead"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ -v MODRINTH_PROJECTS ]]; then
|
if [[ $MODRINTH_PROJECTS ]]; then
|
||||||
|
|
||||||
if isType CUSTOM; then
|
if isType CUSTOM; then
|
||||||
if ! [[ $MODRINTH_LOADER ]]; then
|
if ! [[ $MODRINTH_LOADER ]]; then
|
||||||
@@ -363,4 +366,4 @@ case "X$MODCONFIG" in
|
|||||||
esac
|
esac
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exec "$(dirname "$0")/start-setupMounts" "$@"
|
exec "${SCRIPTS:-/}start-setupMounts" "$@"
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# shellcheck source=start-utils
|
# shellcheck source=start-utils
|
||||||
. "$(dirname "$0")/start-utils"
|
. "${SCRIPTS:-/}start-utils"
|
||||||
|
|
||||||
: "${SYNC_SKIP_NEWER_IN_DESTINATION:=${PLUGINS_SYNC_UPDATE:-true}}"
|
: "${SYNC_SKIP_NEWER_IN_DESTINATION:=${PLUGINS_SYNC_UPDATE:-true}}"
|
||||||
: "${REPLACE_ENV_DURING_SYNC:=true}"
|
: "${REPLACE_ENV_DURING_SYNC:=true}"
|
||||||
@@ -58,4 +58,4 @@ fi
|
|||||||
log "Copying any configs from ${COPY_CONFIG_SRC} to ${COPY_CONFIG_DEST}"
|
log "Copying any configs from ${COPY_CONFIG_SRC} to ${COPY_CONFIG_DEST}"
|
||||||
mc-image-helper-mounts "${COPY_CONFIG_SRC}" "${COPY_CONFIG_DEST}"
|
mc-image-helper-mounts "${COPY_CONFIG_SRC}" "${COPY_CONFIG_DEST}"
|
||||||
|
|
||||||
exec "$(dirname "$0")/start-setupServerProperties" "$@"
|
exec "${SCRIPTS:-/}start-setupServerProperties" "$@"
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ IFS=$'\n\t'
|
|||||||
: "${EXISTING_WHITELIST_FILE:=SYNC_FILE_MERGE_LIST}"
|
: "${EXISTING_WHITELIST_FILE:=SYNC_FILE_MERGE_LIST}"
|
||||||
|
|
||||||
# shellcheck source=start-utils
|
# shellcheck source=start-utils
|
||||||
. "$(dirname "$0")/start-utils"
|
. "${SCRIPTS:-/}start-utils"
|
||||||
isDebugging && set -x
|
isDebugging && set -x
|
||||||
|
|
||||||
if [[ -v APPEND_OPS ]] && isTrue "${APPEND_OPS}"; then
|
if [[ -v APPEND_OPS ]] && isTrue "${APPEND_OPS}"; then
|
||||||
@@ -97,4 +97,4 @@ if [[ -v WHITELIST ]]; then
|
|||||||
$WHITELIST
|
$WHITELIST
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exec "$(dirname "$0")/start-finalExec" "$@"
|
exec "${SCRIPTS:-/}start-finalExec" "$@"
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# shellcheck source=start-utils
|
# shellcheck source=start-utils
|
||||||
. "$(dirname "$0")/start-utils"
|
. "${SCRIPTS:-/}start-utils"
|
||||||
|
|
||||||
: "${SERVER_PROPERTIES:=/data/server.properties}"
|
: "${SERVER_PROPERTIES:=/data/server.properties}"
|
||||||
: "${OVERRIDE_SERVER_PROPERTIES:=true}"
|
: "${OVERRIDE_SERVER_PROPERTIES:=true}"
|
||||||
@@ -179,4 +179,4 @@ if isTrue "${DUMP_SERVER_PROPERTIES:-false}"; then
|
|||||||
cat "${SERVER_PROPERTIES}"
|
cat "${SERVER_PROPERTIES}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exec "$(dirname "$0")/start-setupEnvVariables" "$@"
|
exec "${SCRIPTS:-/}start-setupEnvVariables" "$@"
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
# shellcheck source=start-utils
|
# shellcheck source=start-utils
|
||||||
. "$(dirname "$0")/start-utils"
|
. "${SCRIPTS:-/}start-utils"
|
||||||
set -e
|
set -e
|
||||||
isDebugging && set -x
|
isDebugging && set -x
|
||||||
|
|
||||||
@@ -135,4 +135,4 @@ fi
|
|||||||
[[ -f ${worldDownload} ]] && rm ${worldDownload}
|
[[ -f ${worldDownload} ]] && rm ${worldDownload}
|
||||||
[[ -d ${tmpWorldData} ]] && rm -rf ${tmpWorldData}
|
[[ -d ${tmpWorldData} ]] && rm -rf ${tmpWorldData}
|
||||||
|
|
||||||
exec "$(dirname "$0")/start-setupDatapack" "$@"
|
exec "${SCRIPTS:-/}start-setupDatapack" "$@"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ set -euo pipefail
|
|||||||
IFS=$'\n\t'
|
IFS=$'\n\t'
|
||||||
|
|
||||||
# shellcheck source=start-utils
|
# shellcheck source=start-utils
|
||||||
. "$(dirname "$0")/start-utils"
|
. "${SCRIPTS:-/}start-utils"
|
||||||
handleDebugMode
|
handleDebugMode
|
||||||
|
|
||||||
: "${SPIGET_RESOURCES:=}"
|
: "${SPIGET_RESOURCES:=}"
|
||||||
@@ -142,4 +142,4 @@ if [[ ${SPIGET_RESOURCES} ]]; then
|
|||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
exec "$(dirname "$0")/start-setupWorld" "$@"
|
exec "${SCRIPTS:-/}start-setupWorld" "$@"
|
||||||
|
|||||||
@@ -1,2 +1 @@
|
|||||||
mc-image-helper assert fileExists "/data/NanoLimbo*.jar"
|
mc-image-helper assert fileExists "/data/NanoLimbo-*.jar"
|
||||||
mc-image-helper assert fileExists "/data/settings.yml"
|
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ image=""
|
|||||||
|
|
||||||
# Go through each folder in setuponly and test setups
|
# Go through each folder in setuponly and test setups
|
||||||
if (( $# == 0 )); then
|
if (( $# == 0 )); then
|
||||||
readarray -t folders < <(find . -maxdepth 2 -mindepth 2 -name docker-compose.yml -exec dirname "{}" \;)
|
readarray -t folders < <(find . -maxdepth 2 -mindepth 2 -name docker-compose.yml -printf '%h\n')
|
||||||
foldersList=("${folders[@]}")
|
foldersList=("${folders[@]}")
|
||||||
image=" using $IMAGE_TO_TEST"
|
image=" using $IMAGE_TO_TEST"
|
||||||
fi
|
fi
|
||||||
|
|||||||
Reference in New Issue
Block a user