From 2cd747263156ed00697ab6a98b7a1888b317160b Mon Sep 17 00:00:00 2001 From: Geoff Bourne Date: Sat, 18 Oct 2025 18:44:59 -0500 Subject: [PATCH] Documented the loader prefix option for MODRINTH_PROJECTS (#3720) --- docs/Dockerfile | 18 +- docs/img/modrinth-copy-project-id.png | Bin 17565 -> 14949 bytes docs/misc/autopause-autostop/autopause.md | 10 +- docs/mods-and-plugins/modrinth.md | 31 +++- mkdocs.yml | 192 +++++++++++----------- 5 files changed, 134 insertions(+), 117 deletions(-) diff --git a/docs/Dockerfile b/docs/Dockerfile index 172f45a6..20efbb7d 100644 --- a/docs/Dockerfile +++ b/docs/Dockerfile @@ -1,10 +1,10 @@ -FROM python:3.11 - -RUN pip install --upgrade pip - -WORKDIR /mkdocs - -RUN --mount=target=/build/requirements.txt,source=docs/requirements.txt \ - pip install -r /build/requirements.txt - +FROM python:3.11 + +RUN pip install --upgrade pip + +WORKDIR /mkdocs + +RUN --mount=target=/build/requirements.txt,source=docs/requirements.txt \ + pip install -r /build/requirements.txt + ENTRYPOINT ["mkdocs"] \ No newline at end of file diff --git a/docs/img/modrinth-copy-project-id.png b/docs/img/modrinth-copy-project-id.png index 287d4db7314775520c432097d5974b19c2f39e5a..bc0ac4cce1b08d68ef4fad7b23adb224430ee1cb 100644 GIT binary patch literal 14949 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 Q(*OVf07*qoM6N<$f*v)W$^ZZW diff --git a/docs/misc/autopause-autostop/autopause.md b/docs/misc/autopause-autostop/autopause.md index e4a4951c..3611befe 100644 --- a/docs/misc/autopause-autostop/autopause.md +++ b/docs/misc/autopause-autostop/autopause.md @@ -1,14 +1,14 @@ # Auto-Pause - -!!! important - - As of [1.21.2](https://minecraft.wiki/w/Java_Edition_1.21.2) it is not recommend to use this feature since Minecraft server natively auto-pauses when the server is empty. That is configured via the enivironment variable `PAUSE_WHEN_EMPTY_SECONDS`, which maps to the `pause-when-empty-seconds` server property. + +!!! important + + As of [1.21.2](https://minecraft.wiki/w/Java_Edition_1.21.2) it is not recommend to use this feature since Minecraft server natively auto-pauses when the server is empty. That is configured via the enivironment variable `PAUSE_WHEN_EMPTY_SECONDS`, which maps to the `pause-when-empty-seconds` server property. An auto-pause functionality is provided that monitors whether clients are connected to the server. If a client is not connected for a specified time, the Java process is put into a pause state. When a client attempts to connect while the process is paused, then process will be restored to a running state. The experience for the client does not change. This feature can be enabled by setting the environment variable `ENABLE_AUTOPAUSE` to "true". !!! important - **You must greatly increase or disable max-tick-time watchdog functionality.** From the server's point of view, the pausing causes a single tick to take as long as the process is stopped, so the server watchdog might intervene after the process is continued, possibly forcing a container restart. To prevent this, ensure that the `max-tick-time` in the `server.properties` file is set to a very large value or -1 to disable it entirely, which is highly recommended. That can be set with `MAX_TICK_TIME` as described in [the section below](../../configuration/server-properties.md#max-tick-time). +**You must greatly increase or disable max-tick-time watchdog functionality.** From the server's point of view, the pausing causes a single tick to take as long as the process is stopped, so the server watchdog might intervene after the process is continued, possibly forcing a container restart. To prevent this, ensure that the `max-tick-time` in the `server.properties` file is set to a very large value or -1 to disable it entirely, which is highly recommended. That can be set with `MAX_TICK_TIME` as described in [server properties](../../configuration/server-properties.md). Non-vanilla versions might have their own configuration file, you might have to disable their watchdogs separately. For PaperMC servers, you need to send the JVM flag `-Ddisable.watchdog=true`, this can be done with the docker env variable `-e JVM_DD_OPTS=disable.watchdog:true` diff --git a/docs/mods-and-plugins/modrinth.md b/docs/mods-and-plugins/modrinth.md index 539c4776..744a3e24 100644 --- a/docs/mods-and-plugins/modrinth.md +++ b/docs/mods-and-plugins/modrinth.md @@ -4,7 +4,29 @@ ## Usage -To use this feature, set the environment variable `MODRINTH_PROJECTS` to a comma or newline separated list of project slugs (short name) or IDs. +To use this feature, set the environment variable `MODRINTH_PROJECTS` to a comma or newline separated list of projects. + +Each project entry can be any of the following combinations where a colon (`:`) is used to separate the different parts: + +``` + Project + Project : Version + Project : Release Type +Prefix : Project +Prefix : Project : Version +Prefix : Project : Release Type +@ Listing File +``` + +Where: + +- **Project** is the project slug or ID, see below +- **Version** is the version ID or number. When omitted, the latest release version will be selected. +- **Release Type** is `release`, `beta`, or `alpha` indicating the latest version to select. +- **Prefix** is `datapack`, `fabric`, `forge`, or `paper` + - The `datapack` prefix is optional when running a vanilla server + - The `fabric`, `forge`, and `paper` prefixes allow for installing mods/plugins that differ from server's `TYPE`. Using [Sinytra Connector](https://modrinth.com/mod/connector) is an example of this, where Fabric mods can be loaded into a NeoForge server. +- **Listing file** is a container path to a file containing a list of projects !!! tip "Project ID" @@ -23,12 +45,6 @@ To use this feature, set the environment variable `MODRINTH_PROJECTS` to a comma +-- project slug ``` -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. - -You can also reference a file containing project entries by prefixing the **container path** path with `@`. - ### Examples | Description | Example projects entry | @@ -39,6 +55,7 @@ You can also reference a file containing project entries by prefixing the **cont | Latest version using project ID | `P7dR8mSH` | | Latest version of datapack | `datapack:terralith` | | Specific version of datapack | `datapack:terralith:2.5.5` | +| Mod loader override | `fabric:fabric-api`
`fabric:fabric-api:bQZpGIz0` | | Projects Listing File | `@/path/to/modrinth-mods.txt` | ### Notes diff --git a/mkdocs.yml b/mkdocs.yml index ba4a365a..2f721f35 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -1,96 +1,96 @@ ---- -site_name: Minecraft Server on Docker (Java Edition) -site_url: https://docker-minecraft-server.readthedocs.io/en/latest/ -site_description: Documentation for Minecraft Server on Docker -repo_url: https://github.com/itzg/docker-minecraft-server -edit_uri: blob/master/docs/ -theme: - name: material - features: - - navigation.tracking - - navigation.tabs - - navigation.tabs.sticky - - navigation.sections - - navigation.expand - - navigation.top - - navigation.indexes - locale: en - palette: - - # Palette toggle for automatic mode - - media: "(prefers-color-scheme)" - toggle: - icon: material/brightness-auto - name: Switch to light mode - - # Palette toggle for light mode - - media: "(prefers-color-scheme: light)" - scheme: default - toggle: - icon: material/brightness-7 - name: Switch to dark mode - - # Palette toggle for dark mode - - media: "(prefers-color-scheme: dark)" - scheme: slate - toggle: - icon: material/brightness-4 - name: Switch to system preference - - highlightjs: true - hljs_languages: - - yaml - - bash - - java - - docker - - shell - - json - -extra_css: - - css/extra.css -markdown_extensions: - - admonition - - toc: - permalink: true - - attr_list - - def_list - - footnotes - - tables - - pymdownx.emoji: - emoji_index: !!python/name:material.extensions.emoji.twemoji - emoji_generator: !!python/name:material.extensions.emoji.to_svg - - pymdownx.highlight: - anchor_linenums: true - line_spans: __span - pygments_lang_class: true - - pymdownx.inlinehilite - - pymdownx.details - - pymdownx.snippets - - pymdownx.superfences - - mdx_gh_links: - user: camalot - repo: mkdocs-test - - mkdocs-click -copyright: Copyright © itzg 2024. -plugins: - - search - - autorefs - - mkdocstrings: - handlers: - python: - options: - docstring_section_style: list - members_order: source - show_root_heading: true - show_source: false - show_signature_annotations: true - # https://github.com/ultrabug/mkdocs-static-i18n - - i18n: - languages: - - locale: en - name: English - build: true - default: true - - literate-nav: - nav_file: README.md - implicit_index: true +--- +site_name: Minecraft Server on Docker (Java Edition) +site_url: https://docker-minecraft-server.readthedocs.io/en/latest/ +site_description: Documentation for Minecraft Server on Docker +repo_url: https://github.com/itzg/docker-minecraft-server +edit_uri: blob/master/docs/ +theme: + name: material + features: + - navigation.tracking + - navigation.tabs + - navigation.tabs.sticky + - navigation.sections + - navigation.expand + - navigation.top + - navigation.indexes + locale: en + palette: + + # Palette toggle for automatic mode + - media: "(prefers-color-scheme)" + toggle: + icon: material/brightness-auto + name: Switch to light mode + + # Palette toggle for light mode + - media: "(prefers-color-scheme: light)" + scheme: default + toggle: + icon: material/brightness-7 + name: Switch to dark mode + + # Palette toggle for dark mode + - media: "(prefers-color-scheme: dark)" + scheme: slate + toggle: + icon: material/brightness-4 + name: Switch to system preference + + highlightjs: true + hljs_languages: + - yaml + - bash + - java + - docker + - shell + - json + +extra_css: + - css/extra.css +markdown_extensions: + - admonition + - toc: + permalink: true + - attr_list + - def_list + - footnotes + - tables + - pymdownx.emoji: + emoji_index: !!python/name:material.extensions.emoji.twemoji + emoji_generator: !!python/name:material.extensions.emoji.to_svg + - pymdownx.highlight: + anchor_linenums: true + line_spans: __span + pygments_lang_class: true + - pymdownx.inlinehilite + - pymdownx.details + - pymdownx.snippets + - pymdownx.superfences + - mdx_gh_links: + user: camalot + repo: mkdocs-test + - mkdocs-click +copyright: Copyright © itzg 2024. +plugins: + - search + - autorefs + - mkdocstrings: + handlers: + python: + options: + docstring_section_style: list + members_order: source + show_root_heading: true + show_source: false + show_signature_annotations: true + # https://github.com/ultrabug/mkdocs-static-i18n + - i18n: + languages: + - locale: en + name: English + build: true + default: true + - literate-nav: + nav_file: README.md + implicit_index: true