mirror of
https://github.com/itzg/docker-minecraft-server.git
synced 2026-09-07 06:27:58 +00:00
Compare commits
3
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
dab552e3b7 | ||
|
|
899631c498 | ||
|
|
fac46d7a2e |
@@ -1,15 +0,0 @@
|
|||||||
name: Auto release
|
|
||||||
on:
|
|
||||||
schedule:
|
|
||||||
- cron: "0 14 * * *"
|
|
||||||
workflow_dispatch:
|
|
||||||
jobs:
|
|
||||||
auto-release:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: zenengeo/github-auto-release-action@main
|
|
||||||
with:
|
|
||||||
stable-duration: 3d
|
|
||||||
force-duration: 14d
|
|
||||||
token: '${{ secrets.GH_TOKEN }}'
|
|
||||||
|
|
||||||
@@ -22,7 +22,6 @@ jobs:
|
|||||||
# 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
|
- java25
|
||||||
- java25-jdk
|
|
||||||
- java25-graalvm
|
- java25-graalvm
|
||||||
- java21
|
- java21
|
||||||
- java21-alpine
|
- java21-alpine
|
||||||
@@ -30,10 +29,12 @@ jobs:
|
|||||||
- java21-jdk
|
- java21-jdk
|
||||||
- java17
|
- java17
|
||||||
- java17-graalvm
|
- java17-graalvm
|
||||||
|
- java17-alpine
|
||||||
- java16
|
- java16
|
||||||
- java11
|
- java11
|
||||||
- java8
|
- java8
|
||||||
- java8-graalvm-ce
|
- java8-graalvm-ce
|
||||||
|
- java8-openj9
|
||||||
- java8-jdk
|
- java8-jdk
|
||||||
include:
|
include:
|
||||||
# JAVA 25
|
# JAVA 25
|
||||||
@@ -41,10 +42,6 @@ jobs:
|
|||||||
baseImage: eclipse-temurin:25-jre
|
baseImage: eclipse-temurin:25-jre
|
||||||
platforms: linux/amd64,linux/arm64
|
platforms: linux/amd64,linux/arm64
|
||||||
mcVersion: latest
|
mcVersion: latest
|
||||||
- variant: java25-jdk
|
|
||||||
baseImage: eclipse-temurin:25
|
|
||||||
platforms: linux/amd64,linux/arm64
|
|
||||||
mcVersion: latest
|
|
||||||
- variant: java25-graalvm
|
- variant: java25-graalvm
|
||||||
baseImage: container-registry.oracle.com/graalvm/jdk:25-ol10
|
baseImage: container-registry.oracle.com/graalvm/jdk:25-ol10
|
||||||
platforms: linux/amd64,linux/arm64
|
platforms: linux/amd64,linux/arm64
|
||||||
@@ -76,6 +73,10 @@ jobs:
|
|||||||
baseImage: container-registry.oracle.com/graalvm/jdk:17-ol10
|
baseImage: container-registry.oracle.com/graalvm/jdk:17-ol10
|
||||||
platforms: linux/amd64,linux/arm64
|
platforms: linux/amd64,linux/arm64
|
||||||
mcVersion: 1.20.4
|
mcVersion: 1.20.4
|
||||||
|
- variant: java17-alpine
|
||||||
|
baseImage: eclipse-temurin:17-jre-alpine
|
||||||
|
platforms: linux/amd64
|
||||||
|
mcVersion: 1.20.4
|
||||||
# JAVA 16
|
# JAVA 16
|
||||||
- variant: java16
|
- variant: java16
|
||||||
baseImage: adoptopenjdk:16-jre-hotspot
|
baseImage: adoptopenjdk:16-jre-hotspot
|
||||||
@@ -104,6 +105,12 @@ jobs:
|
|||||||
platforms: linux/amd64,linux/arm64
|
platforms: linux/amd64,linux/arm64
|
||||||
mcVersion: 1.12.2
|
mcVersion: 1.12.2
|
||||||
# Pin version for Java 8
|
# Pin version for Java 8
|
||||||
|
# mcHelperVersion: 1.46.0
|
||||||
|
- variant: java8-openj9
|
||||||
|
baseImage: ibm-semeru-runtimes:open-8u312-b07-jre
|
||||||
|
platforms: linux/amd64,linux/arm64
|
||||||
|
mcVersion: 1.12.2
|
||||||
|
# Pin version for Java 8
|
||||||
# mcHelperVersion: 1.46.0
|
# mcHelperVersion: 1.46.0
|
||||||
env:
|
env:
|
||||||
IMAGE_TO_TEST: "${{ github.repository_owner }}/minecraft-server:test-${{ matrix.variant }}-${{ github.run_id }}"
|
IMAGE_TO_TEST: "${{ github.repository_owner }}/minecraft-server:test-${{ matrix.variant }}-${{ github.run_id }}"
|
||||||
@@ -112,14 +119,14 @@ jobs:
|
|||||||
runs-on: ubuntu-22.04
|
runs-on: ubuntu-22.04
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v6.0.0
|
uses: actions/checkout@v5.0.0
|
||||||
with:
|
with:
|
||||||
# for build-files step
|
# for build-files step
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
|
|
||||||
- name: Docker meta
|
- name: Docker meta
|
||||||
id: meta
|
id: meta
|
||||||
uses: docker/metadata-action@v5.10.0
|
uses: docker/metadata-action@v5.9.0
|
||||||
with:
|
with:
|
||||||
# NOTE for forks: if your Docker Hub organization doesn't match your Github repo's,
|
# NOTE for forks: if your Docker Hub organization doesn't match your Github repo's,
|
||||||
# then the use of ${{ github.repository_owner }} will need to be replaced.
|
# then the use of ${{ github.repository_owner }} will need to be replaced.
|
||||||
|
|||||||
@@ -50,7 +50,7 @@ jobs:
|
|||||||
runs-on: ubuntu-22.04
|
runs-on: ubuntu-22.04
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v6.0.0
|
uses: actions/checkout@v5.0.0
|
||||||
with:
|
with:
|
||||||
# for build-files step
|
# for build-files step
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
|
|||||||
+2
-2
@@ -44,12 +44,12 @@ 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.14.0
|
ARG MC_SERVER_RUNNER_VERSION=1.13.5
|
||||||
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.51.1
|
ARG MC_HELPER_VERSION=1.50.6
|
||||||
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
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
---
|
---
|
||||||
title: With Docker
|
title: Sending commands
|
||||||
---
|
---
|
||||||
|
|
||||||
[RCON](http://wiki.vg/RCON) is enabled by default, so you can `exec` into the container to
|
[RCON](http://wiki.vg/RCON) is enabled by default, so you can `exec` into the container to
|
||||||
@@ -66,4 +66,4 @@ and then Control-p Control-q to **detach**.
|
|||||||
|
|
||||||
!!! info "RCON is required for fully interactive, color console"
|
!!! info "RCON is required for fully interactive, color console"
|
||||||
|
|
||||||
RCON must be enabled, which is the default, in order to use a fully interactive console with auto-completion and colorized log output.
|
RCON must be enabled, which is the default, in order to use a fully interactive console with auto-completion and colorized log output.
|
||||||
@@ -27,18 +27,6 @@ There are optional volume paths that can be attached to supply content to be cop
|
|||||||
`/plugins`
|
`/plugins`
|
||||||
: content in this directory is synchronized into `/data/plugins` for server types that use plugins, [as described above](#mods-vs-plugins). For special cases, the source can be changed by setting `COPY_PLUGINS_SRC` and destination by setting `COPY_PLUGINS_DEST`. If using a mod-based loader, such as Forge or Fabric, but a hybrid mod like [Cardboard](https://modrinth.com/mod/cardboard), then set `USES_PLUGINS` to have the automation utilize `/plugins` mount.
|
: content in this directory is synchronized into `/data/plugins` for server types that use plugins, [as described above](#mods-vs-plugins). For special cases, the source can be changed by setting `COPY_PLUGINS_SRC` and destination by setting `COPY_PLUGINS_DEST`. If using a mod-based loader, such as Forge or Fabric, but a hybrid mod like [Cardboard](https://modrinth.com/mod/cardboard), then set `USES_PLUGINS` to have the automation utilize `/plugins` mount.
|
||||||
|
|
||||||
!!! example "Using Cardboard plugins with Fabric"
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
environment:
|
|
||||||
EULA: "TRUE"
|
|
||||||
TYPE: "FABRIC"
|
|
||||||
MODRINTH_PROJECTS: |
|
|
||||||
fabric-api
|
|
||||||
cardboard
|
|
||||||
USES_PLUGINS: true
|
|
||||||
```
|
|
||||||
|
|
||||||
`/mods`
|
`/mods`
|
||||||
: content in this directory is synchronized into `/data/mods` for server types that use mods, [as described above](#mods-vs-plugins). For special cases, the source can be changed by setting `COPY_MODS_SRC` and destination by setting `COPY_MODS_DEST`.
|
: content in this directory is synchronized into `/data/mods` for server types that use mods, [as described above](#mods-vs-plugins). For special cases, the source can be changed by setting `COPY_MODS_SRC` and destination by setting `COPY_MODS_DEST`.
|
||||||
|
|
||||||
|
|||||||
@@ -1,10 +1,7 @@
|
|||||||
mkdocs-material == 9.7.0
|
mkdocs-material == 9.6.23
|
||||||
mkdocs-autorefs == 1.4.3
|
mkdocs-autorefs == 1.4.3
|
||||||
mkdocstrings[python] == 0.30.1
|
mkdocstrings[python] == 0.30.1
|
||||||
mkdocs-literate-nav == 0.6.2
|
mkdocs-literate-nav == 0.6.2
|
||||||
mdx-gh-links == 0.4
|
mdx-gh-links == 0.4
|
||||||
# need to pin for auto reload to work
|
|
||||||
# see https://github.com/mkdocs/mkdocs/issues/4032
|
|
||||||
click==8.2.1
|
|
||||||
mkdocs-click == 0.9.0
|
mkdocs-click == 0.9.0
|
||||||
mkdocs-static-i18n == 1.3.0
|
mkdocs-static-i18n == 1.3.0
|
||||||
@@ -1,81 +0,0 @@
|
|||||||
---
|
|
||||||
title: With websocket
|
|
||||||
---
|
|
||||||
|
|
||||||
With `WEBSOCKET_CONSOLE` set to `true`, logs can be streamed, and commands sent, over a websocket connection.
|
|
||||||
The API is available on `/websocket`.
|
|
||||||
|
|
||||||
## Password
|
|
||||||
A password must be supplied using the `Sec-WebSocket-Protocol` header. This is done by putting `mc-server-runner-ws-v1` in the first slot, and the password in the second. The password can be set with `RCON_PASSWORD` or `WEBSOCKET_PASSWORD`. The latter overwrites the former. Authentication can be disabled with `WEBSOCKET_DISABLE_AUTHENTICATION`.
|
|
||||||
??? Example "Examples"
|
|
||||||
```js title="JavaScript example"
|
|
||||||
let socket = new WebSocket("http://localhost:80/websocket", ["mc-server-runner-ws-v1", "rcon-password"]);
|
|
||||||
```
|
|
||||||
|
|
||||||
## Allowed origins
|
|
||||||
A list of comma-separated allowed origins should be supplied with `WEBSOCKET_ALLOWED_ORIGINS`. Origin checking can be disabled with `WEBSOCKET_DISABLE_ORIGIN_CHECK`.
|
|
||||||
|
|
||||||
## Listen address
|
|
||||||
The listen address and port can be set with `WEBSOCKET_ADDRESS` (defaults to `0.0.0.0:80`), but it's recommended to listen on all interfaces when running in Docker.
|
|
||||||
|
|
||||||
## Log history
|
|
||||||
When a connection is established, the last 50 (by default, configurable with `WEBSOCKET_LOG_BUFFER_SIZE`) log lines are sent with a `logHistory` type message.
|
|
||||||
|
|
||||||
??? tip "Tip: Remember to forward the websocket port on the host"
|
|
||||||
|
|
||||||
```yaml title="compose.yaml"
|
|
||||||
services:
|
|
||||||
mc:
|
|
||||||
ports:
|
|
||||||
- '25565:25565'
|
|
||||||
- '80:80'
|
|
||||||
```
|
|
||||||
|
|
||||||
## Environment variables
|
|
||||||
| Environment Variable | Usage | Default |
|
|
||||||
| ---------------------------------- | ---------------------------------------------------------- | ------------ |
|
|
||||||
| `WEBSOCKET_CONSOLE` | Allow remote shell over websocket | `false` |
|
|
||||||
| `WEBSOCKET_ADDRESS` | Bind address for websocket server | `0.0.0.0:80` |
|
|
||||||
| `WEBSOCKET_DISABLE_ORIGIN_CHECK` | Disable checking if origin is trusted | `false` |
|
|
||||||
| `WEBSOCKET_ALLOWED_ORIGINS` | Comma-separated list of trusted origins | ` ` |
|
|
||||||
| `WEBSOCKET_PASSWORD` | Password will be the same as RCON_PASSWORD if unset | ` ` |
|
|
||||||
| `WEBSOCKET_DISABLE_AUTHENTICATION` | Disable websocket authentication | `false` |
|
|
||||||
| `WEBSOCKET_LOG_BUFFER_SIZE` | Number of log lines to save and send to connecting clients | `50` |
|
|
||||||
|
|
||||||
## API Schema
|
|
||||||
```ts title="API Schema"
|
|
||||||
interface StdinMessage {
|
|
||||||
type: "stdin";
|
|
||||||
data: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface StdoutMessage {
|
|
||||||
type: "stdout";
|
|
||||||
data: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface StderrMessage {
|
|
||||||
type: "stderr";
|
|
||||||
data: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
interface LogHistoryMessage {
|
|
||||||
type: "logHistory";
|
|
||||||
lines: string[];
|
|
||||||
}
|
|
||||||
|
|
||||||
interface AuthFailureMessage {
|
|
||||||
type: "authFailure";
|
|
||||||
reason: string;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Messages sent from Client -> Server
|
|
||||||
export type ClientMessage = StdinMessage;
|
|
||||||
|
|
||||||
// Messages sent from Server -> Client
|
|
||||||
export type ServerMessage =
|
|
||||||
| StdoutMessage
|
|
||||||
| StderrMessage
|
|
||||||
| LogHistoryMessage
|
|
||||||
| AuthFailureMessage;
|
|
||||||
```
|
|
||||||
@@ -7,33 +7,33 @@ To manage a CurseForge modpack automatically with upgrade support, pinned or lat
|
|||||||
!!! warning "CurseForge API key usage"
|
!!! warning "CurseForge API key usage"
|
||||||
|
|
||||||
A CurseForge API key is **required** to use this feature. Go to their [developer console](https://console.curseforge.com/), generate an API key, and set the environment variable `CF_API_KEY`.
|
A CurseForge API key is **required** to use this feature. Go to their [developer console](https://console.curseforge.com/), generate an API key, and set the environment variable `CF_API_KEY`.
|
||||||
|
|
||||||
When entering your API Key in a docker compose file you will need to escape any `$` character with a second `$`. Refer to [this compose file reference section](https://docs.docker.com/compose/compose-file/compose-file-v3/#variable-substitution) for more information.
|
When entering your API Key in a docker compose file you will need to escape any `$` character with a second `$`. Refer to [this compose file reference section](https://docs.docker.com/compose/compose-file/compose-file-v3/#variable-substitution) for more information.
|
||||||
|
|
||||||
Example if your key is `$11$22$33aaaaaaaaaaaaaaaaaaaaaaaaaa`:
|
Example if your key is `$11$22$33aaaaaaaaaaaaaaaaaaaaaaaaaa`:
|
||||||
```yaml title="compose.yaml"
|
```yaml title="compose.yaml"
|
||||||
environment:
|
environment:
|
||||||
CF_API_KEY: '$$11$$22$$33aaaaaaaaaaaaaaaaaaaaaaaaaa'
|
CF_API_KEY: '$$11$$22$$33aaaaaaaaaaaaaaaaaaaaaaaaaa'
|
||||||
```
|
```
|
||||||
If you use `docker run` you will need to make sure to use single quotes:
|
If you use `docker run` you will need to make sure to use single quotes:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
docker run ... -e CF_API_KEY='$11$22$33aaaaaaaaaaaaaaaaaaaaaaaaaa'
|
docker run ... -e CF_API_KEY='$11$22$33aaaaaaaaaaaaaaaaaaaaaaaaaa'
|
||||||
```
|
```
|
||||||
|
|
||||||
To avoid exposing the API key, it is highly recommended to use a `.env` file, which is [loaded automatically by docker compose](https://docs.docker.com/compose/environment-variables/set-environment-variables/#substitute-with-an-env-file). You **do not** need to escape `$`'s with a second `$` in the `.env` file **as long as the key is wrapped in single quotes**.
|
To avoid exposing the API key, it is highly recommended to use a `.env` file, which is [loaded automatically by docker compose](https://docs.docker.com/compose/environment-variables/set-environment-variables/#substitute-with-an-env-file). You **do not** need to escape `$`'s with a second `$` in the `.env` file **as long as the key is wrapped in single quotes**.
|
||||||
|
|
||||||
```title=".env"
|
```title=".env"
|
||||||
CF_API_KEY='$11$22$33aaaaaaaaaaaaaaaaaaaaaaaaaa'
|
CF_API_KEY='$11$22$33aaaaaaaaaaaaaaaaaaaaaaaaaa'
|
||||||
```
|
```
|
||||||
|
|
||||||
The variable should to be referenced from the compose file, such as:
|
The variable should to be referenced from the compose file, such as:
|
||||||
|
|
||||||
```yaml title="compose.yaml"
|
```yaml title="compose.yaml"
|
||||||
environment:
|
environment:
|
||||||
CF_API_KEY: ${CF_API_KEY}
|
CF_API_KEY: ${CF_API_KEY}
|
||||||
```
|
```
|
||||||
|
|
||||||
The .env file should be placed in the same directory as your compose file like so:
|
The .env file should be placed in the same directory as your compose file like so:
|
||||||
|
|
||||||
```
|
```
|
||||||
@@ -42,12 +42,12 @@ To manage a CurseForge modpack automatically with upgrade support, pinned or lat
|
|||||||
├── compose.yaml
|
├── compose.yaml
|
||||||
├── data/
|
├── data/
|
||||||
```
|
```
|
||||||
|
|
||||||
To use the equivalent with `docker run` you need to specify the `.env` file explicitly:
|
To use the equivalent with `docker run` you need to specify the `.env` file explicitly:
|
||||||
```shell
|
```shell
|
||||||
docker run --env-file=.env itzg/minecraft-server
|
docker run --env-file=.env itzg/minecraft-server
|
||||||
```
|
```
|
||||||
|
|
||||||
Alternately you can use [docker secrets](https://docs.docker.com/compose/how-tos/use-secrets/) with a `CF_API_KEY_FILE` environment variable:
|
Alternately you can use [docker secrets](https://docs.docker.com/compose/how-tos/use-secrets/) with a `CF_API_KEY_FILE` environment variable:
|
||||||
```yaml title="compose.yaml"
|
```yaml title="compose.yaml"
|
||||||
service:
|
service:
|
||||||
@@ -55,7 +55,7 @@ To manage a CurseForge modpack automatically with upgrade support, pinned or lat
|
|||||||
CF_API_KEY_FILE: /run/secrets/cf_api_key
|
CF_API_KEY_FILE: /run/secrets/cf_api_key
|
||||||
secrets:
|
secrets:
|
||||||
- cf_api_key
|
- cf_api_key
|
||||||
|
|
||||||
secrets:
|
secrets:
|
||||||
cf_api_key:
|
cf_api_key:
|
||||||
file: cf_api_key.secret
|
file: cf_api_key.secret
|
||||||
@@ -64,14 +64,14 @@ To manage a CurseForge modpack automatically with upgrade support, pinned or lat
|
|||||||
|
|
||||||
!!! note
|
!!! note
|
||||||
Be sure to use the appropriate [image tag for the Java version compatible with the modpack](../../versions/java.md).
|
Be sure to use the appropriate [image tag for the Java version compatible with the modpack](../../versions/java.md).
|
||||||
|
|
||||||
Most modpacks require a good amount of memory, so it best to set `MEMORY` to at least "4G" since the default is only 1 GB.
|
Most modpacks require a good amount of memory, so it best to set `MEMORY` to at least "4G" since the default is only 1 GB.
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
Use one of the following to specify the modpack to install:
|
Use one of the following to specify the modpack to install:
|
||||||
|
|
||||||
Pass a page URL to the modpack or a specific file with `CF_PAGE_URL` such as the modpack page "https://www.curseforge.com/minecraft/modpacks/all-the-mods-8" or a specific file "https://www.curseforge.com/minecraft/modpacks/all-the-mods-8/files/4248390".
|
Pass a page URL to the modpack or a specific file with `CF_PAGE_URL` such as the modpack page "https://www.curseforge.com/minecraft/modpacks/all-the-mods-8" or a specific file "https://www.curseforge.com/minecraft/modpacks/all-the-mods-8/files/4248390".
|
||||||
|
|
||||||
!!! example "Using CF_PAGE_URL"
|
!!! example "Using CF_PAGE_URL"
|
||||||
|
|
||||||
@@ -83,7 +83,7 @@ Pass a page URL to the modpack or a specific file with `CF_PAGE_URL` such as the
|
|||||||
CF_API_KEY: ${CF_API_KEY}
|
CF_API_KEY: ${CF_API_KEY}
|
||||||
CF_PAGE_URL: https://www.curseforge.com/minecraft/modpacks/all-the-mods-8
|
CF_PAGE_URL: https://www.curseforge.com/minecraft/modpacks/all-the-mods-8
|
||||||
```
|
```
|
||||||
|
|
||||||
```title="Using docker run"
|
```title="Using docker run"
|
||||||
docker run -e CF_API_KEY=${CF_API_KEY} -e TYPE=AUTO_CURSEFORGE -e CF_PAGE_URL=https://www.curseforge.com/minecraft/modpacks/all-the-mods-8
|
docker run -e CF_API_KEY=${CF_API_KEY} -e TYPE=AUTO_CURSEFORGE -e CF_PAGE_URL=https://www.curseforge.com/minecraft/modpacks/all-the-mods-8
|
||||||
```
|
```
|
||||||
@@ -102,7 +102,7 @@ Instead of a URL, the modpack slug can be provided as `CF_SLUG`. The slug is the
|
|||||||
CF_API_KEY: ${CF_API_KEY}
|
CF_API_KEY: ${CF_API_KEY}
|
||||||
CF_SLUG: all-the-mods-8
|
CF_SLUG: all-the-mods-8
|
||||||
```
|
```
|
||||||
|
|
||||||
```title="Using docker run"
|
```title="Using docker run"
|
||||||
docker run -e CF_API_KEY=${CF_API_KEY} -e TYPE=AUTO_CURSEFORGE -e CF_SLUG=all-the-mods-8
|
docker run -e CF_API_KEY=${CF_API_KEY} -e TYPE=AUTO_CURSEFORGE -e CF_SLUG=all-the-mods-8
|
||||||
```
|
```
|
||||||
@@ -137,30 +137,6 @@ The following examples all refer to version 1.0.7 of ATM8:
|
|||||||
|
|
||||||
Pinning modpack version also pins the mod loader (to the version specified by the modpack). Mod loader version cannot be pinned independently of the modpack.
|
Pinning modpack version also pins the mod loader (to the version specified by the modpack). Mod loader version cannot be pinned independently of the modpack.
|
||||||
|
|
||||||
### Custom modloader versions
|
|
||||||
|
|
||||||
By default, AUTO_CURSEFORGE will use the exact modloader version declared by the modpack. However, you can override the modloader version by setting the following environment variable:
|
|
||||||
|
|
||||||
- `CF_MOD_LOADER_VERSION`: Override the mod loader version (e.g., `43.4.22`)
|
|
||||||
|
|
||||||
!!! example "Override mod loader version"
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
environment:
|
|
||||||
MODPACK_PLATFORM: AUTO_CURSEFORGE
|
|
||||||
CF_API_KEY: ${CF_API_KEY}
|
|
||||||
CF_SLUG: all-the-mods-8
|
|
||||||
CF_MOD_LOADER_VERSION: "43.4.22"
|
|
||||||
```
|
|
||||||
|
|
||||||
```title="Using docker run"
|
|
||||||
docker run -e CF_MOD_LOADER_VERSION=43.4.22 -e CF_SLUG=my-fabric-pack ...
|
|
||||||
```
|
|
||||||
|
|
||||||
!!! warning "Compatibility"
|
|
||||||
|
|
||||||
Using a custom modloader version that differs significantly from what the modpack was designed for may cause compatibility issues. Use this feature carefully and test thoroughly.
|
|
||||||
|
|
||||||
## Manual Downloads
|
## Manual Downloads
|
||||||
|
|
||||||
For mod, modpacks, and world files that are not allowed for automated download, the container path `/downloads` can be attached and matching files will be retrieved from there. The subdirectories `mods`, `modpacks`, and `worlds` will also be checked accordingly. To change the source location of downloaded files, set `CF_DOWNLOADS_REPO` to an existing container path. To disable this feature, set `CF_DOWNLOADS_REPO` to an empty string.
|
For mod, modpacks, and world files that are not allowed for automated download, the container path `/downloads` can be attached and matching files will be retrieved from there. The subdirectories `mods`, `modpacks`, and `worlds` will also be checked accordingly. To change the source location of downloaded files, set `CF_DOWNLOADS_REPO` to an existing container path. To disable this feature, set `CF_DOWNLOADS_REPO` to an empty string.
|
||||||
@@ -172,12 +148,12 @@ For mod, modpacks, and world files that are not allowed for automated download,
|
|||||||
!!! example
|
!!! example
|
||||||
|
|
||||||
Assuming Docker compose is being used:
|
Assuming Docker compose is being used:
|
||||||
|
|
||||||
1. Create a directory next to the `compose.yaml` file. The name doesn't matter, but "downloads" is the common convention
|
1. Create a directory next to the `compose.yaml` file. The name doesn't matter, but "downloads" is the common convention
|
||||||
2. From the "Mods Need Download" output, visit the download page of each, click on the file download and save that file into the directory created in the previous step
|
2. From the "Mods Need Download" output, visit the download page of each, click on the file download and save that file into the directory created in the previous step
|
||||||
3. Add a host directory mount to the volumes section where the container path **must be** `/downloads`. The snippet below shows how that will look
|
3. Add a host directory mount to the volumes section where the container path **must be** `/downloads`. The snippet below shows how that will look
|
||||||
4. Re-run `docker compose up -d` to apply the changes
|
4. Re-run `docker compose up -d` to apply the changes
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
volumes:
|
volumes:
|
||||||
./downloads:/downloads
|
./downloads:/downloads
|
||||||
@@ -206,7 +182,7 @@ If you wish to use an unpublished modpack zip, set the container path to the fil
|
|||||||
```
|
```
|
||||||
|
|
||||||
where an exported manifest file should look like:
|
where an exported manifest file should look like:
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"minecraft": {
|
"minecraft": {
|
||||||
@@ -240,13 +216,13 @@ If you wish to use an unpublished modpack zip, set the container path to the fil
|
|||||||
|
|
||||||
## Exclude client mods
|
## Exclude client mods
|
||||||
|
|
||||||
Quite often there are mods that need to be excluded, such as ones that did not properly declare as a client mod via the file's game versions. Similarly, there are some mods that are incorrectly tagged as client only. The following describes some options to exclude/include mods:
|
Quite often there are mods that need to be excluded, such as ones that did not properly declare as a client mod via the file's game versions. Similarly, there are some mods that are incorrectly tagged as client only. The following describes two options to exclude/include mods:
|
||||||
|
|
||||||
Mods can be excluded by passing a comma or space delimited list of **project** slugs or IDs via `CF_EXCLUDE_MODS`. Similarly, there are some mods that are incorrectly tagged as client only. For those, pass the **project** slugs or IDs via `CF_FORCE_INCLUDE_MODS`. These lists will be combined with the content of the exclude/include file, if given. Alternatively, all mods can be excluded by setting `CF_EXCLUDE_ALL_MODS` to `true`
|
Mods can be excluded by passing a comma or space delimited list of **project** slugs or IDs via `CF_EXCLUDE_MODS`. Similarly, there are some mods that are incorrectly tagged as client only. For those, pass the **project** slugs or IDs via `CF_FORCE_INCLUDE_MODS`. These lists will be combined with the content of the exclude/include file, if given.
|
||||||
|
|
||||||
!!! note
|
!!! note
|
||||||
`CF_FORCE_INCLUDE_MODS` will not download additional mods.
|
`CF_FORCE_INCLUDE_MODS` will not download additional mods.
|
||||||
|
|
||||||
For additional mods, refer to [the `CURSEFORGE_FILES` variable](../../mods-and-plugins/curseforge-files.md).
|
For additional mods, refer to [the `CURSEFORGE_FILES` variable](../../mods-and-plugins/curseforge-files.md).
|
||||||
|
|
||||||
A mod's project ID can be obtained from the right hand side of the project page:
|
A mod's project ID can be obtained from the right hand side of the project page:
|
||||||
@@ -262,7 +238,7 @@ If needing to iterate on the options above, set `CF_FORCE_SYNCHRONIZE` to "true"
|
|||||||
!!! tip "Embedded comments"
|
!!! tip "Embedded comments"
|
||||||
|
|
||||||
Comments can be embedded in the list using the `#` character.
|
Comments can be embedded in the list using the `#` character.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
CF_EXCLUDE_MODS: |
|
CF_EXCLUDE_MODS: |
|
||||||
# Exclude client-side mods not published correctly
|
# Exclude client-side mods not published correctly
|
||||||
@@ -272,7 +248,7 @@ If needing to iterate on the options above, set `CF_FORCE_SYNCHRONIZE` to "true"
|
|||||||
|
|
||||||
## Excluding Overrides Files
|
## Excluding Overrides Files
|
||||||
|
|
||||||
Modpack zip files typically include an `overrides` subdirectory that may contain config files, world data, and extra mod files. All of those files will be extracted into the `/data` path of the container. If any of those files, such as incompatible mods, need to be excluded from extraction, then the `CF_OVERRIDES_EXCLUSIONS` variable can be set with a comma or newline delimited list of ant-style paths ([see below](#ant-style-paths)) to exclude, relative to the overrides (or `/data`) directory.
|
Modpack zip files typically include an `overrides` subdirectory that may contain config files, world data, and extra mod files. All of those files will be extracted into the `/data` path of the container. If any of those files, such as incompatible mods, need to be excluded from extraction, then the `CF_OVERRIDES_EXCLUSIONS` variable can be set with a comma or newline delimited list of ant-style paths ([see below](#ant-style-paths)) to exclude, relative to the overrides (or `/data`) directory.
|
||||||
|
|
||||||
### Ant-style paths
|
### Ant-style paths
|
||||||
|
|
||||||
@@ -285,15 +261,15 @@ Ant-style paths can include the following globbing/wildcard symbols:
|
|||||||
| `?` | Matches one character |
|
| `?` | Matches one character |
|
||||||
|
|
||||||
!!! example
|
!!! example
|
||||||
|
|
||||||
The following compose `environment` entries show how to exclude Iris and Sodium mods from the overrides
|
The following compose `environment` entries show how to exclude Iris and Sodium mods from the overrides
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
CF_OVERRIDES_EXCLUSIONS: mods/iris*.jar,mods/sodium*.jar
|
CF_OVERRIDES_EXCLUSIONS: mods/iris*.jar,mods/sodium*.jar
|
||||||
```
|
```
|
||||||
|
|
||||||
or using newline delimiter, which improves maintainability
|
or using newline delimiter, which improves maintainability
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
CF_OVERRIDES_EXCLUSIONS: |
|
CF_OVERRIDES_EXCLUSIONS: |
|
||||||
mods/iris*.jar
|
mods/iris*.jar
|
||||||
|
|||||||
+1
-7
@@ -747,7 +747,7 @@ alternatively, you can mount: <code>/etc/localtime:/etc/localtime:ro
|
|||||||
<td>A path to a file inside of container that contains <strong>YOUR</strong> CurseForge (Eternal) API Key.</td>
|
<td>A path to a file inside of container that contains <strong>YOUR</strong> CurseForge (Eternal) API Key.</td>
|
||||||
<td><code></code></td>
|
<td><code></code></td>
|
||||||
<td>✅</td>
|
<td>✅</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><code>CF_PAGE_URL</code></td>
|
<td><code>CF_PAGE_URL</code></td>
|
||||||
<td>Pass a page URL to the modpack or a specific file</td>
|
<td>Pass a page URL to the modpack or a specific file</td>
|
||||||
@@ -818,12 +818,6 @@ alternatively, you can mount: <code>/etc/localtime:/etc/localtime:ro
|
|||||||
<td><code>false</code></td>
|
<td><code>false</code></td>
|
||||||
<td>⬜️</td>
|
<td>⬜️</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
|
||||||
<td><code>CF_MOD_LOADER_VERSION</code></td>
|
|
||||||
<td>Override the mod loader version declared by the modpack</td>
|
|
||||||
<td><code></code></td>
|
|
||||||
<td>⬜️</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,6 @@ 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 | |
|
| java25 | 25 | Ubuntu | Hotspot | amd64, arm64 | |
|
||||||
| java25-jdk | 25 | Ubuntu | Hotspot+JDK | amd64, arm64 | |
|
|
||||||
| java25-graalvm | 25 | Oracle | Oracle GraalVM (3) | amd64, arm64 | |
|
| java25-graalvm | 25 | Oracle | Oracle GraalVM (3) | amd64, arm64 | |
|
||||||
| 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 | |
|
||||||
@@ -23,13 +22,14 @@ where `<tag>` refers to the first column of this table:
|
|||||||
| java21-graalvm | 21 | Oracle | Oracle GraalVM (3) | amd64, arm64 | |
|
| java21-graalvm | 21 | Oracle | Oracle GraalVM (3) | amd64, arm64 | |
|
||||||
| java17 | 17 | Ubuntu | Hotspot | amd64, arm64, armv7 | |
|
| java17 | 17 | Ubuntu | Hotspot | amd64, arm64, armv7 | |
|
||||||
| java17-graalvm | 17 | Oracle | Oracle GraalVM (3) | amd64, arm64 | |
|
| java17-graalvm | 17 | Oracle | Oracle GraalVM (3) | amd64, arm64 | |
|
||||||
|
| java17-alpine | 17 | Alpine | Hotspot | amd64 (1) | |
|
||||||
| java16 | 16 | Ubuntu | Hotspot | amd64, arm64, armv7 | (4) |
|
| java16 | 16 | Ubuntu | Hotspot | amd64, arm64, armv7 | (4) |
|
||||||
| java11 | 11 | Ubuntu | Hotspot | amd64, arm64, armv7 | |
|
| java11 | 11 | Ubuntu | Hotspot | amd64, arm64, armv7 | |
|
||||||
| java8 | 8 | Ubuntu | Hotspot | amd64, arm64, armv7 | |
|
| java8 | 8 | Ubuntu | Hotspot | amd64, arm64, armv7 | |
|
||||||
|
|
||||||
Notes
|
Notes
|
||||||
|
|
||||||
1. Why no arm64 for Java 17 Alpine? That is because the base images, such as [elipse-temurin](https://hub.docker.com/_/eclipse-temurin/tags?page=&page_size=&ordering=&name=17-jre-alpine) do not provide support for that. Use the Ubuntu-based images instead.
|
1. Why no arm64 for Java 17 Alpine? That is because the base images, such as [elipse-temurin](https://hub.docker.com/_/eclipse-temurin/tags?page=&page_size=&ordering=&name=17-jre-alpine) do not provide support for that. Use the Ubuntu based images instead.
|
||||||
2. Short-term variant, subject to deprecation upon next version introduction
|
2. Short-term variant, subject to deprecation upon next version introduction
|
||||||
3. Based on the [Oracle GraalVM images](https://blogs.oracle.com/java/post/new-oracle-graalvm-container-images), which as of JDK 17, are now under the [GraalVM Free License](https://blogs.oracle.com/java/post/graalvm-free-license) incorporating what used to be known as the GraalVM Enterprise.
|
3. Based on the [Oracle GraalVM images](https://blogs.oracle.com/java/post/new-oracle-graalvm-container-images), which as of JDK 17, are now under the [GraalVM Free License](https://blogs.oracle.com/java/post/graalvm-free-license) incorporating what used to be known as the GraalVM Enterprise.
|
||||||
4. This version of Java is [recommended for PaperMC 1.16.5](https://docs.papermc.io/paper/getting-started/#requirements)
|
4. This version of Java is [recommended for PaperMC 1.16.5](https://docs.papermc.io/paper/getting-started/#requirements)
|
||||||
@@ -134,7 +134,6 @@ The following image tags have been deprecated and are no longer receiving update
|
|||||||
- java16-openj9
|
- java16-openj9
|
||||||
- java17-graalvm-ce
|
- java17-graalvm-ce
|
||||||
- java17-openj9
|
- java17-openj9
|
||||||
- java17-alpine
|
|
||||||
- java19
|
- java19
|
||||||
- java20-graalvm, java20, java20-alpine
|
- java20-graalvm, java20, java20-alpine
|
||||||
- java23-*
|
- java23-*
|
||||||
@@ -144,4 +143,4 @@ The following image tags have been deprecated and are no longer receiving update
|
|||||||
|
|
||||||
## JSON Listing
|
## JSON Listing
|
||||||
|
|
||||||
Information about the image tags is available for programmatic access at <https://raw.githubusercontent.com/itzg/docker-minecraft-server/refs/heads/master/images.json>
|
Information about the image tags is available programmatically at <https://raw.githubusercontent.com/itzg/docker-minecraft-server/refs/heads/master/images.json>
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
services:
|
|
||||||
mc:
|
|
||||||
image: itzg/minecraft-server
|
|
||||||
environment:
|
|
||||||
EULA: "TRUE"
|
|
||||||
MODPACK_PLATFORM: AUTO_CURSEFORGE
|
|
||||||
# Allocate API key from https://console.curseforge.com/
|
|
||||||
CF_API_KEY: ${CF_API_KEY}
|
|
||||||
# Example of overriding modloader version for a Fabric modpack
|
|
||||||
# Refer to https://docker-minecraft-server.readthedocs.io/en/latest/types-and-platforms/mod-platforms/auto-curseforge/#api-key
|
|
||||||
CF_SLUG: "cobblemon-fabric"
|
|
||||||
# Override the mod loader version from the modpack
|
|
||||||
CF_MOD_LOADER_VERSION: "0.16.14"
|
|
||||||
MEMORY: "4G"
|
|
||||||
ports:
|
|
||||||
- "25565:25565"
|
|
||||||
volumes:
|
|
||||||
- ./data:/data
|
|
||||||
stdin_open: true
|
|
||||||
tty: true
|
|
||||||
|
|
||||||
# See https://docker-minecraft-server.readthedocs.io/en/latest/types-and-platforms/mod-platforms/auto-curseforge/#custom-modloader-versions
|
|
||||||
@@ -15,9 +15,6 @@ services:
|
|||||||
# Use to prevent updates
|
# Use to prevent updates
|
||||||
# SKIP_GTNH_UPDATE_CHECK: true
|
# SKIP_GTNH_UPDATE_CHECK: true
|
||||||
MEMORY: 6G
|
MEMORY: 6G
|
||||||
# Bring in standard extra mods described at https://wiki.gtnewhorizons.com/wiki/Additional_Mods
|
|
||||||
# MODS: |
|
|
||||||
# https://github.com/Kynake/BetterFoliage/releases/download/1.2.1/BetterFoliage-LegacyEdition-1.2.1.jar
|
|
||||||
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
|
||||||
|
|||||||
@@ -1,12 +0,0 @@
|
|||||||
{
|
|
||||||
"file": "/data/settings.yml",
|
|
||||||
"ops": [
|
|
||||||
{
|
|
||||||
"$set": {
|
|
||||||
"path": "$.bind.port",
|
|
||||||
"value": "${SERVER_PORT}",
|
|
||||||
"value-type": "int"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
+1
-2
@@ -97,8 +97,7 @@
|
|||||||
"java": "17",
|
"java": "17",
|
||||||
"distribution": "alpine",
|
"distribution": "alpine",
|
||||||
"jvm": "hotspot",
|
"jvm": "hotspot",
|
||||||
"architectures": ["amd64", "arm64"],
|
"architectures": ["amd64", "arm64"]
|
||||||
"deprecated": true
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"tag": "java17-graalvm",
|
"tag": "java17-graalvm",
|
||||||
|
|||||||
+2
-1
@@ -16,6 +16,7 @@ theme:
|
|||||||
- navigation.indexes
|
- navigation.indexes
|
||||||
locale: en
|
locale: en
|
||||||
palette:
|
palette:
|
||||||
|
|
||||||
# Palette toggle for automatic mode
|
# Palette toggle for automatic mode
|
||||||
- media: "(prefers-color-scheme)"
|
- media: "(prefers-color-scheme)"
|
||||||
toggle:
|
toggle:
|
||||||
@@ -70,7 +71,7 @@ markdown_extensions:
|
|||||||
user: camalot
|
user: camalot
|
||||||
repo: mkdocs-test
|
repo: mkdocs-test
|
||||||
- mkdocs-click
|
- mkdocs-click
|
||||||
copyright: Copyright © itzg 2025.
|
copyright: Copyright © itzg 2024.
|
||||||
plugins:
|
plugins:
|
||||||
- search
|
- search
|
||||||
- autorefs
|
- autorefs
|
||||||
|
|||||||
@@ -14,7 +14,6 @@ set -eu
|
|||||||
: "${CF_IGNORE_MISSING_FILES:=}"
|
: "${CF_IGNORE_MISSING_FILES:=}"
|
||||||
: "${CF_EXCLUDE_INCLUDE_FILE=/image/cf-exclude-include.json}"
|
: "${CF_EXCLUDE_INCLUDE_FILE=/image/cf-exclude-include.json}"
|
||||||
: "${CF_EXCLUDE_MODS:=}"
|
: "${CF_EXCLUDE_MODS:=}"
|
||||||
: "${CF_EXCLUDE_ALL_MODS:=}"
|
|
||||||
: "${CF_FORCE_INCLUDE_MODS:=}"
|
: "${CF_FORCE_INCLUDE_MODS:=}"
|
||||||
: "${CF_SET_LEVEL_FROM:=}" # --set-level-from
|
: "${CF_SET_LEVEL_FROM:=}" # --set-level-from
|
||||||
: "${CF_OVERRIDES_SKIP_EXISTING:=false}" # --overrides-skip-existing
|
: "${CF_OVERRIDES_SKIP_EXISTING:=false}" # --overrides-skip-existing
|
||||||
@@ -23,7 +22,6 @@ set -eu
|
|||||||
: "${CF_MODPACK_MANIFEST:=}"
|
: "${CF_MODPACK_MANIFEST:=}"
|
||||||
: "${CF_API_CACHE_DEFAULT_TTL:=}" # as ISO-8601 duration, such as P2D or PT12H
|
: "${CF_API_CACHE_DEFAULT_TTL:=}" # as ISO-8601 duration, such as P2D or PT12H
|
||||||
: "${CF_API_KEY_FILE:=}" # Path to file containing CurseForge API key
|
: "${CF_API_KEY_FILE:=}" # Path to file containing CurseForge API key
|
||||||
: "${CF_MOD_LOADER_VERSION:=}" # Override mod loader version
|
|
||||||
|
|
||||||
resultsFile=/data/.install-curseforge.env
|
resultsFile=/data/.install-curseforge.env
|
||||||
|
|
||||||
@@ -65,10 +63,8 @@ setArg --overrides-exclusions CF_OVERRIDES_EXCLUSIONS
|
|||||||
setArg --ignore-missing-files CF_IGNORE_MISSING_FILES
|
setArg --ignore-missing-files CF_IGNORE_MISSING_FILES
|
||||||
setArg --api-cache-default-ttl CF_API_CACHE_DEFAULT_TTL
|
setArg --api-cache-default-ttl CF_API_CACHE_DEFAULT_TTL
|
||||||
setArg --exclude-mods CF_EXCLUDE_MODS
|
setArg --exclude-mods CF_EXCLUDE_MODS
|
||||||
setArg --exclude-all-mods CF_EXCLUDE_ALL_MODS
|
|
||||||
setArg --force-include-mods CF_FORCE_INCLUDE_MODS
|
setArg --force-include-mods CF_FORCE_INCLUDE_MODS
|
||||||
setArg --exclude-include-file CF_EXCLUDE_INCLUDE_FILE
|
setArg --exclude-include-file CF_EXCLUDE_INCLUDE_FILE
|
||||||
setArg --mod-loader-version CF_MOD_LOADER_VERSION
|
|
||||||
setArg --downloads-repo CF_DOWNLOADS_REPO
|
setArg --downloads-repo CF_DOWNLOADS_REPO
|
||||||
|
|
||||||
if ! mc-image-helper install-curseforge "${args[@]}"; then
|
if ! mc-image-helper install-curseforge "${args[@]}"; then
|
||||||
|
|||||||
@@ -276,6 +276,4 @@ fi
|
|||||||
# Start setup gtnh server files
|
# Start setup gtnh server files
|
||||||
handleGTNH
|
handleGTNH
|
||||||
|
|
||||||
export USES_MODS=true
|
|
||||||
|
|
||||||
exec "$(dirname "$0")/start-setupWorld" "$@"
|
exec "$(dirname "$0")/start-setupWorld" "$@"
|
||||||
@@ -14,12 +14,11 @@ if ! SERVER=$(mc-image-helper github download-latest-asset \
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
: "${SERVER_PORT:=25565}"
|
: "${SERVER_PORT:=25565}"
|
||||||
|
cat <<EOF > /data/settings.yml
|
||||||
if [ ! -f /data/settings.yml ]; then
|
|
||||||
cat <<EOF > /data/settings.yml
|
|
||||||
#
|
#
|
||||||
# NanoLimbo configuration
|
# NanoLimbo configuration
|
||||||
#
|
#
|
||||||
|
|
||||||
# Server's host address and port. Set ip empty to use public address
|
# Server's host address and port. Set ip empty to use public address
|
||||||
bind:
|
bind:
|
||||||
ip: '0.0.0.0'
|
ip: '0.0.0.0'
|
||||||
@@ -158,11 +157,8 @@ traffic:
|
|||||||
# Ignored if -1.0
|
# Ignored if -1.0
|
||||||
maxPacketBytesRate: 2048.0
|
maxPacketBytesRate: 2048.0
|
||||||
EOF
|
EOF
|
||||||
fi
|
|
||||||
|
|
||||||
mc-image-helper patch --patch-env-prefix "" /image/nanolimbo-settings-patch.json
|
|
||||||
|
|
||||||
export SERVER
|
export SERVER
|
||||||
export FAMILY=LIMBO
|
export FAMILY=LIMBO
|
||||||
|
|
||||||
exec "$(dirname "$0")/start-setupMounts" "$@"
|
exec "$(dirname "$0")/start-setupMounts" "$@"
|
||||||
|
|||||||
Reference in New Issue
Block a user