mirror of
https://github.com/itzg/docker-minecraft-server.git
synced 2026-08-20 14:13:17 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9d6aefc153 | ||
|
|
d62afadb5d | ||
|
|
f5d94230e8 | ||
|
|
cfceb23ae4 | ||
|
|
f0e8df639d | ||
|
|
d8e2c90d5c | ||
|
|
68d99f434d | ||
|
|
f93230f6a8 | ||
|
|
2826f51f5f | ||
|
|
218826cba0 | ||
|
|
91b98bcc7b | ||
|
|
21b134fd2b | ||
|
|
9b12eb6a6c | ||
|
|
14c83f1015 | ||
|
|
7ba5a858b9 | ||
|
|
8bf8a7bc8d | ||
|
|
bbb8f7ffec | ||
|
|
4657c5f8f3 | ||
|
|
4fc54b9e43 |
@@ -195,14 +195,14 @@ jobs:
|
|||||||
tests/test.sh
|
tests/test.sh
|
||||||
|
|
||||||
- name: Login to DockerHub
|
- name: Login to DockerHub
|
||||||
uses: docker/login-action@v4.5.2
|
uses: docker/login-action@v4.6.0
|
||||||
if: env.HAS_IMAGE_REPO_ACCESS == 'true'
|
if: env.HAS_IMAGE_REPO_ACCESS == 'true'
|
||||||
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@v4.5.2
|
uses: docker/login-action@v4.6.0
|
||||||
if: env.HAS_IMAGE_REPO_ACCESS == 'true'
|
if: env.HAS_IMAGE_REPO_ACCESS == 'true'
|
||||||
with:
|
with:
|
||||||
registry: ghcr.io
|
registry: ghcr.io
|
||||||
|
|||||||
+4
-4
@@ -28,7 +28,7 @@ ARG APPS_REV=1
|
|||||||
ARG GITHUB_BASEURL=https://github.com
|
ARG GITHUB_BASEURL=https://github.com
|
||||||
|
|
||||||
# renovate: datasource=github-releases packageName=itzg/easy-add
|
# renovate: datasource=github-releases packageName=itzg/easy-add
|
||||||
ARG EASY_ADD_VERSION=0.8.15
|
ARG EASY_ADD_VERSION=0.8.17
|
||||||
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
|
||||||
|
|
||||||
@@ -39,13 +39,13 @@ RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
|
|||||||
--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
|
||||||
|
|
||||||
# renovate: datasource=github-releases packageName=itzg/rcon-cli
|
# renovate: datasource=github-releases packageName=itzg/rcon-cli
|
||||||
ARG RCON_CLI_VERSION=1.7.6
|
ARG RCON_CLI_VERSION=1.7.7
|
||||||
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
|
||||||
|
|
||||||
# renovate: datasource=github-releases packageName=itzg/mc-monitor
|
# renovate: datasource=github-releases packageName=itzg/mc-monitor
|
||||||
ARG MC_MONITOR_VERSION=0.17.0
|
ARG MC_MONITOR_VERSION=0.17.1
|
||||||
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
|
||||||
@@ -57,7 +57,7 @@ RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
|
|||||||
--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
|
||||||
|
|
||||||
# renovate: datasource=github-releases packageName=itzg/mc-image-helper versioning=loose
|
# renovate: datasource=github-releases packageName=itzg/mc-image-helper versioning=loose
|
||||||
ARG MC_HELPER_VERSION=1.64.1
|
ARG MC_HELPER_VERSION=1.66.1
|
||||||
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
|
||||||
|
|||||||
@@ -168,7 +168,9 @@ To [enforce the whitelist changes immediately](https://minecraft.wiki/w/Server.p
|
|||||||
|
|
||||||
!!! tip "Changing user API provider"
|
!!! tip "Changing user API provider"
|
||||||
|
|
||||||
The usernames provided for whitelist and ops processing are resolved using either [PlayerDB](https://playerdb.co/) or [Mojang's API](https://wiki.vg/Mojang_API#Username_to_UUID). The default uses PlayerDB, but can be changed by setting the environment variable `USER_API_PROVIDER` to "mojang". Sometimes one or the other service can become overloaded, which is why there is the ability to switch providers.
|
When specifying usernames for whitelist and ops processing, use Minecraft: Java Edition profile names, not Xbox gamertags. They can differ even when they belong to the same Microsoft account. A player can review or change their Java profile name on the [Minecraft profile page](https://www.minecraft.net/en-us/msaprofile/mygames/editprofile).
|
||||||
|
|
||||||
|
Usernames are resolved using either [PlayerDB](https://playerdb.co/) or [Mojang's API](https://wiki.vg/Mojang_API#Username_to_UUID). The default uses PlayerDB, but can be changed by setting the environment variable `USER_API_PROVIDER` to "mojang". Sometimes one or the other service can become overloaded, which is why there is the ability to switch providers.
|
||||||
|
|
||||||
|
|
||||||
### Op/Administrator Players
|
### Op/Administrator Players
|
||||||
|
|||||||
@@ -29,3 +29,7 @@ A tool that is bundled with this image to provide complex, re-usable preparation
|
|||||||
### [itzg/rcon](https://github.com/itzg/docker-rcon-web-admin)
|
### [itzg/rcon](https://github.com/itzg/docker-rcon-web-admin)
|
||||||
|
|
||||||
An image that dockerizes [rcon-web-admin](https://github.com/rcon-web-admin/rcon-web-admin).
|
An image that dockerizes [rcon-web-admin](https://github.com/rcon-web-admin/rcon-web-admin).
|
||||||
|
|
||||||
|
### [AutoStopper](https://github.com/Criseda/AutoStopper)
|
||||||
|
|
||||||
|
A Velocity plugin that stops idle backend servers and wakes them when players connect, with readiness-aware Docker lifecycle management.
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ deepmerge==2.1.0
|
|||||||
ghp-import==2.1.0
|
ghp-import==2.1.0
|
||||||
griffe==2.1.0
|
griffe==2.1.0
|
||||||
Jinja2==3.1.6
|
Jinja2==3.1.6
|
||||||
Markdown==3.10.2
|
Markdown==3.10.3
|
||||||
MarkupSafe==3.0.3
|
MarkupSafe==3.0.3
|
||||||
mergedeep==1.3.4
|
mergedeep==1.3.4
|
||||||
mkdocs==1.6.1
|
mkdocs==1.6.1
|
||||||
@@ -12,9 +12,9 @@ mkdocs-autorefs==1.4.4
|
|||||||
mkdocs-get-deps==0.2.2
|
mkdocs-get-deps==0.2.2
|
||||||
mkdocstrings==1.0.6
|
mkdocstrings==1.0.6
|
||||||
mkdocstrings-python==2.0.5
|
mkdocstrings-python==2.0.5
|
||||||
packaging==26.2
|
packaging==26.3
|
||||||
pathspec==1.1.1
|
pathspec==1.1.1
|
||||||
platformdirs==4.11.0
|
platformdirs==4.11.3
|
||||||
Pygments==2.20.0
|
Pygments==2.20.0
|
||||||
pymdown-extensions==11.0.1
|
pymdown-extensions==11.0.1
|
||||||
python-dateutil==2.9.0.post0
|
python-dateutil==2.9.0.post0
|
||||||
@@ -22,4 +22,4 @@ PyYAML==6.0.3
|
|||||||
pyyaml_env_tag==1.1
|
pyyaml_env_tag==1.1
|
||||||
six==1.17.0
|
six==1.17.0
|
||||||
watchdog==6.0.0
|
watchdog==6.0.0
|
||||||
zensical==0.0.51
|
zensical==0.0.54
|
||||||
|
|||||||
@@ -109,7 +109,7 @@ The latest modpack file and its associated mod loader will be located and instal
|
|||||||
|
|
||||||
- Use `CF_PAGE_URL`, but include the full URL to a specific file
|
- Use `CF_PAGE_URL`, but include the full URL to a specific file
|
||||||
- Set `CF_FILE_ID` to the numerical file ID
|
- Set `CF_FILE_ID` to the numerical file ID
|
||||||
- Specify a substring to match the desired filename with `CF_FILENAME_MATCHER`
|
- Specify either a substring or a regex pattern surrounded with "/" to match the desired filename with `CF_FILENAME_MATCHER`
|
||||||
|
|
||||||
The following shows where to get the URL to the specific file and also shows where the file ID is located:
|
The following shows where to get the URL to the specific file and also shows where the file ID is located:
|
||||||
|
|
||||||
@@ -131,6 +131,21 @@ The following examples all refer to version 1.0.7 of ATM8:
|
|||||||
CF_FILENAME_MATCHER: 1.0.7
|
CF_FILENAME_MATCHER: 1.0.7
|
||||||
```
|
```
|
||||||
|
|
||||||
|
To use a regular expression instead, surround the pattern with `/` characters:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
# Matches filenames containing a 1.0.7 version
|
||||||
|
CF_SLUG: all-the-mods-8
|
||||||
|
CF_FILENAME_MATCHER: '/1\.0\.7/'
|
||||||
|
```
|
||||||
|
|
||||||
|
Regular expressions can use `^` to anchor a match to the beginning of the filename and `$` to anchor it to the end. The following matches an ATM8 filename that starts with `all-the-mods-8` and ends with `1.0.7.zip`:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
CF_SLUG: all-the-mods-8
|
||||||
|
CF_FILENAME_MATCHER: '/^All the Mods 8-1\.0\.7\.zip$/'
|
||||||
|
```
|
||||||
|
|
||||||
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
|
### Custom modloader versions
|
||||||
|
|||||||
+7
-1
@@ -204,6 +204,12 @@ alternatively, you can mount: <code>/etc/localtime:/etc/localtime:ro
|
|||||||
<td><code>easy</code></td>
|
<td><code>easy</code></td>
|
||||||
<td>⬜️</td>
|
<td>⬜️</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><code>HARDCORE</code></td>
|
||||||
|
<td>Enable hardcore mode. Set to <code>true</code> or <code>false</code>. This maps to the Minecraft server property <code>hardcore</code>.</td>
|
||||||
|
<td><code>false</code></td>
|
||||||
|
<td>⬜️</td>
|
||||||
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><code>ICON</code></td>
|
<td><code>ICON</code></td>
|
||||||
<td>The url or file path for the icon image to use for the server. It will be downloaded, scaled, and converted to the proper format.</td>
|
<td>The url or file path for the icon image to use for the server. It will be downloaded, scaled, and converted to the proper format.</td>
|
||||||
@@ -611,7 +617,7 @@ This image maps known server properties as described in [this section](configura
|
|||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td><code>CF_FILENAME_MATCHER</code></td>
|
<td><code>CF_FILENAME_MATCHER</code></td>
|
||||||
<td>Specify a substring to match the desired filename</td>
|
<td>Specify either a substring or a regex pattern surrounded with "/" to match the desired filename</td>
|
||||||
<td><code></code></td>
|
<td><code></code></td>
|
||||||
<td>⬜️</td>
|
<td>⬜️</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|||||||
@@ -48,7 +48,6 @@
|
|||||||
"fancymenu",
|
"fancymenu",
|
||||||
"fast-ip-ping",
|
"fast-ip-ping",
|
||||||
"fastquit",
|
"fastquit",
|
||||||
"FauxCustomEntityData",
|
|
||||||
"feytweaks",
|
"feytweaks",
|
||||||
"figura",
|
"figura",
|
||||||
"ForgeConfigScreens",
|
"ForgeConfigScreens",
|
||||||
@@ -111,6 +110,9 @@
|
|||||||
"cobbleverse": {
|
"cobbleverse": {
|
||||||
"excludes": [
|
"excludes": [
|
||||||
"cloth-config"
|
"cloth-config"
|
||||||
|
],
|
||||||
|
"forceIncludes": [
|
||||||
|
"configurable"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,22 +22,11 @@ set -eu
|
|||||||
: "${CF_DOWNLOADS_REPO=$([ -d /downloads ] && echo '/downloads' || echo '')}"
|
: "${CF_DOWNLOADS_REPO=$([ -d /downloads ] && echo '/downloads' || echo '')}"
|
||||||
: "${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_MOD_LOADER_VERSION:=}" # Override mod loader version
|
: "${CF_MOD_LOADER_VERSION:=}" # Override mod loader version
|
||||||
: "${CF_USE_HTTP2:=false}" # CF downloads are faster with HTTP 1.1
|
: "${CF_USE_HTTP2:=false}" # CF downloads are faster with HTTP 1.1
|
||||||
|
|
||||||
resultsFile=/data/.install-curseforge.env
|
resultsFile=/data/.install-curseforge.env
|
||||||
|
|
||||||
if [[ -n ${CF_API_KEY_FILE} ]]; then
|
|
||||||
if [[ -r "${CF_API_KEY_FILE}" ]]; then
|
|
||||||
CF_API_KEY="$(cat "${CF_API_KEY_FILE}")"
|
|
||||||
export CF_API_KEY
|
|
||||||
else
|
|
||||||
logError "CF_API_KEY_FILE is not readable: ${CF_API_KEY_FILE}"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
isDebugging && set -x
|
isDebugging && set -x
|
||||||
|
|
||||||
ensureRemoveAllModsOff "MODPACK_PLATFORM=AUTO_CURSEFORGE"
|
ensureRemoveAllModsOff "MODPACK_PLATFORM=AUTO_CURSEFORGE"
|
||||||
|
|||||||
@@ -312,6 +312,9 @@ function handleGTNH() {
|
|||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
log "SKIP_GTNH_UPDATE_CHECK=$SKIP_GTNH_UPDATE_CHECK ... Skipping GTNH Update/Install"
|
log "SKIP_GTNH_UPDATE_CHECK=$SKIP_GTNH_UPDATE_CHECK ... Skipping GTNH Update/Install"
|
||||||
|
if [[ ! -f /data/.gtnh-version ]]; then
|
||||||
|
logWarning "No .gtnh-version file detected! There might not be a valid GTNH server installation in /data. Please ensure that the server files are present or set SKIP_GTNH_UPDATE_CHECK=false to allow the script to download and install the server files."
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -9,23 +9,12 @@ set -e -o pipefail
|
|||||||
: "${PLUGINS_FILE:=}"
|
: "${PLUGINS_FILE:=}"
|
||||||
: "${REMOVE_OLD_MODS_DEPTH:=1} "
|
: "${REMOVE_OLD_MODS_DEPTH:=1} "
|
||||||
: "${REMOVE_OLD_MODS_INCLUDE:=*.jar,*-version.json}"
|
: "${REMOVE_OLD_MODS_INCLUDE:=*.jar,*-version.json}"
|
||||||
: "${CF_API_KEY_FILE:=}" # Path to file containing CurseForge API key
|
|
||||||
: "${CF_USE_HTTP2:=false}" # CF downloads are faster with HTTP 1.1
|
: "${CF_USE_HTTP2:=false}" # CF downloads are faster with HTTP 1.1
|
||||||
: "${MODRINTH_LOADER:=}"
|
: "${MODRINTH_LOADER:=}"
|
||||||
|
|
||||||
# shellcheck source=start-utils
|
# shellcheck source=start-utils
|
||||||
. "$(dirname "$0")/start-utils"
|
. "$(dirname "$0")/start-utils"
|
||||||
|
|
||||||
if [[ -n ${CF_API_KEY_FILE} ]]; then
|
|
||||||
if [[ -r "${CF_API_KEY_FILE}" ]]; then
|
|
||||||
CF_API_KEY="$(cat "${CF_API_KEY_FILE}")"
|
|
||||||
export CF_API_KEY
|
|
||||||
else
|
|
||||||
logError "CF_API_KEY_FILE is not readable: ${CF_API_KEY_FILE}"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
isDebugging && set -x
|
isDebugging && set -x
|
||||||
|
|
||||||
sum_file=/data/.generic_pack.sum
|
sum_file=/data/.generic_pack.sum
|
||||||
|
|||||||
Reference in New Issue
Block a user