Compare commits

..
19 Commits
Author SHA1 Message Date
dependabot[bot]andGitHub 9d6aefc153 build(deps): bump the patches group in /docs with 2 updates (#4240) 2026-08-19 08:14:00 -05:00
Eirik HandGitHub d62afadb5d Add missing HARDCORE environment variable to variables docs (#4239) 2026-08-18 15:03:14 -05:00
renovate[bot]andGitHub f5d94230e8 Update dependency itzg/easy-add to v0.8.17 (#4235) 2026-08-16 16:34:22 -05:00
renovate[bot]andGitHub cfceb23ae4 Update dependency itzg/rcon-cli to v1.7.7 (#4238) 2026-08-16 16:12:38 -05:00
renovate[bot]andGitHub f0e8df639d Update dependency itzg/mc-image-helper to v1.66.1 (#4228) 2026-08-16 13:15:17 -05:00
renovate[bot]andGitHub d8e2c90d5c Update dependency itzg/mc-monitor to v0.17.1 (#4236) 2026-08-16 12:26:15 -05:00
Alexey PotsetsuevandGitHub 68d99f434d Fix two Modrinth packs that fail to start due to excluded server-required mods (#4232) 2026-08-14 12:41:45 -05:00
CrisedaandGitHub f93230f6a8 docs: add AutoStopper to related projects (#4231) 2026-08-13 20:52:05 -05:00
Leon KampwerthandGitHub 2826f51f5f Add warning for missing .gtnh-version file when using SKIP_GTNH_UPDATE_CHECK (#4230) 2026-08-13 14:48:48 -05:00
dependabot[bot]andGitHub 218826cba0 build(deps): bump the patches group in /docs with 3 updates (#4224) 2026-08-12 12:44:46 -05:00
Columbus LabsandGitHub 91b98bcc7b Document Java profile names for user management (#4225) 2026-08-12 08:41:03 -05:00
Harrison BlackandGitHub 21b134fd2b docs: Add docs for CurseForge regex filename matcher (#4223) 2026-08-09 08:09:24 -05:00
renovate[bot]andGitHub 9b12eb6a6c Update dependency itzg/mc-image-helper to v1.66.0 (#4222) 2026-08-08 16:55:21 -05:00
renovate[bot]andGitHub 14c83f1015 Update dependency itzg/easy-add to v0.8.16 (#4219) 2026-08-08 12:56:31 -05:00
Andrew BarnesandGitHub 7ba5a858b9 Remove redundant CF_API_KEY_FILE handling (#4220) 2026-08-07 07:26:34 -05:00
dependabot[bot]GitHubdependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
8bf8a7bc8d build(deps): bump the patches group in /docs with 2 updates (#4217)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-08-05 22:04:30 -05:00
renovate[bot]andGitHub bbb8f7ffec Update dependency itzg/mc-image-helper to v1.65.0 (#4215) 2026-08-05 12:25:01 -05:00
dependabot[bot]andGitHub 4657c5f8f3 build(deps): bump docker/login-action from 4.5.2 to 4.6.0 in the updates group (#4216) 2026-08-05 07:01:48 -05:00
renovate[bot]andGitHub 4fc54b9e43 Update dependency itzg/mc-image-helper to v1.64.2 (#4214) 2026-08-04 10:31:27 -05:00
11 changed files with 46 additions and 36 deletions
+2 -2
View File
@@ -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
View File
@@ -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
+3 -1
View File
@@ -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
+4
View File
@@ -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 -4
View File
@@ -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
View File
@@ -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>
+3 -1
View File
@@ -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"
] ]
} }
} }
-11
View File
@@ -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"
+3
View File
@@ -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
} }
-11
View File
@@ -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