mirror of
https://github.com/itzg/docker-minecraft-server.git
synced 2026-02-24 10:06:23 +00:00
Compare commits
22 Commits
2025.2.1
...
itzg-patch
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
33435b7e52 | ||
|
|
231ac0f665 | ||
|
|
68a56be107 | ||
|
|
ac32c8706f | ||
|
|
f5e511e3cc | ||
|
|
2a859d61f6 | ||
|
|
943429e180 | ||
|
|
7e5f5805a5 | ||
|
|
777f4e26b9 | ||
|
|
21f2a7e86c | ||
|
|
f22d291bfc | ||
|
|
5fd2522028 | ||
|
|
a7b35d955b | ||
|
|
73e402b46d | ||
|
|
73cb6333b7 | ||
|
|
6f190a68a2 | ||
|
|
4eedde802b | ||
|
|
8bb7ea9000 | ||
|
|
fcfb1cd74c | ||
|
|
beb3b4a2ce | ||
|
|
dcdbb85936 | ||
|
|
3a678a6bf3 |
14
.github/workflows/build-multiarch.yml
vendored
14
.github/workflows/build-multiarch.yml
vendored
@@ -111,7 +111,7 @@ jobs:
|
|||||||
|
|
||||||
- name: Docker meta
|
- name: Docker meta
|
||||||
id: meta
|
id: meta
|
||||||
uses: docker/metadata-action@v5.6.1
|
uses: docker/metadata-action@v5.7.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.
|
||||||
@@ -139,13 +139,13 @@ jobs:
|
|||||||
org.opencontainers.image.authors=Geoff Bourne <itzgeoff@gmail.com>
|
org.opencontainers.image.authors=Geoff Bourne <itzgeoff@gmail.com>
|
||||||
|
|
||||||
- name: Setup Docker Buildx
|
- name: Setup Docker Buildx
|
||||||
uses: docker/setup-buildx-action@v3.9.0
|
uses: docker/setup-buildx-action@v3.10.0
|
||||||
|
|
||||||
- name: Set up QEMU
|
- name: Set up QEMU
|
||||||
uses: docker/setup-qemu-action@v3.4.0
|
uses: docker/setup-qemu-action@v3.6.0
|
||||||
|
|
||||||
- name: Build for test
|
- name: Build for test
|
||||||
uses: docker/build-push-action@v6.13.0
|
uses: docker/build-push-action@v6.15.0
|
||||||
with:
|
with:
|
||||||
platforms: linux/amd64
|
platforms: linux/amd64
|
||||||
tags: ${{ env.IMAGE_TO_TEST }}
|
tags: ${{ env.IMAGE_TO_TEST }}
|
||||||
@@ -168,14 +168,14 @@ jobs:
|
|||||||
tests/test.sh
|
tests/test.sh
|
||||||
|
|
||||||
- name: Login to DockerHub
|
- name: Login to DockerHub
|
||||||
uses: docker/login-action@v3.3.0
|
uses: docker/login-action@v3.4.0
|
||||||
if: env.HAS_IMAGE_REPO_ACCESS
|
if: env.HAS_IMAGE_REPO_ACCESS
|
||||||
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@v3.3.0
|
uses: docker/login-action@v3.4.0
|
||||||
if: env.HAS_IMAGE_REPO_ACCESS
|
if: env.HAS_IMAGE_REPO_ACCESS
|
||||||
with:
|
with:
|
||||||
registry: ghcr.io
|
registry: ghcr.io
|
||||||
@@ -183,7 +183,7 @@ jobs:
|
|||||||
password: ${{ github.token }}
|
password: ${{ github.token }}
|
||||||
|
|
||||||
- name: Build and push
|
- name: Build and push
|
||||||
uses: docker/build-push-action@v6.13.0
|
uses: docker/build-push-action@v6.15.0
|
||||||
if: github.actor == github.repository_owner
|
if: github.actor == github.repository_owner
|
||||||
with:
|
with:
|
||||||
platforms: ${{ matrix.platforms }}
|
platforms: ${{ matrix.platforms }}
|
||||||
|
|||||||
6
.github/workflows/verify-pr.yml
vendored
6
.github/workflows/verify-pr.yml
vendored
@@ -53,10 +53,10 @@ jobs:
|
|||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
|
|
||||||
- name: Setup Docker Buildx
|
- name: Setup Docker Buildx
|
||||||
uses: docker/setup-buildx-action@v3.9.0
|
uses: docker/setup-buildx-action@v3.10.0
|
||||||
|
|
||||||
- name: Confirm multi-arch build
|
- name: Confirm multi-arch build
|
||||||
uses: docker/build-push-action@v6.13.0
|
uses: docker/build-push-action@v6.15.0
|
||||||
with:
|
with:
|
||||||
platforms: ${{ matrix.platforms }}
|
platforms: ${{ matrix.platforms }}
|
||||||
# ensure latest base image is used
|
# ensure latest base image is used
|
||||||
@@ -66,7 +66,7 @@ jobs:
|
|||||||
cache-from: type=gha,scope=${{ matrix.variant }}
|
cache-from: type=gha,scope=${{ matrix.variant }}
|
||||||
|
|
||||||
- name: Build for test
|
- name: Build for test
|
||||||
uses: docker/build-push-action@v6.13.0
|
uses: docker/build-push-action@v6.15.0
|
||||||
with:
|
with:
|
||||||
# Only build single platform since loading multi-arch image into daemon fails with
|
# Only build single platform since loading multi-arch image into daemon fails with
|
||||||
# "docker exporter does not currently support exporting manifest lists"
|
# "docker exporter does not currently support exporting manifest lists"
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
|
|||||||
--var version=${RESTIFY_VERSION} --var app=restify --file {{.app}} \
|
--var version=${RESTIFY_VERSION} --var app=restify --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 RCON_CLI_VERSION=1.6.11
|
ARG RCON_CLI_VERSION=1.7.0
|
||||||
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
|
||||||
@@ -50,7 +50,7 @@ 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.40.13
|
ARG MC_HELPER_VERSION=1.41.2
|
||||||
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 @@
|
|||||||
[](https://hub.docker.com/r/itzg/minecraft-server/)
|
[](https://hub.docker.com/r/itzg/minecraft-server/)
|
||||||
[](https://hub.docker.com/r/itzg/minecraft-server/)
|
[](https://hub.docker.com/r/itzg/minecraft-server/)
|
||||||
[](https://github.com/itzg/docker-minecraft-server/issues)
|
[](https://github.com/itzg/docker-minecraft-server/issues)
|
||||||
[](https://discord.gg/DXfKpjB)
|
[](https://discord.gg/DXfKpjB)
|
||||||
[](https://github.com/itzg/docker-minecraft-server/actions/workflows/build-multiarch.yml)
|
[](https://github.com/itzg/docker-minecraft-server/actions/workflows/build-multiarch.yml)
|
||||||
|
|||||||
@@ -197,14 +197,34 @@ New to [22W42A](https://www.minecraft.net/en-us/article/minecraft-snapshot-22w42
|
|||||||
|
|
||||||
### Server icon
|
### Server icon
|
||||||
|
|
||||||
A server icon can be configured using the `ICON` variable. The image will be automatically
|
A server icon can be configured by setting the `ICON` variable to a URL to download or a container path. The image will be automatically downloaded (if a URL), scaled, and converted from any other image format:
|
||||||
downloaded, scaled, and converted from any other image format:
|
|
||||||
|
|
||||||
|
!!! example
|
||||||
|
|
||||||
|
Using `docker run`:
|
||||||
|
|
||||||
|
```
|
||||||
docker run -d -e ICON=http://..../some/image.png ...
|
docker run -d -e ICON=http://..../some/image.png ...
|
||||||
|
```
|
||||||
|
|
||||||
|
In compose file:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
environment:
|
||||||
|
ICON: http://..../some/image.png
|
||||||
|
```
|
||||||
|
|
||||||
|
Using a file from host filesystem:
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
environment:
|
||||||
|
ICON: /icon.png
|
||||||
|
OVERRIDE_ICON: true
|
||||||
|
volumes:
|
||||||
|
./icon.png:/icon.png
|
||||||
|
```
|
||||||
|
|
||||||
The server icon which has been set doesn't get overridden by default. It can be changed and overridden by setting `OVERRIDE_ICON` to `TRUE`.
|
By default an existing `server-icon.png` file will not be replaced, that can be changed by setting `OVERRIDE_ICON` to "true".
|
||||||
|
|
||||||
docker run -d -e ICON=http://..../some/other/image.png -e OVERRIDE_ICON=TRUE...
|
|
||||||
|
|
||||||
### RCON
|
### RCON
|
||||||
|
|
||||||
@@ -502,4 +522,4 @@ When using `docker run` from a bash shell, the entries must be quoted with the `
|
|||||||
| LOG_IPS | log-ips |
|
| LOG_IPS | log-ips |
|
||||||
| REGION_FILE_COMPRESSION | region-file-compression |
|
| REGION_FILE_COMPRESSION | region-file-compression |
|
||||||
| BUG_REPORT_LINK | bug-report-link |
|
| BUG_REPORT_LINK | bug-report-link |
|
||||||
| PAUSE_WHEN_EMPTY_SECONDS | pause-when-empty-seconds |
|
| PAUSE_WHEN_EMPTY_SECONDS | pause-when-empty-seconds |
|
||||||
|
|||||||
@@ -38,6 +38,8 @@ The following environment variables define the behaviour of auto-pausing:
|
|||||||
describes period of the daemonized state machine, that handles the pausing of the process (resuming is done independently)
|
describes period of the daemonized state machine, that handles the pausing of the process (resuming is done independently)
|
||||||
- `AUTOPAUSE_KNOCK_INTERFACE`, default `eth0`
|
- `AUTOPAUSE_KNOCK_INTERFACE`, default `eth0`
|
||||||
<br>Describes the interface passed to the `knockd` daemon. If the default interface does not work, run the `ifconfig` command inside the container and derive the interface receiving the incoming connection from its output. The passed interface must exist inside the container. Using the loopback interface (`lo`) does likely not yield the desired results.
|
<br>Describes the interface passed to the `knockd` daemon. If the default interface does not work, run the `ifconfig` command inside the container and derive the interface receiving the incoming connection from its output. The passed interface must exist inside the container. Using the loopback interface (`lo`) does likely not yield the desired results.
|
||||||
|
- `AUTOPAUSE_STATUS_RETRY_LIMIT`, default 10
|
||||||
|
- `AUTOPAUSE_STATUS_RETRY_INTERVAL`, default 2s
|
||||||
|
|
||||||
!!! tip
|
!!! tip
|
||||||
|
|
||||||
|
|||||||
@@ -17,12 +17,14 @@ Enable the Autostop functionality by setting:
|
|||||||
```
|
```
|
||||||
|
|
||||||
The following environment variables define the behavior of auto-stopping:
|
The following environment variables define the behavior of auto-stopping:
|
||||||
* `AUTOSTOP_TIMEOUT_EST`, default `3600` (seconds)
|
- `AUTOSTOP_TIMEOUT_EST`, default `3600` (seconds)
|
||||||
describes the time between the last client disconnect and the stopping of the server (read as timeout established)
|
describes the time between the last client disconnect and the stopping of the server (read as timeout established)
|
||||||
* `AUTOSTOP_TIMEOUT_INIT`, default `1800` (seconds)
|
- `AUTOSTOP_TIMEOUT_INIT`, default `1800` (seconds)
|
||||||
describes the time between server start and the stopping of the server, when no client connects in-between (read as timeout initialized)
|
describes the time between server start and the stopping of the server, when no client connects in-between (read as timeout initialized)
|
||||||
* `AUTOSTOP_PERIOD`, default `10` (seconds)
|
- `AUTOSTOP_PERIOD`, default `10` (seconds)
|
||||||
describes period of the daemonized state machine, that handles the stopping of the server
|
describes period of the daemonized state machine, that handles the stopping of the server
|
||||||
|
- `AUTOPAUSE_STATUS_RETRY_LIMIT`, default 10
|
||||||
|
- `AUTOPAUSE_STATUS_RETRY_INTERVAL`, default 2s
|
||||||
|
|
||||||
> To troubleshoot, add `DEBUG_AUTOSTOP=true` to see additional output
|
> To troubleshoot, add `DEBUG_AUTOSTOP=true` to see additional output
|
||||||
|
|
||||||
|
|||||||
@@ -31,15 +31,33 @@ services:
|
|||||||
With [lazymc-docker-proxy](https://github.com/joesturge/lazymc-docker-proxy) you are able to use [lazymc](https://github.com/timvisee/lazymc) with the minecraft container.
|
With [lazymc-docker-proxy](https://github.com/joesturge/lazymc-docker-proxy) you are able to use [lazymc](https://github.com/timvisee/lazymc) with the minecraft container.
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
|
# Lazymc requires that the minecraft server have a static IP.
|
||||||
|
#
|
||||||
|
# To ensure that our servers have a static IP we need to create
|
||||||
|
# a network for our services to use.
|
||||||
|
#
|
||||||
|
# By default, Docker uses 172.17.0.0/16 subnet range.
|
||||||
|
# So we need to create a new network in a different subnet
|
||||||
|
# See the readme for more information.
|
||||||
|
#
|
||||||
|
# Please ensure that the subnet falls within the private CIDRs:
|
||||||
|
# https://datatracker.ietf.org/doc/html/rfc1918#section-3
|
||||||
|
#
|
||||||
|
# And that it is not in use by anything else.
|
||||||
|
networks:
|
||||||
|
minecraft-network:
|
||||||
|
driver: bridge
|
||||||
|
ipam:
|
||||||
|
config:
|
||||||
|
- subnet: 172.18.0.0/16
|
||||||
|
|
||||||
services:
|
services:
|
||||||
lazymc:
|
lazymc:
|
||||||
container_name: lazymc
|
|
||||||
image: ghcr.io/joesturge/lazymc-docker-proxy:latest
|
image: ghcr.io/joesturge/lazymc-docker-proxy:latest
|
||||||
environment:
|
# the IPs should start at .2 as .1 is reserved for the gateway
|
||||||
# Point to the service name of the Minecraft server
|
networks:
|
||||||
SERVER_ADDRESS: mc:25565
|
minecraft-network:
|
||||||
# Required to find the container to manage it
|
ipv4_address: 172.18.0.2
|
||||||
LAZYMC_GROUP: mc
|
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
volumes:
|
volumes:
|
||||||
# you should mount the minecraft server dir under /server, using read only.
|
# you should mount the minecraft server dir under /server, using read only.
|
||||||
@@ -54,11 +72,19 @@ services:
|
|||||||
# Standard Docker Minecraft server, also works with other server types
|
# Standard Docker Minecraft server, also works with other server types
|
||||||
mc:
|
mc:
|
||||||
image: itzg/minecraft-server:java21
|
image: itzg/minecraft-server:java21
|
||||||
container_name: minecraft-server
|
# Assign a static IP to the server container
|
||||||
|
networks:
|
||||||
|
minecraft-network:
|
||||||
|
ipv4_address: 172.18.0.3
|
||||||
# We need to add a label here so that lazymc-docker-proxy knows which
|
# We need to add a label here so that lazymc-docker-proxy knows which
|
||||||
# container to manage
|
# container to manage
|
||||||
labels:
|
labels:
|
||||||
|
# Set lazymc.enabled to true to enable lazymc on this container
|
||||||
|
- lazymc.enabled=true
|
||||||
|
# Required to find the container to manage it
|
||||||
- lazymc.group=mc
|
- lazymc.group=mc
|
||||||
|
# Point to the service name of the Minecraft server
|
||||||
|
- lazymc.server.address=mc:25565
|
||||||
tty: true
|
tty: true
|
||||||
stdin_open: true
|
stdin_open: true
|
||||||
# This container should be managed solely by the lazymc container
|
# This container should be managed solely by the lazymc container
|
||||||
@@ -113,4 +139,4 @@ services:
|
|||||||
stdin_open: true
|
stdin_open: true
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
```
|
```
|
||||||
[Source](https://github.com/itzg/docker-minecraft-server/blob/master/examples/lazytainer/docker-compose.yml)
|
[Source](https://github.com/itzg/docker-minecraft-server/blob/master/examples/lazytainer/docker-compose.yml)
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ The terms "mods" and "plugins" can be quite confusing. Generally, the rule of th
|
|||||||
There are optional volume paths that can be attached to supply content to be copied into the data area:
|
There are optional volume paths that can be attached to supply content to be copied into the data area:
|
||||||
|
|
||||||
`/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`.
|
: 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.
|
||||||
|
|
||||||
`/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,6 +1,6 @@
|
|||||||
mkdocs-material == 9.6.1
|
mkdocs-material == 9.6.8
|
||||||
mkdocs-autorefs == 1.3.0
|
mkdocs-autorefs == 1.4.1
|
||||||
mkdocstrings == 0.27.0
|
mkdocstrings[python] == 0.29.0
|
||||||
mkdocs-literate-nav == 0.6.1
|
mkdocs-literate-nav == 0.6.1
|
||||||
mdx-gh-links == 0.4
|
mdx-gh-links == 0.4
|
||||||
mkdocs-click == 0.8.1
|
mkdocs-click == 0.8.1
|
||||||
|
|||||||
@@ -56,7 +56,9 @@ For example:
|
|||||||
-e TYPE=AUTO_CURSEFORGE -e CF_SLUG=all-the-mods-8
|
-e TYPE=AUTO_CURSEFORGE -e CF_SLUG=all-the-mods-8
|
||||||
```
|
```
|
||||||
|
|
||||||
The latest file will be located and used by default, but if a specific version is desired you can use one of the following options. With any of these options **do not select a server file** -- they lack the required manifest and defeat the ability to consistently automate startup.
|
### Pinning modpack and mod loader versions
|
||||||
|
|
||||||
|
The latest modpack file and its associated mod loader will be located and installed by default on startup (including automatic upgrading of both on subsequent startups, if a later version is found on CurseForge). If a specific version is desired instead, you can use one of the following options. With any of these options **do not select a server file** -- they lack the required manifest and defeat the ability to consistently automate startup.
|
||||||
|
|
||||||
- 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
|
||||||
@@ -82,6 +84,8 @@ The following examples all refer to version 1.0.7 of ATM8:
|
|||||||
CF_FILENAME_MATCHER: 1.0.7
|
CF_FILENAME_MATCHER: 1.0.7
|
||||||
```
|
```
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
## 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.
|
||||||
|
|||||||
@@ -4,7 +4,10 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
EULA: true
|
EULA: true
|
||||||
MODPACK_PLATFORM: AUTO_CURSEFORGE
|
MODPACK_PLATFORM: AUTO_CURSEFORGE
|
||||||
# from .env
|
# Allocate API key from https://console.curseforge.com/
|
||||||
|
# and set in .env file making sure to double up dollar signs, such as
|
||||||
|
# CF_API_KEY=$$2a$$10$$....
|
||||||
|
# Refer to https://docker-minecraft-server.readthedocs.io/en/latest/types-and-platforms/mod-platforms/auto-curseforge/#api-key
|
||||||
CF_API_KEY: ${CF_API_KEY}
|
CF_API_KEY: ${CF_API_KEY}
|
||||||
CF_PAGE_URL: https://www.curseforge.com/minecraft/modpacks/all-of-fabric-7
|
CF_PAGE_URL: https://www.curseforge.com/minecraft/modpacks/all-of-fabric-7
|
||||||
# CF_FILENAME_MATCHER: 1.2.2
|
# CF_FILENAME_MATCHER: 1.2.2
|
||||||
|
|||||||
@@ -8,7 +8,10 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
EULA: true
|
EULA: true
|
||||||
MOD_PLATFORM: AUTO_CURSEFORGE
|
MOD_PLATFORM: AUTO_CURSEFORGE
|
||||||
# allocate from https://console.curseforge.com/ and set in .env file
|
# Allocate API key from https://console.curseforge.com/
|
||||||
|
# and set in .env file making sure to double up dollar signs, such as
|
||||||
|
# CF_API_KEY=$$2a$$10$$....
|
||||||
|
# Refer to https://docker-minecraft-server.readthedocs.io/en/latest/types-and-platforms/mod-platforms/auto-curseforge/#api-key
|
||||||
CF_API_KEY: ${CF_API_KEY}
|
CF_API_KEY: ${CF_API_KEY}
|
||||||
CF_SLUG: all-the-mods-10
|
CF_SLUG: all-the-mods-10
|
||||||
# Optional: select a specific version/file
|
# Optional: select a specific version/file
|
||||||
|
|||||||
@@ -6,7 +6,10 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
EULA: "true"
|
EULA: "true"
|
||||||
MODPACK_PLATFORM: AUTO_CURSEFORGE
|
MODPACK_PLATFORM: AUTO_CURSEFORGE
|
||||||
# allocate from https://console.curseforge.com/ and set in .env file
|
# Allocate API key from https://console.curseforge.com/
|
||||||
|
# and set in .env file making sure to double up dollar signs, such as
|
||||||
|
# CF_API_KEY=$$2a$$10$$....
|
||||||
|
# Refer to https://docker-minecraft-server.readthedocs.io/en/latest/types-and-platforms/mod-platforms/auto-curseforge/#api-key
|
||||||
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
|
||||||
# CF_FILENAME_MATCHER: "1.1.0"
|
# CF_FILENAME_MATCHER: "1.1.0"
|
||||||
|
|||||||
@@ -6,7 +6,10 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
EULA: "true"
|
EULA: "true"
|
||||||
MODPACK_PLATFORM: AUTO_CURSEFORGE
|
MODPACK_PLATFORM: AUTO_CURSEFORGE
|
||||||
# allocate from https://console.curseforge.com/ and set in .env file
|
# Allocate API key from https://console.curseforge.com/
|
||||||
|
# and set in .env file making sure to double up dollar signs, such as
|
||||||
|
# CF_API_KEY=$$2a$$10$$....
|
||||||
|
# Refer to https://docker-minecraft-server.readthedocs.io/en/latest/types-and-platforms/mod-platforms/auto-curseforge/#api-key
|
||||||
CF_API_KEY: ${CF_API_KEY}
|
CF_API_KEY: ${CF_API_KEY}
|
||||||
CF_PAGE_URL: https://www.curseforge.com/minecraft/modpacks/all-the-mods-9
|
CF_PAGE_URL: https://www.curseforge.com/minecraft/modpacks/all-the-mods-9
|
||||||
# Optional: select a specific version/file
|
# Optional: select a specific version/file
|
||||||
|
|||||||
@@ -4,7 +4,10 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
EULA: true
|
EULA: true
|
||||||
MODPACK_PLATFORM: AUTO_CURSEFORGE
|
MODPACK_PLATFORM: AUTO_CURSEFORGE
|
||||||
# allocate from https://console.curseforge.com/ and set in .env file
|
# Allocate API key from https://console.curseforge.com/
|
||||||
|
# and set in .env file making sure to double up dollar signs, such as
|
||||||
|
# CF_API_KEY=$$2a$$10$$....
|
||||||
|
# Refer to https://docker-minecraft-server.readthedocs.io/en/latest/types-and-platforms/mod-platforms/auto-curseforge/#api-key
|
||||||
CF_API_KEY: ${CF_API_KEY}
|
CF_API_KEY: ${CF_API_KEY}
|
||||||
CF_MODPACK_MANIFEST: /manifests/manifest.json
|
CF_MODPACK_MANIFEST: /manifests/manifest.json
|
||||||
CF_SLUG: "custom"
|
CF_SLUG: "custom"
|
||||||
|
|||||||
@@ -6,40 +6,12 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
EULA: "true"
|
EULA: "true"
|
||||||
MODPACK_PLATFORM: AUTO_CURSEFORGE
|
MODPACK_PLATFORM: AUTO_CURSEFORGE
|
||||||
# allocate from https://console.curseforge.com/ and set in .env file
|
# Allocate API key from https://console.curseforge.com/
|
||||||
|
# and set in .env file making sure to double up dollar signs, such as
|
||||||
|
# CF_API_KEY=$$2a$$10$$....
|
||||||
|
# Refer to https://docker-minecraft-server.readthedocs.io/en/latest/types-and-platforms/mod-platforms/auto-curseforge/#api-key
|
||||||
CF_API_KEY: ${CF_API_KEY}
|
CF_API_KEY: ${CF_API_KEY}
|
||||||
CF_PAGE_URL: https://www.curseforge.com/minecraft/modpacks/minecraft-eternal/files/4102634
|
CF_PAGE_URL: https://www.curseforge.com/minecraft/modpacks/minecraft-eternal/files/4102634
|
||||||
CF_EXCLUDE_MODS: |
|
|
||||||
cherished-worlds
|
|
||||||
controlling
|
|
||||||
ctm
|
|
||||||
custom-main-menu
|
|
||||||
ding
|
|
||||||
minecraft-rich-presence
|
|
||||||
enchantment-descriptions
|
|
||||||
just-enough-harvestcraft
|
|
||||||
just-enough-resources-jer
|
|
||||||
menumobs
|
|
||||||
more-overlays
|
|
||||||
mouse-tweaks
|
|
||||||
oldjavawarning
|
|
||||||
overloaded-armor-bar
|
|
||||||
reauth
|
|
||||||
thaumic-jei
|
|
||||||
tips
|
|
||||||
armor-toughness-bar
|
|
||||||
waila-harvestability
|
|
||||||
ambientsounds
|
|
||||||
biomeinfo
|
|
||||||
block-drops-jei-addon
|
|
||||||
loot-capacitor-tooltips
|
|
||||||
no-recipe-book
|
|
||||||
packmodemenu
|
|
||||||
resource-reloader
|
|
||||||
|
|
||||||
# blockdrops
|
|
||||||
|
|
||||||
CF_FORCE_SYNCHRONIZE: "true"
|
|
||||||
MEMORY: 4G
|
MEMORY: 4G
|
||||||
volumes:
|
volumes:
|
||||||
- mc-data:/data
|
- mc-data:/data
|
||||||
|
|||||||
@@ -7,11 +7,13 @@ services:
|
|||||||
- "mc:/data"
|
- "mc:/data"
|
||||||
environment:
|
environment:
|
||||||
EULA: "TRUE"
|
EULA: "TRUE"
|
||||||
|
TYPE: PAPER
|
||||||
ENABLE_AUTOPAUSE: "TRUE"
|
ENABLE_AUTOPAUSE: "TRUE"
|
||||||
MAX_TICK_TIME: "-1"
|
MAX_TICK_TIME: "-1"
|
||||||
# More aggressive settings for demo purposes
|
# More aggressive settings for demo purposes
|
||||||
AUTOPAUSE_TIMEOUT_INIT: "30"
|
AUTOPAUSE_TIMEOUT_INIT: "30"
|
||||||
AUTOPAUSE_TIMEOUT_EST: "10"
|
AUTOPAUSE_TIMEOUT_EST: "10"
|
||||||
|
JVM_DD_OPTS: "disable.watchdog:true"
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
|
|||||||
@@ -4,7 +4,10 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
EULA: true
|
EULA: true
|
||||||
MODPACK_PLATFORM: AUTO_CURSEFORGE
|
MODPACK_PLATFORM: AUTO_CURSEFORGE
|
||||||
# Set CF_API_KEY=... in a .env file next to this compose file and don't source control that file
|
# Allocate API key from https://console.curseforge.com/
|
||||||
|
# and set in .env file making sure to double up dollar signs, such as
|
||||||
|
# CF_API_KEY=$$2a$$10$$....
|
||||||
|
# Refer to https://docker-minecraft-server.readthedocs.io/en/latest/types-and-platforms/mod-platforms/auto-curseforge/#api-key
|
||||||
CF_API_KEY: ${CF_API_KEY}
|
CF_API_KEY: ${CF_API_KEY}
|
||||||
CF_SLUG: better-mc-fabric-bmc1
|
CF_SLUG: better-mc-fabric-bmc1
|
||||||
# CF_FILENAME_MATCHER: v18.5
|
# CF_FILENAME_MATCHER: v18.5
|
||||||
|
|||||||
@@ -9,10 +9,14 @@ services:
|
|||||||
EULA: true
|
EULA: true
|
||||||
ALLOW_FLIGHT: true
|
ALLOW_FLIGHT: true
|
||||||
MOD_PLATFORM: AUTO_CURSEFORGE
|
MOD_PLATFORM: AUTO_CURSEFORGE
|
||||||
# allocate from https://console.curseforge.com/ and set in .env file
|
# Allocate API key from https://console.curseforge.com/
|
||||||
|
# and set in .env file making sure to double up dollar signs, such as
|
||||||
|
# CF_API_KEY=$$2a$$10$$....
|
||||||
|
# Refer to https://docker-minecraft-server.readthedocs.io/en/latest/types-and-platforms/mod-platforms/auto-curseforge/#api-key
|
||||||
CF_API_KEY: ${CF_API_KEY}
|
CF_API_KEY: ${CF_API_KEY}
|
||||||
CF_SLUG: craftoria
|
CF_SLUG: craftoria
|
||||||
MEMORY: 8G
|
MEMORY: 8G
|
||||||
|
# TODO: replace with slugs and see if already excluded by cf-exclude-include.json
|
||||||
CF_EXCLUDE_MODS: |
|
CF_EXCLUDE_MODS: |
|
||||||
737481
|
737481
|
||||||
363363
|
363363
|
||||||
|
|||||||
@@ -4,7 +4,10 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
EULA: true
|
EULA: true
|
||||||
TYPE: FORGE
|
TYPE: FORGE
|
||||||
# allocate from https://console.curseforge.com/ and set in .env file
|
# Allocate API key from https://console.curseforge.com/
|
||||||
|
# and set in .env file making sure to double up dollar signs, such as
|
||||||
|
# CF_API_KEY=$$2a$$10$$....
|
||||||
|
# Refer to https://docker-minecraft-server.readthedocs.io/en/latest/types-and-platforms/mod-platforms/auto-curseforge/#api-key
|
||||||
CF_API_KEY: ${CF_API_KEY}
|
CF_API_KEY: ${CF_API_KEY}
|
||||||
VERSION: 1.19.2
|
VERSION: 1.19.2
|
||||||
CURSEFORGE_FILES: |
|
CURSEFORGE_FILES: |
|
||||||
|
|||||||
@@ -12,7 +12,10 @@ services:
|
|||||||
CURSEFORGE_FILES: |
|
CURSEFORGE_FILES: |
|
||||||
fabric-api
|
fabric-api
|
||||||
chunky-pregenerator
|
chunky-pregenerator
|
||||||
# allocate from https://console.curseforge.com/ and set in .env file
|
# Allocate API key from https://console.curseforge.com/
|
||||||
|
# and set in .env file making sure to double up dollar signs, such as
|
||||||
|
# CF_API_KEY=$$2a$$10$$....
|
||||||
|
# Refer to https://docker-minecraft-server.readthedocs.io/en/latest/types-and-platforms/mod-platforms/auto-curseforge/#api-key
|
||||||
CF_API_KEY: ${CF_API_KEY}
|
CF_API_KEY: ${CF_API_KEY}
|
||||||
# YAML Heredoc, be sure to use '|-' this will remove the first newline and final new line.
|
# YAML Heredoc, be sure to use '|-' this will remove the first newline and final new line.
|
||||||
# This is versus '|' that will leaving with two empty strings at top and bottom.
|
# This is versus '|' that will leaving with two empty strings at top and bottom.
|
||||||
|
|||||||
20
examples/fabric-cardboard/compose.yml
Normal file
20
examples/fabric-cardboard/compose.yml
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
services:
|
||||||
|
mc:
|
||||||
|
image: itzg/minecraft-server:latest
|
||||||
|
tty: true
|
||||||
|
stdin_open: true
|
||||||
|
ports:
|
||||||
|
- "25565:25565"
|
||||||
|
environment:
|
||||||
|
EULA: "TRUE"
|
||||||
|
TYPE: "FABRIC"
|
||||||
|
MEMORY: 4G
|
||||||
|
MODRINTH_PROJECTS: |
|
||||||
|
fabric-api
|
||||||
|
cardboard:beta
|
||||||
|
USES_PLUGINS: true
|
||||||
|
volumes:
|
||||||
|
- mc-data:/data
|
||||||
|
- ./plugins:/plugins:ro
|
||||||
|
volumes:
|
||||||
|
mc-data:
|
||||||
@@ -4,6 +4,9 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
EULA: "true"
|
EULA: "true"
|
||||||
TYPE: FABRIC
|
TYPE: FABRIC
|
||||||
|
# VERSION: 1.21.4
|
||||||
|
# FABRIC_INSTALLER_VERSION: 1.0.1
|
||||||
|
# FABRIC_LOADER_VERSION: 0.16.10
|
||||||
ports:
|
ports:
|
||||||
- "25565:25565"
|
- "25565:25565"
|
||||||
volumes:
|
volumes:
|
||||||
@@ -9,6 +9,10 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
EULA: "TRUE"
|
EULA: "TRUE"
|
||||||
TYPE: AUTO_CURSEFORGE
|
TYPE: AUTO_CURSEFORGE
|
||||||
|
# Allocate API key from https://console.curseforge.com/
|
||||||
|
# and set in .env file making sure to double up dollar signs, such as
|
||||||
|
# CF_API_KEY=$$2a$$10$$....
|
||||||
|
# Refer to https://docker-minecraft-server.readthedocs.io/en/latest/types-and-platforms/mod-platforms/auto-curseforge/#api-key
|
||||||
CF_API_KEY: ${CF_API_KEY}
|
CF_API_KEY: ${CF_API_KEY}
|
||||||
CF_PAGE_URL: https://www.curseforge.com/minecraft/modpacks/ftb-evolution
|
CF_PAGE_URL: https://www.curseforge.com/minecraft/modpacks/ftb-evolution
|
||||||
# This modpack includes an override client-side only mod that will prevent the server from starting.
|
# This modpack includes an override client-side only mod that will prevent the server from starting.
|
||||||
|
|||||||
@@ -5,6 +5,10 @@ services:
|
|||||||
EULA: true
|
EULA: true
|
||||||
TYPE: KETTING
|
TYPE: KETTING
|
||||||
VERSION: 1.20.1
|
VERSION: 1.20.1
|
||||||
|
# Allocate API key from https://console.curseforge.com/
|
||||||
|
# and set in .env file making sure to double up dollar signs, such as
|
||||||
|
# CF_API_KEY=$$2a$$10$$....
|
||||||
|
# Refer to https://docker-minecraft-server.readthedocs.io/en/latest/types-and-platforms/mod-platforms/auto-curseforge/#api-key
|
||||||
CF_API_KEY: "${CF_API_KEY}"
|
CF_API_KEY: "${CF_API_KEY}"
|
||||||
CURSEFORGE_FILES: https://www.curseforge.com/minecraft/mc-mods/aquaculture
|
CURSEFORGE_FILES: https://www.curseforge.com/minecraft/mc-mods/aquaculture
|
||||||
ports:
|
ports:
|
||||||
|
|||||||
@@ -1,12 +1,30 @@
|
|||||||
|
# Lazymc requires that the minecraft server have a static IP.
|
||||||
|
#
|
||||||
|
# To ensure that our servers have a static IP we need to create
|
||||||
|
# a network for our services to use.
|
||||||
|
#
|
||||||
|
# By default, Docker uses 172.17.0.0/16 subnet range.
|
||||||
|
# So we need to create a new network in a different subnet
|
||||||
|
# See the readme for more information.
|
||||||
|
#
|
||||||
|
# Please ensure that the subnet falls within the private CIDRs:
|
||||||
|
# https://datatracker.ietf.org/doc/html/rfc1918#section-3
|
||||||
|
#
|
||||||
|
# And that it is not in use by anything else.
|
||||||
|
networks:
|
||||||
|
minecraft-network:
|
||||||
|
driver: bridge
|
||||||
|
ipam:
|
||||||
|
config:
|
||||||
|
- subnet: 172.18.0.0/16
|
||||||
|
|
||||||
services:
|
services:
|
||||||
lazymc:
|
lazymc:
|
||||||
container_name: lazymc
|
|
||||||
image: ghcr.io/joesturge/lazymc-docker-proxy:latest
|
image: ghcr.io/joesturge/lazymc-docker-proxy:latest
|
||||||
environment:
|
# the IPs should start at .2 as .1 is reserved for the gateway
|
||||||
# Point to the service name of the Minecraft server
|
networks:
|
||||||
SERVER_ADDRESS: mc:25565
|
minecraft-network:
|
||||||
# Required to find the container to manage it
|
ipv4_address: 172.18.0.2
|
||||||
LAZYMC_GROUP: mc
|
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
volumes:
|
volumes:
|
||||||
# you should mount the minecraft server dir under /server, using read only.
|
# you should mount the minecraft server dir under /server, using read only.
|
||||||
@@ -21,11 +39,19 @@ services:
|
|||||||
# Standard Docker Minecraft server, also works with other server types
|
# Standard Docker Minecraft server, also works with other server types
|
||||||
mc:
|
mc:
|
||||||
image: itzg/minecraft-server:java21
|
image: itzg/minecraft-server:java21
|
||||||
container_name: minecraft-server
|
# Assign a static IP to the server container
|
||||||
|
networks:
|
||||||
|
minecraft-network:
|
||||||
|
ipv4_address: 172.18.0.3
|
||||||
# We need to add a label here so that lazymc-docker-proxy knows which
|
# We need to add a label here so that lazymc-docker-proxy knows which
|
||||||
# container to manage
|
# container to manage
|
||||||
labels:
|
labels:
|
||||||
|
# Set lazymc.enabled to true to enable lazymc on this container
|
||||||
|
- lazymc.enabled=true
|
||||||
|
# Required to find the container to manage it
|
||||||
- lazymc.group=mc
|
- lazymc.group=mc
|
||||||
|
# Point to the service name of the Minecraft server
|
||||||
|
- lazymc.server.address=mc:25565
|
||||||
tty: true
|
tty: true
|
||||||
stdin_open: true
|
stdin_open: true
|
||||||
# This container should be managed solely by the lazymc container
|
# This container should be managed solely by the lazymc container
|
||||||
|
|||||||
@@ -6,7 +6,10 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
EULA: "true"
|
EULA: "true"
|
||||||
MODPACK_PLATFORM: AUTO_CURSEFORGE
|
MODPACK_PLATFORM: AUTO_CURSEFORGE
|
||||||
# CF_API_KEY=... must be set in .env file or as environment variable
|
# Allocate API key from https://console.curseforge.com/
|
||||||
|
# and set in .env file making sure to double up dollar signs, such as
|
||||||
|
# CF_API_KEY=$$2a$$10$$....
|
||||||
|
# Refer to https://docker-minecraft-server.readthedocs.io/en/latest/types-and-platforms/mod-platforms/auto-curseforge/#api-key
|
||||||
CF_API_KEY: ${CF_API_KEY}
|
CF_API_KEY: ${CF_API_KEY}
|
||||||
CF_SLUG: one-block-modded
|
CF_SLUG: one-block-modded
|
||||||
# Modpack client zip must be manually downloaded from
|
# Modpack client zip must be manually downloaded from
|
||||||
|
|||||||
@@ -6,7 +6,11 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
EULA: "true"
|
EULA: "true"
|
||||||
MODPACK_PLATFORM: AUTO_CURSEFORGE
|
MODPACK_PLATFORM: AUTO_CURSEFORGE
|
||||||
CF_API_KEY: # allocate from https://console.curseforge.com/
|
# Allocate API key from https://console.curseforge.com/
|
||||||
|
# and set in .env file making sure to double up dollar signs, such as
|
||||||
|
# CF_API_KEY=$$2a$$10$$....
|
||||||
|
# Refer to https://docker-minecraft-server.readthedocs.io/en/latest/types-and-platforms/mod-platforms/auto-curseforge/#api-key
|
||||||
|
CF_API_KEY: ${CF_API_KEY}
|
||||||
CF_SLUG: the-pixelmon-modpack
|
CF_SLUG: the-pixelmon-modpack
|
||||||
CF_FILENAME_MATCHER: "9.1.2"
|
CF_FILENAME_MATCHER: "9.1.2"
|
||||||
MEMORY: 4G
|
MEMORY: 4G
|
||||||
|
|||||||
@@ -6,7 +6,10 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
EULA: "true"
|
EULA: "true"
|
||||||
MODPACK_PLATFORM: AUTO_CURSEFORGE
|
MODPACK_PLATFORM: AUTO_CURSEFORGE
|
||||||
# allocate from https://console.curseforge.com/ and set in .env file
|
# Allocate API key from https://console.curseforge.com/
|
||||||
|
# and set in .env file making sure to double up dollar signs, such as
|
||||||
|
# CF_API_KEY=$$2a$$10$$....
|
||||||
|
# Refer to https://docker-minecraft-server.readthedocs.io/en/latest/types-and-platforms/mod-platforms/auto-curseforge/#api-key
|
||||||
CF_API_KEY: ${CF_API_KEY}
|
CF_API_KEY: ${CF_API_KEY}
|
||||||
CF_PAGE_URL: https://www.curseforge.com/minecraft/modpacks/prominence-2-rpg
|
CF_PAGE_URL: https://www.curseforge.com/minecraft/modpacks/prominence-2-rpg
|
||||||
CF_FILENAME_MATCHER: "2.8.7"
|
CF_FILENAME_MATCHER: "2.8.7"
|
||||||
|
|||||||
@@ -7,20 +7,20 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
EULA: "true"
|
EULA: "true"
|
||||||
MODPACK_PLATFORM: AUTO_CURSEFORGE
|
MODPACK_PLATFORM: AUTO_CURSEFORGE
|
||||||
# allocate from https://console.curseforge.com/ and set in .env file
|
# Allocate API key from https://console.curseforge.com/
|
||||||
|
# and set in .env file making sure to double up dollar signs, such as
|
||||||
|
# CF_API_KEY=$$2a$$10$$....
|
||||||
|
# Refer to https://docker-minecraft-server.readthedocs.io/en/latest/types-and-platforms/mod-platforms/auto-curseforge/#api-key
|
||||||
CF_API_KEY: ${CF_API_KEY}
|
CF_API_KEY: ${CF_API_KEY}
|
||||||
CF_PAGE_URL: https://www.curseforge.com/minecraft/modpacks/roguelike-adventures-and-dungeons-2
|
CF_PAGE_URL: https://www.curseforge.com/minecraft/modpacks/roguelike-adventures-and-dungeons-2
|
||||||
# Optional: select a specific version/file
|
# Optional: select a specific version/file
|
||||||
#CF_FILENAME_MATCHER: "0.2.34"
|
#CF_FILENAME_MATCHER: "0.2.34"
|
||||||
CF_EXCLUDE_MODS: |
|
CF_EXCLUDE_MODS: |
|
||||||
controlling
|
|
||||||
creative-core
|
creative-core
|
||||||
default-options
|
default-options
|
||||||
itemphysic-lite
|
itemphysic-lite
|
||||||
konkrete
|
konkrete
|
||||||
oauth
|
oauth
|
||||||
sound-filters
|
|
||||||
toast-control
|
|
||||||
CF_FORCE_SYNCHRONIZE: "true"
|
CF_FORCE_SYNCHRONIZE: "true"
|
||||||
MEMORY: 4G
|
MEMORY: 4G
|
||||||
volumes:
|
volumes:
|
||||||
|
|||||||
@@ -4,7 +4,10 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
EULA: true
|
EULA: true
|
||||||
MODPACK_PLATFORM: AUTO_CURSEFORGE
|
MODPACK_PLATFORM: AUTO_CURSEFORGE
|
||||||
# Set CF_API_KEY=... in a .env file next to this compose file and don't source control that file
|
# Allocate API key from https://console.curseforge.com/
|
||||||
|
# and set in .env file making sure to double up dollar signs, such as
|
||||||
|
# CF_API_KEY=$$2a$$10$$....
|
||||||
|
# Refer to https://docker-minecraft-server.readthedocs.io/en/latest/types-and-platforms/mod-platforms/auto-curseforge/#api-key
|
||||||
CF_API_KEY: ${CF_API_KEY}
|
CF_API_KEY: ${CF_API_KEY}
|
||||||
CF_SLUG: rlcraft
|
CF_SLUG: rlcraft
|
||||||
CF_FILENAME_MATCHER: 2.9.3
|
CF_FILENAME_MATCHER: 2.9.3
|
||||||
|
|||||||
@@ -8,7 +8,10 @@ services:
|
|||||||
# CF_PAGE_URL: https://www.curseforge.com/minecraft/modpacks/skyfactory-5/files/6044634
|
# CF_PAGE_URL: https://www.curseforge.com/minecraft/modpacks/skyfactory-5/files/6044634
|
||||||
CF_SLUG: skyfactory-5
|
CF_SLUG: skyfactory-5
|
||||||
CF_FILENAME_MATCHER: 5.0.2
|
CF_FILENAME_MATCHER: 5.0.2
|
||||||
# Loads from .env file
|
# Allocate API key from https://console.curseforge.com/
|
||||||
|
# and set in .env file making sure to double up dollar signs, such as
|
||||||
|
# CF_API_KEY=$$2a$$10$$....
|
||||||
|
# Refer to https://docker-minecraft-server.readthedocs.io/en/latest/types-and-platforms/mod-platforms/auto-curseforge/#api-key
|
||||||
CF_API_KEY: ${CF_API_KEY}
|
CF_API_KEY: ${CF_API_KEY}
|
||||||
MEMORY: 4G
|
MEMORY: 4G
|
||||||
ports:
|
ports:
|
||||||
|
|||||||
@@ -6,7 +6,11 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
EULA: "true"
|
EULA: "true"
|
||||||
MODPACK_PLATFORM: AUTO_CURSEFORGE
|
MODPACK_PLATFORM: AUTO_CURSEFORGE
|
||||||
CF_API_KEY: # allocate from https://console.curseforge.com/
|
# Allocate API key from https://console.curseforge.com/
|
||||||
|
# and set in .env file making sure to double up dollar signs, such as
|
||||||
|
# CF_API_KEY=$$2a$$10$$....
|
||||||
|
# Refer to https://docker-minecraft-server.readthedocs.io/en/latest/types-and-platforms/mod-platforms/auto-curseforge/#api-key
|
||||||
|
CF_API_KEY: ${CF_API_KEY}
|
||||||
CF_FORCE_SYNCHRONIZE: "true"
|
CF_FORCE_SYNCHRONIZE: "true"
|
||||||
CF_PAGE_URL: https://www.curseforge.com/minecraft/modpacks/valhelsia-5/files/4429560
|
CF_PAGE_URL: https://www.curseforge.com/minecraft/modpacks/valhelsia-5/files/4429560
|
||||||
MEMORY: 4G
|
MEMORY: 4G
|
||||||
|
|||||||
@@ -6,13 +6,14 @@ services:
|
|||||||
environment:
|
environment:
|
||||||
EULA: "true"
|
EULA: "true"
|
||||||
MODPACK_PLATFORM: AUTO_CURSEFORGE
|
MODPACK_PLATFORM: AUTO_CURSEFORGE
|
||||||
# allocate from https://console.curseforge.com/
|
# Allocate API key from https://console.curseforge.com/
|
||||||
|
# and set in .env file making sure to double up dollar signs, such as
|
||||||
|
# CF_API_KEY=$$2a$$10$$....
|
||||||
|
# Refer to https://docker-minecraft-server.readthedocs.io/en/latest/types-and-platforms/mod-platforms/auto-curseforge/#api-key
|
||||||
CF_API_KEY: ${CF_API_KEY}
|
CF_API_KEY: ${CF_API_KEY}
|
||||||
CF_SLUG: vault-hunters-1-18-2
|
CF_SLUG: vault-hunters-1-18-2
|
||||||
MOTD: "§4----- §2 Vault Hunters: 1.18.2 §4 -----§r\\n §4------ §e vaulthunters.gg §4------"
|
MOTD: "§4----- §2 Vault Hunters: 1.18.2 §4 -----§r\\n §4------ §e vaulthunters.gg §4------"
|
||||||
MEMORY: 6G # 4G for base server + 2G per player
|
MEMORY: 6G # 4G for base server + 2G per player
|
||||||
CF_EXCLUDE_MODS: |
|
|
||||||
reauth
|
|
||||||
ALLOW_FLIGHT: true
|
ALLOW_FLIGHT: true
|
||||||
ENABLE_COMMAND_BLOCK: true
|
ENABLE_COMMAND_BLOCK: true
|
||||||
DIFFICULTY: hard
|
DIFFICULTY: hard
|
||||||
|
|||||||
@@ -24,14 +24,25 @@ use_proxy() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
use_server_list_ping() {
|
||||||
|
if versionLessThan 1.7; then
|
||||||
|
echo "--use-server-list-ping"
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
mc_server_listening() {
|
mc_server_listening() {
|
||||||
mc-monitor status $(use_proxy) --host "${SERVER_HOST:-localhost}" --port "$SERVER_PORT" --timeout 10s >&/dev/null
|
mc-monitor status $(use_proxy) --host "${SERVER_HOST:-localhost}" --port "$SERVER_PORT" $(use_server_list_ping) --timeout 10s >&/dev/null
|
||||||
}
|
}
|
||||||
|
|
||||||
java_clients_connections() {
|
java_clients_connections() {
|
||||||
local connections
|
local connections
|
||||||
if java_running; then
|
if java_running; then
|
||||||
if ! connections=$(mc-monitor status $(use_proxy) --host "${SERVER_HOST:-localhost}" --port "$SERVER_PORT" --show-player-count); then
|
if ! connections=$(mc-monitor status \
|
||||||
|
--host "${SERVER_HOST:-localhost}" \
|
||||||
|
--port "$SERVER_PORT" \
|
||||||
|
--retry-limit "${AUTOPAUSE_STATUS_RETRY_LIMIT:-10}" --retry-interval "${AUTOPAUSE_STATUS_RETRY_INTERVAL:-2s}" \
|
||||||
|
$(use_proxy) $(use_server_list_ping) \
|
||||||
|
--show-player-count); then
|
||||||
# consider it a non-zero player count if the ping fails
|
# consider it a non-zero player count if the ping fails
|
||||||
# otherwise a laggy server with players connected could get paused
|
# otherwise a laggy server with players connected could get paused
|
||||||
connections=1
|
connections=1
|
||||||
@@ -44,4 +55,4 @@ java_clients_connections() {
|
|||||||
|
|
||||||
java_clients_connected() {
|
java_clients_connected() {
|
||||||
(( $(java_clients_connections) > 0 ))
|
(( $(java_clients_connections) > 0 ))
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,6 +24,7 @@
|
|||||||
"cherished-worlds",
|
"cherished-worlds",
|
||||||
"chunk-animator",
|
"chunk-animator",
|
||||||
"clickable-advancements",
|
"clickable-advancements",
|
||||||
|
"compass-coords",
|
||||||
"configured",
|
"configured",
|
||||||
"controlling",
|
"controlling",
|
||||||
"craftpresence",
|
"craftpresence",
|
||||||
@@ -113,6 +114,7 @@
|
|||||||
"sodium-extra",
|
"sodium-extra",
|
||||||
"sodium-options-api",
|
"sodium-options-api",
|
||||||
"sodium-rubidium-occlusion-culling-fix",
|
"sodium-rubidium-occlusion-culling-fix",
|
||||||
|
"sound",
|
||||||
"sound-reloader",
|
"sound-reloader",
|
||||||
"sound-filters",
|
"sound-filters",
|
||||||
"sound-physics-remastered",
|
"sound-physics-remastered",
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<Configuration status="WARN" packages="com.mojang.util">
|
<Configuration status="WARN">
|
||||||
<Appenders>
|
<Appenders>
|
||||||
<Console name="SysOut" target="SYSTEM_OUT">
|
<Console name="SysOut" target="SYSTEM_OUT">
|
||||||
<PatternLayout pattern="[%d{HH:mm:ss}] [%t/%level]: %msg%n" />
|
<PatternLayout pattern="[%d{HH:mm:ss}] [%t/%level]: %msg%n" />
|
||||||
@@ -34,4 +34,4 @@
|
|||||||
<AppenderRef ref="TerminalConsole"/>
|
<AppenderRef ref="TerminalConsole"/>
|
||||||
</Root>
|
</Root>
|
||||||
</Loggers>
|
</Loggers>
|
||||||
</Configuration>
|
</Configuration>
|
||||||
|
|||||||
@@ -22,6 +22,7 @@
|
|||||||
"cherishedworlds",
|
"cherishedworlds",
|
||||||
"citresewn",
|
"citresewn",
|
||||||
"clickadv",
|
"clickadv",
|
||||||
|
"compass-coords",
|
||||||
"connectedness",
|
"connectedness",
|
||||||
"connector",
|
"connector",
|
||||||
"craftpresence",
|
"craftpresence",
|
||||||
@@ -85,4 +86,4 @@
|
|||||||
],
|
],
|
||||||
"globalForceIncludes": [],
|
"globalForceIncludes": [],
|
||||||
"modpacks": {}
|
"modpacks": {}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,7 +39,7 @@ if ! isTrue "${SKIP_SUDO:-false}" && [ "$(id -u)" = 0 ]; then
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if isTrue "${SKIP_CHOWN_DATA}" || [[ $(stat -c "%u" /data) != "$UID" ]]; then
|
if isFalse "${SKIP_CHOWN_DATA}" && [[ $(stat -c "%u" /data) != "$UID" ]]; then
|
||||||
log "Changing ownership of /data to $UID ..."
|
log "Changing ownership of /data to $UID ..."
|
||||||
chown -R ${runAsUser}:${runAsGroup} /data
|
chown -R ${runAsUser}:${runAsGroup} /data
|
||||||
fi
|
fi
|
||||||
|
|||||||
@@ -38,8 +38,8 @@ if [ ! -e /data/eula.txt ]; then
|
|||||||
log ""
|
log ""
|
||||||
logError "Please accept the Minecraft EULA at"
|
logError "Please accept the Minecraft EULA at"
|
||||||
logError " https://account.mojang.com/documents/minecraft_eula"
|
logError " https://account.mojang.com/documents/minecraft_eula"
|
||||||
logError "by adding the following immediately after 'docker run':"
|
logError "by setting the container environment variable "
|
||||||
logError " -e EULA=TRUE"
|
logError "EULA to \"true\""
|
||||||
log ""
|
log ""
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
@@ -285,4 +285,4 @@ case "${TYPE^^}" in
|
|||||||
exit 1
|
exit 1
|
||||||
;;
|
;;
|
||||||
|
|
||||||
esac
|
esac
|
||||||
|
|||||||
@@ -464,21 +464,33 @@ function checkSum() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function usesMods() {
|
function usesMods() {
|
||||||
case "$FAMILY" in
|
if isTrue "${USES_MODS:-}"; then
|
||||||
FORGE | FABRIC | HYBRID | SPONGE)
|
|
||||||
return 0
|
return 0
|
||||||
;;
|
|
||||||
esac
|
else
|
||||||
return 1
|
case "$FAMILY" in
|
||||||
|
FORGE | FABRIC | HYBRID | SPONGE)
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
return 1
|
||||||
|
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function usesPlugins() {
|
function usesPlugins() {
|
||||||
case "$FAMILY" in
|
if isTrue "${USES_PLUGINS:-}"; then
|
||||||
SPIGOT | HYBRID)
|
|
||||||
return 0
|
return 0
|
||||||
;;
|
|
||||||
esac
|
else
|
||||||
return 1
|
case "$FAMILY" in
|
||||||
|
SPIGOT | HYBRID)
|
||||||
|
return 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
return 1
|
||||||
|
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
function resolveVersion() {
|
function resolveVersion() {
|
||||||
|
|||||||
Reference in New Issue
Block a user