Compare commits

...

15 Commits

Author SHA1 Message Date
dependabot[bot]
c7c5e9ecb5 build(deps): bump packaging in /docs in the patches group
Bumps the patches group in /docs with 1 update: [packaging](https://github.com/pypa/packaging).


Updates `packaging` from 26.0 to 26.1
- [Release notes](https://github.com/pypa/packaging/releases)
- [Changelog](https://github.com/pypa/packaging/blob/main/CHANGELOG.rst)
- [Commits](https://github.com/pypa/packaging/compare/26.0...26.1)

---
updated-dependencies:
- dependency-name: packaging
  dependency-version: '26.1'
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-15 08:34:13 +00:00
dependabot[bot]
59a2126192 build(deps): bump the updates group with 3 updates (#4019) 2026-04-14 07:36:43 -05:00
dependabot[bot]
5e2e26831e build(deps): bump zensical from 0.0.32 to 0.0.33 in /docs in the patches group (#4020) 2026-04-14 07:36:08 -05:00
dependabot[bot]
18d57981f5 build(deps): bump docker/login-action from 3.7.0 to 4.0.0 (#3965) 2026-04-14 06:50:48 -05:00
at://matrixfurry.com
a5cd3a57fa Remove EMI from Modrinth exclusions (#4018) 2026-04-13 19:53:32 -05:00
AegisBlue
c692e99523 Include Server.pro sponsorship in README (#4017) 2026-04-13 11:27:20 -05:00
dependabot[bot]
5f9bc3a414 build(deps): bump the patches group in /docs with 2 updates (#4016) 2026-04-13 06:57:25 -05:00
Geoff Bourne
df7f067782 neoforge: support year-based versions (#4014) 2026-04-12 14:02:37 -05:00
SpawnBox-dev
7b1cb53cda docs: simplify sponsor layout - drop table, use floated logo (#4012) 2026-04-11 21:15:00 -05:00
Geoff Bourne
dcfedaa10f Put sponsor entries in table (#4011) 2026-04-11 20:35:15 -05:00
Geoff Bourne
a9a27df4a6 Corrected sponsors anchor (#4010) 2026-04-11 20:15:20 -05:00
Geoff Bourne
a2fbd4ce9a Add sponsors section to README (#4009)
Co-authored-by: SpawnBox-dev <github@spawnbox.app>
Co-authored-by: SpawnBox-dev <developer@spawnbox.app>
2026-04-11 20:02:38 -05:00
renovate[bot]
eb4fe3c7bf Update dependency itzg/mc-image-helper to v1.56.1 (#4005) 2026-04-09 21:48:28 -05:00
Geoff Bourne
8c9e2c653f Added dev docs for building image with tool version change (#4007) 2026-04-09 11:02:32 -05:00
Vianney Veremme
bd98fe57ba Add optional Modrinth projects support (? suffix) documentation (#4004) 2026-04-09 10:15:11 -05:00
15 changed files with 141 additions and 20 deletions

View File

@@ -16,6 +16,9 @@ updates:
schedule:
interval: weekly
groups:
docker:
patterns:
- "docker/*"
patches:
patterns:
- "*"

View File

@@ -107,7 +107,7 @@ jobs:
- name: Docker meta
id: meta
uses: docker/metadata-action@v5.10.0
uses: docker/metadata-action@v6.0.0
with:
# 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.
@@ -137,13 +137,13 @@ jobs:
org.opencontainers.image.authors=Geoff Bourne <itzgeoff@gmail.com>
- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v3.12.0
uses: docker/setup-buildx-action@v4.0.0
- name: Set up QEMU
uses: docker/setup-qemu-action@v3.7.0
uses: docker/setup-qemu-action@v4.0.0
- name: Build for test
uses: docker/build-push-action@v6.19.2
uses: docker/build-push-action@v7.1.0
with:
platforms: linux/amd64
tags: ${{ env.IMAGE_TO_TEST }}
@@ -168,14 +168,14 @@ jobs:
tests/test.sh
- name: Login to DockerHub
uses: docker/login-action@v3.7.0
uses: docker/login-action@v4.1.0
if: env.HAS_IMAGE_REPO_ACCESS
with:
username: ${{ secrets.DOCKER_USER }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Login to GHCR
uses: docker/login-action@v3.7.0
uses: docker/login-action@v4.1.0
if: env.HAS_IMAGE_REPO_ACCESS
with:
registry: ghcr.io
@@ -183,7 +183,7 @@ jobs:
password: ${{ github.token }}
- name: Build and push
uses: docker/build-push-action@v6.19.2
uses: docker/build-push-action@v7.1.0
if: github.actor == github.repository_owner
with:
platforms: ${{ matrix.platforms }}

View File

@@ -19,7 +19,7 @@ jobs:
steps:
- name: on-publish
if: github.event_name == 'release' && github.event.action == 'published'
uses: SethCohen/github-releases-to-discord@v1.19.0
uses: SethCohen/github-releases-to-discord@v1.20.0
with:
webhook_url: ${{ secrets.DISCORD_WEBHOOK }}
- name: on-success

View File

@@ -59,10 +59,10 @@ jobs:
fetch-depth: 0
- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v3.12.0
uses: docker/setup-buildx-action@v4.0.0
- name: Confirm multi-arch build
uses: docker/build-push-action@v6.19.2
uses: docker/build-push-action@v7.1.0
with:
platforms: ${{ matrix.platforms }}
# ensure latest base image is used
@@ -73,7 +73,7 @@ jobs:
cache-from: type=gha,scope=${{ matrix.variant }}
- name: Build for test
uses: docker/build-push-action@v6.19.2
uses: docker/build-push-action@v7.1.0
with:
# Only build single platform since loading multi-arch image into daemon fails with
# "docker exporter does not currently support exporting manifest lists"

View File

@@ -55,7 +55,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
# renovate: datasource=github-releases packageName=itzg/mc-image-helper versioning=loose
ARG MC_HELPER_VERSION=1.55.4
ARG MC_HELPER_VERSION=1.56.2
ARG MC_HELPER_BASE_URL=${GITHUB_BASEURL}/itzg/mc-image-helper/releases/download/${MC_HELPER_VERSION}
# used for cache busting local copy of mc-image-helper
ARG MC_HELPER_REV=1

View File

@@ -6,7 +6,7 @@
[![](https://img.shields.io/badge/Donate-Buy%20me%20a%20coffee-orange.svg)](https://www.buymeacoffee.com/itzg)
[![Documentation Status](https://readthedocs.org/projects/docker-minecraft-server/badge/?version=latest)](https://docker-minecraft-server.readthedocs.io/en/latest/?badge=latest)
[![Read the docs](docs/img/docs-banner.png)](https://docker-minecraft-server.readthedocs.io/)
[![Read the docs](docs/img/banner-docs.png)](https://docker-minecraft-server.readthedocs.io/)
There you will find things like
- [Quick start with Docker Compose](https://docker-minecraft-server.readthedocs.io/en/latest/#using-docker-compose)
@@ -19,3 +19,26 @@ There you will find things like
There are also many examples located in [the examples directory](examples) of this repo.
This image only supports Java edition natively; however, if looking for a server that is compatible with Bedrock edition, then use [itzg/minecraft-bedrock-server](https://github.com/itzg/docker-minecraft-bedrock-server) or [refer to this section](https://docker-minecraft-server.readthedocs.io/en/latest/misc/examples/#bedrock-compatible-server) to add Bedrock compatibility to a Java edition server.
[![Sponsors](docs/img/banner-sponsors.png)](#sponsors)
<a name="sponsors"></a>
<a href="https://spawnbox.app"><img src="https://spawnbox.app/favicon-48x48.png" alt="SpawnBox logo" width="48" align="left" /></a>
<a href="https://spawnbox.app"><b>SpawnBox</b></a> - Powered by <code>itzg/minecraft-server</code>, it's a Windows desktop app for parents, teens, and friend groups who want a Minecraft server on their own PC without learning Docker, WSL2, or networking.
<br clear="left" />
<a href="https://server.pro"><img src="https://server.pro/s/img/logo-short-192.png" alt="Server.pro logo" width="48" align="left" /></a>
<a href="https://server.pro"><b>Server.pro</b></a> - A game server hosting platform offering one-click Minecraft server deployment powered by <code>itzg/minecraft-server</code>, with global locations and an easy-to-use control panel.
<br clear="left" />
<!-- additional sponsors repeat the pattern above: floated logo + blurb + clear-left break -->
<!-- logo image preferrably hosted on an external, stable site at a size of 48x48px -->
<!-- link to sponsor site -->
<!-- one or two line summary ideally with a mention of image integration -->
[and more...](https://github.com/sponsors/itzg)

View File

Before

Width:  |  Height:  |  Size: 29 KiB

After

Width:  |  Height:  |  Size: 29 KiB

View File

@@ -6,7 +6,7 @@ Small, none, Minecraftia
Line 2:
"Documentation"
Large, non, Minecrafter
Large, none, Minecrafter
Overall settings:
- drop shadow

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View File

@@ -0,0 +1,9 @@
Generated at https://textcraft.net/
Line 1:
"Sponsors"
Mid
None
Minecrafter
Drop shadow
3d-style view

View File

@@ -21,6 +21,30 @@ docker compose -f compose-dev.yml run --rm -it [-e key=value] mc-dev
To speed up the development cycle, it is recommended to set `SETUP_ONLY` to `true` as part of the run command above.
## Building the image with a new release of a tool
In this exapmle, let's say that [mc-image-helper](https://github.com/itzg/mc-image-helper) has been [released](https://github.com/itzg/mc-image-helper/releases) at 1.56.0, but the corresponding changes in the image [scripts](https://github.com/itzg/docker-minecraft-server/tree/23205471db9814cff9c6602361dbc6cdd6c4230a/scripts) need to be tested against that version while updating [the Dockerfile](https://github.com/itzg/docker-minecraft-server/blob/23205471db9814cff9c6602361dbc6cdd6c4230a/Dockerfile#L58).
```yaml title="tests/manual/optional-projects/compose.yml" hl_lines="7"
services:
mc:
build:
# ...or wherever you cloned the docker-minecraft-server repo
context: ../../..
args:
MC_HELPER_VERSION: 1.56.0
environment:
EULA: true
TYPE: "FABRIC"
MODRINTH_PROJECTS: |
fabric-api
pl3xmap?:beta
ports:
- "25565:25565/tcp"
volumes:
- ./data:/data
```
## 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:

View File

@@ -86,6 +86,54 @@ Where:
To temporarily disable processing of the `MODRINTH_PROJECTS` list, then comment out the `MODRINTH_PROJECTS` environment variable.
## Optional projects
Projects that are not critical for the server to function can be marked as **optional** by appending a `?` to the project slug or ID. When a compatible version cannot be found for an optional project, the server logs a warning and continues startup instead of failing.
This is particularly useful for server-side mods that tend to lag behind on Minecraft updates, such as map renderers (Pl3xmap, BlueMap), performance mods (Lithium, C2ME), or admin tools (Spark, LuckPerms).
```yaml
MODRINTH_PROJECTS: |
fabric-api
lithium
pl3xmap?
bluemap?:beta
```
The `?` marker can be combined with all existing format options:
| Format | Example |
|----------------------------|---------------------------|
| Slug only | `pl3xmap?` |
| With version | `pl3xmap?:Oa9ZDzZq` |
| With release type | `pl3xmap?:beta` |
| With loader prefix | `fabric:pl3xmap?` |
| Full combination | `fabric:pl3xmap?:beta` |
| In listing files | `pl3xmap?` *(one per line)* |
When combined with [`VERSION_FROM_MODRINTH_PROJECTS`](#version-from-projects), optional projects are **excluded** from the version calculation. This means an optional mod that hasn't been updated yet will never block a Minecraft version upgrade.
!!! example "Automatic upgrades without optional-mod breakage"
```yaml
MODRINTH_PROJECTS: |
fabric-api
lithium
pl3xmap?
VERSION_FROM_MODRINTH_PROJECTS: true
```
If a new Minecraft version is released and `fabric-api` + `lithium` support it but `pl3xmap` does not:
1. The resolved `VERSION` is set to the new version (pl3xmap is not considered)
2. `fabric-api` and `lithium` are installed normally
3. `pl3xmap` is skipped with a warning in the logs
4. On a future restart, once pl3xmap publishes a compatible build, it is picked up automatically
!!! note
Optional projects marked with `?` in listing files (`@/path/to/file.txt`) are supported ; the `?` is parsed from each line the same way as inline entries.
## 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`.
@@ -115,4 +163,3 @@ When the environment variable `VERSION_FROM_MODRINTH_PROJECTS` is set to "true"
`MODRINTH_LOADER`
: When using a custom server, set this to specify which loader type will be requested during lookups

View File

@@ -12,9 +12,9 @@ mkdocs-autorefs==1.4.4
mkdocs-get-deps==0.2.2
mkdocstrings==1.0.3
mkdocstrings-python==2.0.3
packaging==26.0
packaging==26.1
pathspec==1.0.4
platformdirs==4.9.4
platformdirs==4.9.6
Pygments==2.20.0
pymdown-extensions==10.21.2
python-dateutil==2.9.0.post0
@@ -22,4 +22,4 @@ PyYAML==6.0.3
pyyaml_env_tag==1.1
six==1.17.0
watchdog==6.0.0
zensical==0.0.31
zensical==0.0.33

View File

@@ -39,8 +39,6 @@
"distraction_free_recipes",
"drippyloadingscreen",
"eating-animation",
"emi",
"emi_loot",
"emi_trade",
"emiffect",
"emitrades",

View File

@@ -0,0 +1,17 @@
services:
mc:
build:
# ...or wherever you cloned the docker-minecraft-server repo
context: ../../..
args:
MC_HELPER_VERSION: 1.56.0
environment:
EULA: true
TYPE: "FABRIC"
MODRINTH_PROJECTS: |
fabric-api
pl3xmap?:beta
ports:
- "25565:25565/tcp"
volumes:
- ./data:/data