Compare commits

..

1321 Commits

Author SHA1 Message Date
Geoff Bourne
6bb401f9ff cf: resolve remaining exclude/include slugs after first unknown mod (#3909) 2026-02-04 06:57:22 -06:00
Geoff Bourne
82266fff97 Put back particle-effects-reforged and flerovium in global excludes (#3906) 2026-02-03 19:02:36 -06:00
Geoff Bourne
92b4babc86 autocf: log warning and proceed if an excluded mod cannot be resolved (#3904) 2026-02-03 10:13:25 -06:00
Geoff Bourne
83435738f4 Temporarily remove flerovium from global excludes (#3903) 2026-02-03 08:51:04 -06:00
Geoff Bourne
a9dd219f78 Temporarily remove particle-effects-reforged from global excludes (#3902) 2026-02-03 07:33:06 -06:00
dependabot[bot]
90ac9589e3 build(deps): bump docker/login-action from 3.6.0 to 3.7.0 in the updates group (#3900) 2026-02-02 07:11:03 -06:00
dependabot[bot]
9520b06095 build(deps): bump pathspec from 1.0.3 to 1.0.4 in /docs in the patches group (#3901) 2026-02-02 07:08:18 -06:00
Geoff Bourne
1ae5e4d748 Temporarily remove GraalVM variants from build (#3899) 2026-02-01 15:38:30 -06:00
Geoff Bourne
d43802ebd4 Removed duplicate in images.json (#3891) 2026-02-01 15:36:19 -06:00
Geoff Bourne
4677d9065d Update build badge in README.md (#3898) 2026-02-01 15:30:55 -06:00
Sagittarius-a
4f6de31e38 docs: fix link formatting in environment variables documentation page (#3895) 2026-01-31 17:46:55 -06:00
Geoff Bourne
941e25c4b9 Temporarily disable auto-pause with graalvm images (#3893) 2026-01-29 18:43:23 -06:00
Geoff Bourne
621c673acd Leave docs sidebar nav collapsed by default (#3892) 2026-01-28 19:32:47 -06:00
Thomas Nicollet
fb1614b149 Fixing typo in GTNH MOTD (#3889) 2026-01-27 07:12:53 -06:00
dependabot[bot]
feec7fb6bd build(deps): bump the patches group in /docs with 3 updates (#3886) 2026-01-26 09:04:56 -06:00
dependabot[bot]
f27eb08440 build(deps): bump packaging from 25.0 to 26.0 in /docs (#3887) 2026-01-26 07:40:20 -06:00
dependabot[bot]
183e0cd18f build(deps): bump actions/checkout from 6.0.1 to 6.0.2 in the updates group (#3885) 2026-01-26 07:00:52 -06:00
Geoff Bourne
4b24251d70 Clarify scope of LOG_LEVEL (#3878) 2026-01-22 07:26:35 -06:00
Geoff Bourne
7678f52939 Fix logError call when using CF_API_KEY_FILE (#3818) 2026-01-22 07:25:55 -06:00
Lenart Kos
c1d5241fb2 Add autoscaling documentation and examples for mc-router integration (#3826) 2026-01-20 12:59:04 -06:00
Geoff Bourne
1565d08949 Avoid confusion about server properties supportability (#3875) 2026-01-20 07:47:47 -06:00
Tanner Snow
816ab736d9 Fix minor typos in GTNH docs (#3872) 2026-01-17 08:59:46 -06:00
dependabot[bot]
32b343840f build(deps): bump pymdown-extensions from 10.19.1 to 10.20 in /docs in the patches group (#3864)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-13 07:16:32 -06:00
Geoff Bourne
0a98bee40e Ensure FTBA uses image's java (#3867) 2026-01-12 20:56:50 -06:00
dependabot[bot]
93d94f5ba8 build(deps): bump pathspec from 0.12.1 to 1.0.3 in /docs (#3865) 2026-01-12 13:07:02 -06:00
Damián
f3ed09882b Add mekalus to cf-exclude-include.json (#3862) 2026-01-11 07:58:10 -06:00
Geoff Bourne
7325baf750 Default Folia channel to stable rather than experimental (#3861) 2026-01-08 18:28:04 -06:00
Geoff Bourne
c23654008b Leverage ENABLE_ROLLING_LOGS as default for GENERATE_LOG4J2_CONFIG (#3860) 2026-01-08 18:16:13 -06:00
Geoff Bourne
f8ff8a7b8a Opt into generated log4j2.xml configuration (#3856) 2026-01-08 07:25:01 -06:00
EmilyxFox
9c01462c0c Docs: cleanup copyright year and contributing (#3855) 2026-01-07 07:48:14 -06:00
EmilyxFox
21c5c980d5 Move docs to zensical (#3852) 2026-01-06 06:36:04 -06:00
dependabot[bot]
4458908a44 build(deps): bump the patches group across 1 directory with 2 updates (#3825)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-01-05 07:12:33 -06:00
Geoff Bourne
c9094063d3 Bump latest/stable image variant to java25 (#3845) 2025-12-31 16:38:59 -06:00
Geoff Bourne
320ad0906f Adding back TerminalConsole to generated log4j2 config (#3846) 2025-12-31 14:46:49 -06:00
EmilyxFox
128bbff3d7 Document SSH console and RCON password secrets file (#3843) 2025-12-30 11:53:29 -06:00
Igor Fontana
82aafd5f5e Add NEOFORGE to invalid type message (#3842) 2025-12-30 06:57:57 -06:00
Luke Van De Weghe
f746162360 Globally exclude crash-assistant mod (#3839) 2025-12-28 17:44:10 -06:00
Kim
0131f66e46 Add 'ctm' to forceIncludes for ftb-stoneblock-4 (#3840) 2025-12-28 08:49:03 -06:00
EmilyxFox
998a5b4180 add environment variable for WebsocketConsole arg (#3835) 2025-12-27 15:55:12 -06:00
Marc
c45d3e2fdd Decommission EXEC_DIRECTLY (#3837) 2025-12-27 15:29:28 -06:00
EmilyxFox
308a7766fa fix websocket console path (#3834) 2025-12-27 11:46:19 -06:00
Marc Troll
53591311ac Fixed volume definition in docker-compose (#3830) 2025-12-25 21:07:18 -06:00
dependabot[bot]
377cd569bc build(deps): bump the updates group across 1 directory with 2 updates (#3820) 2025-12-22 09:03:40 -06:00
Marc
cf6761156c New logger configuration (#3813) 2025-12-20 12:00:34 -06:00
Geoff Bourne
5cbf1e0785 Set JVM enable-native-access for Java 17+ (#3819) 2025-12-20 09:37:30 -06:00
Noa Himesaka
f1cacb7c36 add notes to GraalVM images (#3816) 2025-12-19 15:29:23 -06:00
Geoff Bourne
ca67f24298 Enable native access for quieter Java 25+ use of mc-image-helper (#3814) 2025-12-19 10:27:09 -06:00
EmilyxFox
5698e784a1 docs: add specific version examples for new version schema (#3809) 2025-12-16 16:38:53 -06:00
Marc
a357c8a793 Update log4j2.xml to use full timestamp format in PatternLayout (#3806) 2025-12-15 07:29:23 -06:00
tibtiq
0843d19722 Fix alignment of annotations on shell command on commands docs page (#3805) 2025-12-14 08:36:48 -06:00
Geoff Bourne
55bc4fd329 Use PAT for auto releaser runs (#3801) 2025-12-13 10:25:29 -06:00
Aki
d7d3cc50a0 Do not overwrite existing NanoLimbo settings.yml (#3799) 2025-12-12 20:16:08 -06:00
Geoff Bourne
d1535c1eeb Add auto-release workflow configuration (#3800) 2025-12-11 20:57:33 -06:00
EmilyxFox
aadf1a8b9f Bump mc-server-runner & document websocket API (#3789) 2025-12-09 21:46:12 -06:00
EmilyxFox
cdbcf41bfc update docs copyright notice year (#3794) 2025-12-09 21:23:14 -06:00
JackHicks02
548bea7786 Add CF_EXCLUDE_ALL_MODS (#3793) 2025-12-09 20:05:15 -06:00
Geoff Bourne
06836b941a gtnh: support grabbing extra mods (#3788) 2025-12-06 17:18:19 -06:00
dependabot[bot]
53fcaabdf7 build(deps): bump docker/metadata-action from 5.9.0 to 5.10.0 in the updates group (#3784) 2025-12-01 07:25:15 -06:00
dependabot[bot]
7922797744 build(deps): bump actions/checkout from 5.0.0 to 6.0.0 (#3771) 2025-11-25 17:52:15 -08:00
Geoff Bourne
afaa4c89a1 Adding inline example of USES_PLUGINS with Cardboard (#3779) 2025-11-25 18:35:04 -06:00
Geoff Bourne
43a7e9a36c Add java25-jdk image variant (#3778) 2025-11-25 18:20:08 -06:00
dependabot[bot]
ac46484072 build(deps): bump mkdocs-material from 9.6.23 to 9.7.0 in /docs in the patches group (#3772) 2025-11-25 15:16:38 -08:00
Sam Horton
c26119b512 Allow custom modloader versions for auto curseforge (#3759) 2025-11-23 11:15:39 -08:00
Geoff Bourne
85673fb661 Exclude cull-less-leaves and mining-speed-tooltips (#3766) 2025-11-16 20:09:54 -06:00
Geoff Bourne
fae779998a Exclude Netty http3 to ensure Alpine musl support (#3765) 2025-11-15 11:54:40 -06:00
Alejandro González
a29bb020d9 fix(graalvm): update to Oracle Linux 10 to fix file command mimetype issues (#3764) 2025-11-15 10:41:17 -06:00
Alejandro González
0e3c655d27 fix(tests): ensure Nginx is fully spun up before starting MC container (#3763) 2025-11-15 07:47:03 -06:00
Alejandro González
2d1e96f5ba fix(graalvm): update to Oracle Linux 9 to fix glibc compat issues (#3761) 2025-11-14 19:36:09 -06:00
k4rnaj1k
11daad5dd3 Add support for health check for pre-1.3 versions (#3758) 2025-11-12 15:24:01 -06:00
Geoff Bourne
6cdc1a4b78 deps: upgrade tools to Go 1.25.3 (#3741) 2025-11-12 14:35:07 -06:00
Geoff Bourne
5983aea0b9 forge and neoforge: skip lookup if exact request matches installed version (#3756) 2025-11-11 12:27:14 -06:00
dependabot[bot]
36d278677e build(deps): bump the updates group with 2 updates (#3755) 2025-11-10 05:59:07 -06:00
Leon Kampwerth
d974c1ec52 Removed catserver and updated magma download (#3751)
Co-authored-by: Geoff Bourne <itzgeoff@gmail.com>
2025-11-08 10:26:02 -06:00
Kim
c7eb26515c Add 'status-effect-bars-reforged' to global excludes (#3752) 2025-11-07 19:27:41 -06:00
Kim
baf55337c5 forceIncludes particular-reforged for ftb-stoneblock-4 (#3753) 2025-11-06 20:51:39 -06:00
Leon Kampwerth
3941bd4e41 Support jvm mem percentage (#3747) 2025-11-06 06:37:23 -06:00
Geoff Bourne
eeb62d45f9 Corrected the examples for JVM_OPTS (#3746) 2025-11-05 14:33:45 -06:00
Geoff Bourne
a8d8bfeef8 Corrected version comparison to determine mc-health mode to use pre-1.7 (#3745) 2025-11-05 12:23:19 -06:00
JackHicks02
690745cb13 File globbing for Ignore Missing Files (#3744) 2025-11-03 17:09:17 -06:00
dependabot[bot]
6d38d24f3c build(deps): bump mkdocs-material from 9.6.22 to 9.6.23 in /docs in the patches group (#3742) 2025-11-03 06:21:03 -06:00
Geoff Bourne
6a8bcffa17 Updated example snippets for CF_PAGE_URL and CF_SLUG (#3740) 2025-11-01 22:30:27 -05:00
EmilyxFox
3f910f6910 Add pull policy to examples in docs (#3739) 2025-11-01 10:33:20 -05:00
Geoff Bourne
da72d66774 auto-cf: fix issue with unknown FileStatus values (#3736) 2025-10-31 06:20:48 -05:00
Leon Kampwerth
f62ad37d31 Integrate gtnh mod (#3727)
Co-authored-by: Geoff Bourne <itzgeoff@gmail.com>
2025-10-30 21:21:22 -05:00
Geoff Bourne
d56efcd680 paper: pick max build and not assume first is newest (#3728) 2025-10-25 23:01:56 -05:00
dependabot[bot]
35a94a9b18 build(deps): bump mkdocs-material from 9.6.21 to 9.6.22 in /docs in the patches group (#3724) 2025-10-21 08:34:33 -05:00
Geoff Bourne
58623e308d Document that MODRINTH_PROJECTS version ID can override game/loader check (#3721) 2025-10-19 20:10:53 -05:00
Geoff Bourne
2cd7472631 Documented the loader prefix option for MODRINTH_PROJECTS (#3720) 2025-10-18 18:44:59 -05:00
Geoff Bourne
66f26c0ea8 build: install latest gosu from published image (#3717) 2025-10-17 19:10:00 -05:00
Geoff Bourne
998b61de0d Improve variable naming with MODRINTH_MODPACK_VERSION_TYPE and MODRINTH_PROJECTS_DEFAULT_VERSION_TYPE (#3716) 2025-10-17 17:05:09 -05:00
Berke Batmaz
532f906d32 Update GTNH example to use Java 25 (#3715) 2025-10-17 06:59:09 -05:00
EmilyxFox
d45c931c92 add management-server-allowed-origins from 25w42a (#3711) 2025-10-14 20:43:53 -05:00
Geoff Bourne
62897044a3 Generalize DOWNLOAD_EXTRA_CONFIGS into APPLY_EXTRA_FILES (#3710) 2025-10-14 17:56:41 -05:00
Geoff Bourne
cfa44414da examples: add bentobox example using DOWNLOAD_EXTRA_CONFIGS (#3708) 2025-10-12 17:26:59 -05:00
Geoff Bourne
aaba3902ca Revert "docs: removing setupmc linkage pending sponsorship arrangement" (#3707) 2025-10-12 13:06:19 -05:00
Geoff Bourne
9ff2f8f671 Allow embedded comments in newline-comma lists (#3705) 2025-10-12 13:02:02 -05:00
Geoff Bourne
009412e52c docs: removing setupmc linkage pending sponsorship arrangement (#3706) 2025-10-12 12:11:02 -05:00
Geoff Bourne
f88cb8eee9 neoforge: handle new version ordering (#3703) 2025-10-09 18:54:56 -05:00
dependabot[bot]
18f69b7680 build(deps): bump docker/login-action from 3.5.0 to 3.6.0 in the updates group (#3697) 2025-10-06 07:13:20 -05:00
dependabot[bot]
1dbe0f9621 build(deps): bump mkdocs-material from 9.6.20 to 9.6.21 in /docs in the patches group (#3698) 2025-10-06 06:27:14 -05:00
Geoff Bourne
79518f124a Add colorwheel and colorwheel-patcher to default excludes (#3696) 2025-10-05 15:17:40 -05:00
Geoff Bourne
c6cf0857fc Fix script import path for RCON_CMDS_* (#3695) 2025-10-05 09:00:04 -05:00
Geoff Bourne
3eb8f85cd4 paper: now applies channel and resolves stable by default (#3692) 2025-10-04 16:37:18 -05:00
Geoff Bourne
cbffecfd3a Added related info about stop/down timeout (#3691) 2025-10-04 13:39:53 -05:00
Geoff Bourne
a19eadec80 Correct formatting of /start shim for alpine variants (#3690) 2025-10-04 12:38:42 -05:00
Crafter_Y
b7859d7496 Added DOWNLOAD_EXTRA_CONFIGS (#3679) 2025-10-01 07:30:30 -05:00
Geoff Bourne
c6cec6390a deps: upgrade mc-server-runner 1.13.4 for CVE fixes (#3678) 2025-09-28 17:07:22 -05:00
Leon Kampwerth
6c81a0fd49 Update Greg Tech New Horizons compose file example (#3677) 2025-09-28 15:25:56 -05:00
Geoff Bourne
b008a33a8f Added java25 images, deprecated java24 (#3675) 2025-09-27 10:52:23 -05:00
Geoff Bourne
31a39bc46b Add "ok menu" and "particle rain" to default excludes (#3674) 2025-09-27 10:20:34 -05:00
dependabot[bot]
593c94ad94 build(deps): bump the patches group in /docs with 2 updates (#3671) 2025-09-22 07:08:53 -05:00
kingcavespider1
d1da61d0de Fix USE_MEOWICE_FLAGS and appearance of Aikars enablement (#3660) 2025-09-21 09:10:51 -05:00
Geoff Bourne
ac805a4da6 Fix autostop-daemon.sh path in start-autostop (#3670) 2025-09-20 15:01:00 -05:00
iofq
0517a0a2b1 fix: update autopause-fcns.sh path (#3666) 2025-09-19 22:53:43 -05:00
Geoff Bourne
bdac28a323 Support selecting Paper "pre" versions (#3664) 2025-09-19 19:51:36 -05:00
Geoff Bourne
9a6b858b83 Add /start shim for containers using old entrypoint (#3663) 2025-09-19 17:17:59 -05:00
Geoff Bourne
cabeb9c695 Corrected retrieval of NanoLimbo release file (#3662) 2025-09-19 16:49:24 -05:00
Geoff Bourne
81cbc72ae9 Improve local development (#3661) 2025-09-19 15:07:35 -05:00
EmilyxFox
9cbe5c2228 More management server properties docs (#3657) 2025-09-12 14:41:06 -05:00
Geoff Bourne
d58dfeaaf4 fetch: download specific file to adjacent temp (#3653) 2025-09-11 19:08:08 -05:00
EmilyxFox
82ecda599e add new server properties added in 25w37a (#3651) 2025-09-10 07:12:11 -05:00
dependabot[bot]
d1e6f738f3 build(deps): bump mkdocs-material from 9.6.18 to 9.6.19 in /docs in the patches group (#3650) 2025-09-08 16:10:30 -05:00
dependabot[bot]
ffd6e7fc60 build(deps): bump actions/stale from 9 to 10 (#3649) 2025-09-08 07:26:12 -05:00
Geoff Bourne
99f31d5a9b Restore conditional logic for MeowIce flags (#3647)
Co-authored-by: EmilyxFox <48589793+EmilyxFox@users.noreply.github.com>
2025-09-05 15:57:46 -05:00
Maximilian Berg
155b478ee1 Add UnlockExperimentalVMOptions to MeowIce flags (#3644)
Co-authored-by: maxxberg <max.git@mx-berg.de>
2025-09-05 15:41:27 -05:00
Geoff Bourne
6faa3a379d Revert "move USE_AIKAR_FLAGS=TRUE into else block" (#3645) 2025-09-04 18:28:39 -05:00
EmilyxFox
fc6fcb68e5 move USE_AIKAR_FLAGS=TRUE into else block (#3642) 2025-09-04 16:45:05 -05:00
Geoff Bourne
0da12d1518 cf: remove failed mod downloads (#3641) 2025-09-03 07:23:05 -05:00
dependabot[bot]
a9b4e67d22 build(deps): bump mkdocs-autorefs from 1.4.2 to 1.4.3 in /docs in the patches group (#3640) 2025-09-02 06:44:43 -05:00
Bradley Zylstra
75016e948b Fix for Eternal 2 Modpack (#3637) 2025-08-29 19:29:03 -05:00
Patrick Cudahy
d72db19b4e Fix typo in uname command in start-configuration (#3635) 2025-08-27 08:49:22 -05:00
EmilyxFox
cad2bc1ef6 Add server properties from 25w35a (#3634) 2025-08-26 12:22:12 -05:00
dependabot[bot]
c29430ffc5 build(deps): bump mkdocs-material from 9.6.16 to 9.6.18 in /docs in the patches group (#3633) 2025-08-25 12:33:38 -05:00
dependabot[bot]
7c05109ffa build(deps): bump actions/checkout from 4.2.2 to 5.0.0 (#3632) 2025-08-25 12:28:30 -05:00
Geoff Bourne
ce0f1599de Skip Mohist lookup/download when MOHIST_BUILD provided and server jar exists (#3631) 2025-08-23 17:48:44 -05:00
Geoff Bourne
57a3fe7641 Fix Buffer Limits with SSH Service (#3626) 2025-08-18 21:46:54 -05:00
Geoff Bourne
75082daa1d modrinth: fix force include handling of default-excluded project (#3622) 2025-08-16 16:50:43 -05:00
Geoff Bourne
b1d68a65aa deps: upgrade helper for Reactor Netty 1.2.9 (#3620) 2025-08-14 20:34:34 -05:00
Geoff Bourne
11414c83c1 Provide option to disable HTTP/2 use (#3619) 2025-08-13 18:45:02 -05:00
Geoff Bourne
720006b445 Revert "Properly retry download when fabric installer is invalid" (#3618) 2025-08-13 11:52:25 -05:00
Geoff Bourne
9d2cd1475e Properly retry download when fabric installer is invalid (#3617) 2025-08-13 06:43:20 -05:00
dependabot[bot]
acfd6fadf8 build(deps): bump docker/login-action from 3.4.0 to 3.5.0 in the updates group (#3615) 2025-08-12 11:16:37 -05:00
Geoff Bourne
ba172b2aa9 Added all image tags to images.json (#3613) 2025-08-10 22:11:54 -05:00
Geoff Bourne
e4859fb23a Add images.json (#3612) 2025-08-10 22:06:31 -05:00
Geoff Bourne
eb682118ff Add Modrinth default exclusions needed for cobbleverse (#3609) 2025-08-10 12:17:46 -05:00
Geoff Bourne
2fbc804f3e misc: organize more of examples into subdirs as compose projects (#3608) 2025-08-10 09:06:58 -05:00
Geoff Bourne
5bd6287f52 misc: refactored bin content into files/shims (#3607) 2025-08-10 09:05:10 -05:00
Geoff Bourne
b6a8b95159 Validate Fabric launcher jar and use HTTP/2 (#3606) 2025-08-09 17:35:15 -05:00
Geoff Bourne
0d834dd992 Fixed VERSION_FROM_MODRINTH_PROJECTS when a project has a shorter list (#3605) 2025-08-09 13:41:20 -05:00
Geoff Bourne
0a5ac8aba6 Analyze CF_API_KEY key when auth failures (#3604) 2025-08-08 20:14:36 -05:00
Geoff Bourne
37d2aebb1e Populate MODPACK_NAME and MODPACK_VERSION from FTB modpacks (#3602) 2025-08-08 13:18:31 -05:00
Geoff Bourne
d5d1592c38 Pass proxy properties via MC_IMAGE_HELPER_OPTS (#3601) 2025-08-07 08:11:56 -05:00
Geoff Bourne
dedacfb94e Fixed noise with picking up JAVA_TOOL_OPTIONS (#3599) 2025-08-06 20:25:12 -05:00
Geoff Bourne
c6e970c8d2 Fixed HTTP proxy handling for operations using mc-image-helper (#3598) 2025-08-06 19:57:56 -05:00
Geoff Bourne
fa56741869 Limit/config concurrent downloads for CF and Modrinth (#3596) 2025-08-05 18:55:26 -05:00
EmilyxFox
2abae7462c Add clarifying information for CurseForge API keys (#3594) 2025-08-04 19:42:11 -05:00
dependabot[bot]
a569d63cf3 build(deps): bump docker/metadata-action from 5.7.0 to 5.8.0 in the updates group (#3589) 2025-08-04 06:51:00 -05:00
Geoff Bourne
e305782a8f Forge promotions and maven repo URLs are configurable (#3587) 2025-08-03 19:29:30 -05:00
Geoff Bourne
24c352949c Added skyfactory 4 example and excluding waila-stages (#3586) 2025-08-03 17:10:49 -05:00
Geoff Bourne
6ee414337a Update Forge promotions URL (#3584) 2025-08-03 07:56:12 -05:00
Geoff Bourne
c2071e5038 Add VERSION_FROM_MODRINTH_PROJECTS (#3580) 2025-08-02 19:01:49 -05:00
dependabot[bot]
02640e5414 build(deps): bump the patches group in /docs with 2 updates (#3572) 2025-07-28 10:31:53 -06:00
Geoff Bourne
ac806b756c modrinth: prioritize target loader when resolving project versions (#3570) 2025-07-26 19:48:37 -06:00
Geoff Bourne
605e2ea993 Upgrade dev mkdocs to Python 3.11 (#3569) 2025-07-24 12:49:36 -06:00
Navio1430
c9dd6dc72c update NanoLimbo repository name (#3564) 2025-07-20 07:16:42 -05:00
bobo
d8bca85d55 cf + modrinth: exclude config-menus-forge & welcome-screen (#3561)
Co-authored-by: Geoff Bourne <itzgeoff@gmail.com>
2025-07-20 07:16:17 -05:00
Geoff Bourne
3acc867f58 cf: exclude fastquit (#3555) 2025-07-19 06:56:47 -05:00
Geoff Bourne
8463893168 fabric: add option to force reinstall (#3559) 2025-07-19 06:55:03 -05:00
Michel Suárez
5b79daa4a3 Fix pufferfish url script (#3553) 2025-07-15 06:55:22 -05:00
Graham Keeth
1fd1e15f3c Docs: fix env var for enabling query (#3552) 2025-07-13 10:40:24 -05:00
Fewwan
37e08466ad Add support for accepts-transfers and rate-limit server properties (#3550) 2025-07-10 19:04:02 -05:00
mykokhehiehieh
1868cd05da docs: fix incorrect Minecraft version link (#3549) 2025-07-10 11:04:25 -05:00
Geoff Bourne
8a7cfbfb3e Switch PAPER_CONFIG_DEFAULTS_REPO to https://github.com/Shonz1/minecraft-default-configs (#3541) 2025-07-08 20:02:43 -05:00
Geoff Bourne
e31a730d21 Revert "Add GuideME to exclude list" (#3546) 2025-07-08 07:20:25 -05:00
Geoff Bourne
a36a75a790 Excluding BetterGrassify and Distration Free Recipes (#3544) 2025-07-07 20:54:56 -05:00
dependabot[bot]
07b10027af build(deps): bump mkdocs-material from 9.6.14 to 9.6.15 in /docs in the patches group (#3542) 2025-07-07 07:28:24 -05:00
Geoff Bourne
c72e23b4d7 Add a MOTD example with placeholders (#3540) 2025-07-06 20:43:38 -05:00
Geoff Bourne
5036ef5f2f Move page about building image out of contributing section (#3538) 2025-07-06 10:36:28 -05:00
Geoff Bourne
37e956e517 Quieter Paper/Bukkit default configs downloading (#3535) 2025-07-05 11:35:01 -05:00
Caitlyn Williams
36015d2b39 Add GuideME to exclude list (#3534) 2025-07-05 11:34:17 -05:00
Geoff Bourne
a3ac903dfe Add particle effects to CF global excludes (#3532) 2025-07-04 13:36:58 -05:00
Geoff Bourne
6e94f4234b Add back java16 variant for Paper 1.16.5 Also - remove non-JRE java8 variants to offset extra builds (#3531) 2025-07-04 12:05:54 -05:00
Geoff Bourne
9d8ab63ee5 build: add back java11 for 1.16.5 (#3530) 2025-07-04 11:29:43 -05:00
Geoff Bourne
cde239f033 cf: retry file download when Netty channel/timeout exceptions (#3529) 2025-07-04 11:00:47 -05:00
Geoff Bourne
8bc184cd18 cf: retry file downloads on premature close error (#3528) 2025-07-04 09:47:01 -05:00
Geoff Bourne
3cdc86ef0b When using a custom server, allow specifying MODRINTH_LOADER with MODRINTH_PROJECTS (#3527) 2025-07-02 22:25:04 -05:00
Geoff Bourne
45f14512bb Added packwiz example (#3523) 2025-06-30 16:43:21 -05:00
Geoff Bourne
d402403876 Adjusted wording and example for generator settings (#3522) 2025-06-30 13:29:30 -05:00
Geoff Bourne
9ebae54e6e Clarified docker attach usage for compose vs non-compose (#3521) 2025-06-30 12:25:47 -05:00
Geoff Bourne
19a8bcfb53 Note native auto-pause support (#3520) 2025-06-29 17:47:12 -05:00
Geoff Bourne
c700880bbe Use Paper's Fill v3 download API (#3519) 2025-06-28 19:34:26 -05:00
dependabot[bot]
8c04dfd882 build(deps): bump the updates group with 2 updates (#3510) 2025-06-23 06:48:49 -05:00
fireph
d8075916e3 Add support for Modrinth projects file (#3506) 2025-06-22 08:02:13 -05:00
Geoff Bourne
1cf2783daf Updated notes diagram for docker run to compose (#3507) 2025-06-19 12:37:27 -05:00
Geoff Bourne
a5643cdeac Upgrade tools to Go 1.24.4 (#3502) 2025-06-17 07:48:07 -05:00
Geoff Bourne
12816373ea Fixed handling of results output when using custom paper URL (#3501) 2025-06-14 17:06:12 -05:00
Geoff Bourne
2eb66042ec Fix Spigot/Bukkit downloads (#3500) 2025-06-13 22:38:14 -05:00
kingcavespider1
446db809c7 Fix ARM64 Crash with Meowice flags (#3498) 2025-06-11 13:12:25 -05:00
Geoff Bourne
d09d9d753a Use allow json comments option for patching (#3494) 2025-06-10 10:49:25 -05:00
Geoff Bourne
d622dbc2a9 build: pin mc-image-helper version for Java 8 (#3491) 2025-06-05 21:09:44 -05:00
kingcavespider1
0ad97c257a Added arclight and nanolimbo types and Meowice flags (#3485) 2025-06-05 13:11:16 -05:00
Byron Collins
f84171dca2 File suffix support for CF_API_KEY (#3489) 2025-06-05 07:35:26 -05:00
Ryan Kitty
0ba63777a3 Bump mc-helper ver in dockerfile (#3488) 2025-06-03 22:17:03 -05:00
Geoff Bourne
1289fea1c6 With patching, support comments in JSON and adding to arrays (#3486) 2025-06-03 11:35:51 -05:00
Geoff Bourne
e70b9600d1 Upgrade mc-image-helper to tweak file download logic (#3469) 2025-06-02 20:59:35 -05:00
kingcavespider1
6ede7e930c Add support for youer and banner (#3484) 2025-06-02 20:45:52 -05:00
dependabot[bot]
5416cedc1f build(deps): bump docker/build-push-action from 6.17.0 to 6.18.0 in the updates group (#3483) 2025-06-02 07:11:50 -05:00
dependabot[bot]
c9a8fef25f build(deps): bump mkdocs-autorefs from 1.4.1 to 1.4.2 in /docs in the patches group (#3482) 2025-06-02 06:27:34 -05:00
Geoff Bourne
8f1d3f1e45 Upgrade SF5 example to 5.0.8 (#3481) 2025-06-01 22:25:30 -05:00
Ryan Kitty
b37383b37d Updated type list in start-configuration (#3479) 2025-06-01 18:21:29 -05:00
Ryan Kitty
c11d2a0ab2 Add Leaf support (#3470)
Co-authored-by: Geoff Bourne <itzgeoff@gmail.com>
2025-06-01 17:49:54 -05:00
Geoff Bourne
85648d5916 Remove all use of sudoers file (#3477) 2025-06-01 10:04:37 -05:00
Geoff Bourne
3616847e8e Generalize info about UID/GID (#3474) 2025-05-31 10:02:53 -05:00
Jasper
e6cd7116b6 No longer need to run knockd with sudo (#3472) 2025-05-31 09:44:30 -05:00
Geoff Bourne
67b0074a9e build: introduce stable-{variant} image tags (#3468) 2025-05-26 16:26:11 -05:00
Geoff Bourne
a8900661f2 examples: increase memory for ftba example (#3467) 2025-05-24 13:52:41 -05:00
Geoff Bourne
ae32ce0738 mohist: use https://api.mohistmc.com download API (#3464) 2025-05-24 08:24:23 -05:00
dependabot[bot]
1370f58c26 build(deps): bump mkdocs-material from 9.6.13 to 9.6.14 in /docs in the patches group (#3459) 2025-05-19 11:19:21 -05:00
dependabot[bot]
89a6e1ad88 build(deps): bump docker/build-push-action from 6.16.0 to 6.17.0 in the updates group (#3458) 2025-05-19 07:22:31 -05:00
Dragonvi1
dc97022b98 Added forceInclude for particular-reforged since it's MC 1.20.1 (#3450) 2025-05-16 17:03:26 -05:00
Geoff Bourne
190ecd3278 cf: fix missing comma in cf-exclude-include.json (#3449) 2025-05-16 12:09:29 -05:00
Dragonvi1
15016996e2 Added Beyond Depth's client mods to the cf-exclude-include.json (#3448) 2025-05-16 07:58:59 -05:00
dependabot[bot]
fd83920383 build(deps): bump mkdocs-material from 9.6.12 to 9.6.13 in /docs in the patches group (#3446) 2025-05-15 07:02:03 -05:00
Geoff Bourne
5fe65a68c3 Add to global excludes the ones needed for Craftoria (#3440) 2025-05-10 11:25:08 -05:00
XHawk87
89ffb2377a Added Ansible and MASH to deployment docs (#3439) 2025-05-08 12:57:48 -05:00
Kim
8c52b98d91 Add smithing-template-viewer to cf-exclude-include.json (#3438) 2025-05-08 07:32:50 -05:00
Fournet Enzo
9d749ab514 CF: Ignoring particular (#3437) 2025-05-05 13:54:25 -05:00
Geoff Bourne
1c0fe6ff10 Use /data/tmp for WORLD zip preparation (#3322) 2025-05-04 16:49:32 -05:00
Geoff Bourne
ae4756f5a7 Change auto_curseforge test to use CF_PAGE_URL (#3431) 2025-04-30 09:45:28 -05:00
Geoff Bourne
6cbedd8c26 Revert (for now) the feature to limit concurrent modpack file downloads (#3430) 2025-04-30 09:21:23 -05:00
Geoff Bourne
62be34bae9 Upgrade mc-image-helper to 1.41.8 (#3429) 2025-04-28 21:21:55 -05:00
dependabot[bot]
c0f1a7e1cb build(deps): bump docker/build-push-action from 6.15.0 to 6.16.0 in the updates group (#3428) 2025-04-28 08:26:17 -05:00
dependabot[bot]
06ba3c8c77 build(deps): bump mkdocs-material from 9.6.11 to 9.6.12 in /docs in the patches group (#3425) 2025-04-21 07:26:57 -05:00
Geoff Bourne
0ec908b243 Corrected build entries for Java 24 (#3421) 2025-04-18 21:44:32 -05:00
Geoff Bourne
d9615e3558 Add Java 24 image variants (#3420) 2025-04-18 21:35:24 -05:00
dependabot[bot]
dcf2f46620 build(deps): bump mkdocs-click from 0.8.1 to 0.9.0 in /docs in the patches group (#3413) 2025-04-16 20:14:59 -05:00
Geoff Bourne
8ba47ea280 deps: upgrade tools to Go 1.24.2 (#3412) 2025-04-13 08:32:45 -05:00
Geoff Bourne
21593d2e43 fabric: accept shared-fetch/netty arguments (#3411) 2025-04-12 13:46:23 -05:00
dependabot[bot]
c8a7513322 build(deps): bump mkdocs-material from 9.6.10 to 9.6.11 in /docs in the patches group (#3406) 2025-04-07 07:26:47 -05:00
Tobias
66d0605502 add resources key to docker compose jvm options (#3404) 2025-04-06 22:26:37 -05:00
Geoff Bourne
5fad540c57 Revert "Add support of CF_API_KEY_FILE environment variable" (#3402) 2025-04-05 09:13:18 -05:00
Geoff Bourne
04713222c9 docs: add a note about downloading fabric-api (#3401) 2025-04-05 08:53:06 -05:00
Maxim Liven
483cd3a1d8 Add support of CF_API_KEY_FILE environment variable (#3396) 2025-04-05 08:37:51 -05:00
Geoff Bourne
5b549c0483 build: add image info properties (#3400) 2025-04-04 20:25:19 -05:00
Geoff Bourne
c57760e4b4 docs: fix formatting for image labels list (#3399) 2025-04-04 14:57:27 -05:00
Geoff Bourne
fd3655be88 docs: added info about image labels (#3398) 2025-04-04 14:51:45 -05:00
Geoff Bourne
d6897a649e fabric: retry loader version lookup (#3394) 2025-04-02 21:15:38 -05:00
JairG
9f1a18ef34 fixed logic to not compare the VERSION number when VERSION is set to … (#3389) 2025-04-02 19:38:04 -05:00
Geoff Bourne
dedf8bc587 docs: clarify Fabric docs TYPE usage (#3387) 2025-04-01 21:11:34 -05:00
dependabot[bot]
abb33d20fb build(deps): bump the patches group in /docs with 2 updates (#3383) 2025-03-31 07:57:42 -05:00
Geoff Bourne
6b4985c38d docs: updated bmc4 example to v34.5 (#3382) 2025-03-30 18:56:44 -05:00
dependabot[bot]
16a7f7ae03 build(deps): bump the patches group in /docs with 2 updates (#3379) 2025-03-24 07:08:23 -05:00
Geoff Bourne
20db1c9eb0 docs: show example of MODRINTH_PROJECTS with version number (#3378) 2025-03-23 20:15:31 -05:00
Geoff Bourne
dac388268f Support multiple values for COPY_PLUGINS_SRC, COPY_MODS_SRC, and COPY_CONFIG_SRC (#3377) 2025-03-23 15:43:08 -05:00
Geoff Bourne
231ac0f665 Add Docker logo to badges (#3375) 2025-03-19 20:52:46 -05:00
Geoff Bourne
68a56be107 Fix SKIP_CHOWN_DATA (#3374) 2025-03-19 19:43:26 -05:00
dependabot[bot]
ac32c8706f build(deps): bump the updates group across 1 directory with 5 updates (#3369) 2025-03-17 20:27:49 -05:00
Geoff Bourne
f5e511e3cc docs: clarify that ICON can be a container path (#3371) 2025-03-17 09:41:21 -05:00
dependabot[bot]
2a859d61f6 build(deps): bump mkdocs-material from 9.6.7 to 9.6.8 in /docs in the patches group (#3370) 2025-03-17 07:36:02 -05:00
dependabot[bot]
943429e180 build(deps): bump the patches group across 1 directory with 3 updates (#3355)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Geoff Bourne <itzgeoff@gmail.com>
2025-03-16 14:23:03 -05:00
Geoff Bourne
7e5f5805a5 Add AUTOPAUSE_STATUS_RETRY_LIMIT and AUTOPAUSE_STATUS_RETRY_INTERVAL (#3365) 2025-03-16 13:25:37 -05:00
joesturge
777f4e26b9 Lazymc - Update misc examples with non-deprecated method of managing lazymc (#3360) 2025-03-15 18:44:23 -05:00
Henry
21f2a7e86c Exclude compass-coords globally from cf and mr, client side mod (#3361) 2025-03-15 10:07:12 -05:00
Geoff Bourne
f22d291bfc rcon-cli upgraded to support command history (#3354) 2025-03-08 18:20:28 -06:00
Geoff Bourne
5fd2522028 examples: moved fabric into its own directory (#3353) 2025-03-08 18:14:54 -06:00
EmilyxFox
a7b35d955b add sound to excluded mods as it crashes server on load. (#3350) 2025-03-06 07:26:02 -06:00
litetex
73e402b46d Fix log4j2 warning / Remove package scanning (#3347) 2025-03-03 12:44:55 -06:00
Greg
73cb6333b7 Update auto-curseforge docs wording around version pinning. (#3344) 2025-02-27 07:55:35 -06:00
Geoff Bourne
6f190a68a2 Upgrade helper to 1.41.2 (#3343) 2025-02-26 09:10:36 -06:00
Geoff Bourne
4eedde802b Add specific file version header for auto-curseforge (#3342) 2025-02-26 07:15:38 -06:00
dependabot[bot]
8bb7ea9000 build(deps): bump docker/build-push-action from 6.13.0 to 6.14.0 in the updates group (#3337)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-25 12:59:30 -06:00
jackguy80
fcfb1cd74c 1863: use SLP for pre-1.7 servers. (#3336) 2025-02-24 07:45:46 -06:00
Geoff Bourne
beb3b4a2ce fabric: skip web API access when all versions match installed (#3332) 2025-02-22 14:57:57 -06:00
Geoff Bourne
dcdbb85936 Added USES_PLUGINS to allows /plugins use with hybrid mods (#3320) 2025-02-17 11:11:53 -06:00
Geoff Bourne
3a678a6bf3 Clarify CF_API_KEY setup in examples (#3321) 2025-02-16 13:19:16 -06:00
Thomas Violent
b1128db9cc Add sound-reload to cf-exclude-include.json (#3317) 2025-02-16 13:03:54 -06:00
nils_kiefer
b32666183a Added fabric-server-launch.jar to variants FTBA (#3314) 2025-02-15 20:42:49 -06:00
Geoff Bourne
dcf4ae89fb build: upgrade tools to Go 1.23.6 (#3305) 2025-02-11 07:05:18 -07:00
dependabot[bot]
066116fd35 build(deps): bump the updates group with 2 updates (#3304) 2025-02-10 06:21:24 -07:00
Geoff Bourne
7404122956 build: add Java 23 variants (#3297) 2025-02-09 14:53:02 -06:00
EmilyxFox
78217928c1 Remove konkrete from cf-exclude-include (#3300) 2025-02-09 12:22:03 -07:00
dependabot[bot]
b74de64009 build(deps): bump mkdocs-material from 9.5.50 to 9.6.1 in /docs in the patches group (#3293) 2025-02-03 06:25:18 -07:00
Geoff Bourne
1fb7e50c0d deps: upgrade Go-based tools to resolve vulnerabilities (#3292) 2025-02-02 16:50:16 -07:00
August Abt
5742a34658 Ensure legacy whitelist overrides work like ops overrides (#3289) 2025-02-02 14:48:41 -06:00
Geoff Bourne
7cdb7d398c Add support for Cleanroom (Forge fork) installer (#3291) 2025-02-02 14:47:03 -06:00
dependabot[bot]
26d97c21cc build(deps): bump docker/build-push-action from 6.12.0 to 6.13.0 in the updates group (#3283) 2025-01-28 06:08:21 -07:00
Caden Kriese
40daa8b803 Clarify Vanilla Tweaks file documentation (#3287) 2025-01-27 20:52:24 -07:00
dependabot[bot]
dff4673094 build(deps): bump mkdocs-static-i18n from 1.2.3 to 1.3.0 in /docs in the patches group (#3284) 2025-01-27 07:55:09 -07:00
Azuna
6bb2c3a8c4 Feat: Disabling Mods in Generic Packs (#3281) 2025-01-26 19:50:59 -07:00
DerRockWolf
0ff1e993d0 Provide ability to skip STOP_SERVER_ANNOUNCE_DELAY on demand (#3280) 2025-01-25 15:42:47 -07:00
Niklas Gerstner
319315a001 Add configurator tool to documentation (#3272) 2025-01-22 09:43:25 -06:00
Fernando Rodriguez
6c10f265c8 Bump mc-monitor to fix cve (#3270) 2025-01-20 13:31:32 -06:00
dependabot[bot]
0e3f75879d build(deps): bump docker/build-push-action from 6.11.0 to 6.12.0 in the updates group (#3268) 2025-01-20 08:18:39 -06:00
dependabot[bot]
b595c107bb build(deps): bump mkdocs-material from 9.5.49 to 9.5.50 in /docs in the patches group (#3267) 2025-01-20 08:04:29 -06:00
Geoff Bourne
3613a30709 Clarify java edition aspect (#3264) 2025-01-19 12:55:48 -06:00
Tert0
da1b052516 datapack: allow copying from directory (#3259) 2025-01-19 08:25:33 -06:00
Liz Fransen
abb3af07ba Version bump GTNH to 2.7.2 (#3258) 2025-01-17 14:08:54 -06:00
Geoff Bourne
4f1a09b2a9 examples: adjust gtnh example to use MEMORY and JVM_OPTS (#3257) 2025-01-16 10:30:13 -06:00
Geoff Bourne
4e63990bd7 cf: handle spaces around commas for includes/excludes (#3256) 2025-01-16 09:34:34 -06:00
Geoff Bourne
883d64159f cf: qualify mapping of excluded slug to mod IDs (#3254) 2025-01-14 20:55:59 -06:00
dependabot[bot]
d35b78c14e build(deps): bump mkdocs-autorefs from 1.2.0 to 1.3.0 in /docs in the patches group (#3250) 2025-01-13 07:56:22 -06:00
dependabot[bot]
d420c523a3 build(deps): bump the updates group with 2 updates (#3249) 2025-01-13 07:23:05 -06:00
Wavering Ana
1e28390d1b update mohist download script to use new API endpoint (#3247) 2025-01-12 08:11:38 -06:00
Geoff Bourne
f79ef8f3a7 ketting: fixed launcher invocation (#3244) 2025-01-10 14:52:19 -06:00
Geoff Bourne
a485f84797 modrinth: added excludes needed for create_plus (#3242) 2025-01-08 20:52:28 -06:00
Leon Kampwerth
51ba6a2c71 Fixed compose error due to missing key in GTNH example (#3238) 2025-01-06 14:15:28 -06:00
Geoff Bourne
e5b7a5829f cf: gracefully handle invalid modpack manifest file (#3237) 2025-01-06 11:05:29 -06:00
Geoff Bourne
6a994acc52 Added example for skyfactory5 (#3235) 2025-01-06 08:36:30 -06:00
Geoff Bourne
f46298c6b8 Added compose example snippets for Paper docs (#3231) 2025-01-04 11:57:04 -06:00
Geoff Bourne
a72fb19ec6 Install tput for colorized logs on alpine images (#3229) 2025-01-03 19:09:52 -06:00
Geoff Bourne
4914ffbe40 neoforge: grab latest beta even when non-beta release is newer (#3227) 2025-01-03 17:09:19 -06:00
Geoff Bourne
03f9037668 Corrected calculation of Canyon download URL (#3226) 2025-01-03 17:01:32 -06:00
Niklas Gerstner
621bafb4f2 Download paper.yml and bukkit.yml (#3217) 2024-12-31 08:46:33 -06:00
Geoff Bourne
9a20ab7b48 Download default spigot.yml for PaperMC to top-level directory (#3216) 2024-12-30 19:02:43 -06:00
Geoff Bourne
6514ed85a0 Cache CF search API calls and better handle CURSEFORGE_FILES rate limit (#3215) 2024-12-29 13:57:36 -06:00
EmilyxFox
6391be5251 added cf new exclusions (#3214) 2024-12-29 08:35:44 -06:00
Prabhjot
2d1a35dba8 fix vault hunters example (#3213) 2024-12-28 17:20:56 -06:00
Liz Fransen
236ed74295 Add an Example of Setting Up GregTech: New Horizons (#3212) 2024-12-27 11:42:24 -06:00
dependabot[bot]
05cbbfc9e3 build(deps): bump docker/setup-buildx-action from 3.7.1 to 3.8.0 in the updates group (#3202) 2024-12-24 16:18:07 -06:00
Geoff Bourne
678dda5d4a docs: clarify curseforge listing file and GetBukkit limitation (#3205) 2024-12-23 14:07:14 -06:00
dependabot[bot]
c3e96f6ac6 build(deps): bump mkdocs-material from 9.5.48 to 9.5.49 in /docs in the patches group (#3203)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-12-23 09:05:47 -06:00
Jordi
1f6288efd8 Add example of Craftoria modpack (#3198) 2024-12-17 18:51:23 -06:00
M
787a31a5f1 Clarify Modrinth URL structure in documentation (#3197) 2024-12-17 13:03:11 -06:00
Geoff Bourne
66a6df4029 docs: clarified Modrinth support includes plugins and datapacks (#3196) 2024-12-17 12:42:30 -06:00
Sculas
de19794a5f fix: install missing language pack for GraalVM (#3189) 2024-12-14 15:22:08 -06:00
Geoff Bourne
0582a8ab97 Corrected examples link in autopause docs (#3188) 2024-12-11 07:09:06 -06:00
Geoff Bourne
94def951b6 Make sure download new version of FTB installer (#3186) 2024-12-09 20:03:19 -06:00
dependabot[bot]
755f1c5352 build(deps): bump mkdocs-material from 9.5.47 to 9.5.48 in /docs in the patches group (#3184) 2024-12-09 06:57:10 -06:00
Juan jose Del Porto Bayut
4804c4bb67 Added xaeroplus and yungs-menu-tweaks to the exclude list (#3181) 2024-12-07 09:29:14 -06:00
Geoff Bourne
58302f9490 Fix syntax error in start-deployPurpur (#3178) 2024-12-06 09:53:47 -06:00
Geoff Bourne
c6dbc88ea9 Re-install FTB if manifest is missing (#3177) 2024-12-05 07:40:50 -06:00
Geoff Bourne
a31440476c Fixed new FTB installer args and manifest (#3176) 2024-12-04 07:20:10 -06:00
Geoff Bourne
350bada3a8 Switch FTBA to use https://api.feed-the-beast.com/v1 (#3174) 2024-12-03 21:25:44 -06:00
d3n1z6
86354f5ec2 fix ngrok docker compose example (#3173) 2024-12-03 11:31:36 -06:00
dependabot[bot]
f1d0736689 build(deps): bump mkdocs-material from 9.5.45 to 9.5.47 in /docs in the patches group (#3172) 2024-12-03 07:49:26 -06:00
dependabot[bot]
e2015afdb4 build(deps): bump docker/build-push-action from 6.9.0 to 6.10.0 in the updates group (#3171) 2024-12-02 09:26:55 -06:00
Geoff Bourne
4555cf433e cf: use fallback URL for curseforge files like modpack files (#3158) 2024-11-29 14:29:02 -06:00
EmilyxFox
e090b0aef5 add advancement plaques to cf exclusions (#3168) 2024-11-29 12:39:27 -06:00
Geoff Bourne
a03d02e59e Correcting name of .mc-health.env file (#3167) 2024-11-28 15:26:47 -06:00
Geoff Bourne
21ad4146aa docs: adjust memory and volume in atm10 example (#3166) 2024-11-28 12:36:12 -06:00
Geoff Bourne
6fd275cdc6 cf: added default excludes needed for ATM10 (#3164) 2024-11-26 16:27:55 -06:00
dependabot[bot]
954bb887d3 build(deps): bump docker/metadata-action from 5.5.1 to 5.6.1 in the updates group (#3162) 2024-11-25 10:30:13 -06:00
dependabot[bot]
ec8e689132 build(deps): bump mkdocs-material from 9.5.44 to 9.5.45 in /docs in the patches group (#3161) 2024-11-25 08:00:57 -06:00
Geoff Bourne
039b90839b Include processing of SPIGET_RESOURCES with TYPE=CUSTOM (#3156) 2024-11-21 21:49:22 -06:00
Geoff Bourne
bfc75cad21 deps: upgrade mc-monitor to 0.15.0 (#3149) 2024-11-11 10:11:14 -06:00
dependabot[bot]
f178b99459 build(deps): bump the patches group in /docs with 2 updates (#3147) 2024-11-11 08:24:40 -06:00
Geoff Bourne
2680e02b34 modrinth: more info in error when dependency has no applicable files (#3142) 2024-11-09 12:46:12 -06:00
Ryan Hullah
14f96d11e5 Create ATM10 example (#3143) 2024-11-09 08:51:59 -06:00
Geoff Bourne
b41e63cec5 Correctly handle NeoForge CF modpacks also using CURSEFORGE_FILES (#3139) 2024-11-04 16:00:28 -07:00
dependabot[bot]
1b5c3bd8b9 build(deps): bump mkdocs-material from 9.5.42 to 9.5.43 in /docs in the patches group (#3138) 2024-11-04 08:33:47 -07:00
EmilyxFox
2412f6a740 add ftb-evolution example file (#3135) 2024-11-03 14:16:21 -07:00
dependabot[bot]
d33d1e7f69 build(deps): bump actions/checkout from 4.2.1 to 4.2.2 in the updates group (#3130) 2024-10-28 07:15:56 -05:00
Tristan
868bcb7272 fix start-deployFTBA (#3124) 2024-10-26 08:40:36 -05:00
Geoff Bourne
f872eb55cc Fix incorrect warning about setting TYPE and MODPACK_PLATFORM (#3122) 2024-10-24 15:20:50 -05:00
Tristan
e69ee85f8e #3115 rename MOD_PLATFORM to MODPACK_PLATFORM (#3120) 2024-10-24 07:12:13 -05:00
Tristan
bef7b4719f New logger with color and specific types. Code cleanup (#3108) 2024-10-22 16:04:38 -05:00
dependabot[bot]
a356c6810e build(deps): bump mkdocs-material from 9.5.40 to 9.5.42 in /docs in the patches group (#3119) 2024-10-21 07:15:54 -05:00
dependabot[bot]
f7c1e9d2c1 build(deps): bump SethCohen/github-releases-to-discord from 1.15.1 to 1.16.2 in the updates group (#3118) 2024-10-21 07:01:30 -05:00
João Gabriel Moreira Bossatto Daré
ae69de8ca0 port configuration for local modrinth modpack setup (#3116) 2024-10-20 09:43:28 -05:00
Chip Wolf ‮
a9140fb84a chore(docs): note add mod var for auto_curseforge use (#3111) 2024-10-16 12:07:15 -05:00
Geoff Bourne
07708209a6 cf: gracefully handle corrupted API cache index (#3110) 2024-10-15 18:39:43 -05:00
Geoff Bourne
fd20fc9654 cf: default API cache TTL to 2 days and allow config (#3107) 2024-10-15 07:54:30 -05:00
ギリ猫
4085d28773 Fix mc-send-to-console running with uid=0(root) (#3106) 2024-10-15 07:08:17 -05:00
dependabot[bot]
7dbeac99d3 build(deps): bump actions/checkout from 4.2.0 to 4.2.1 in the updates group (#3105)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-14 21:50:48 -05:00
dependabot[bot]
e4773e47cb build(deps): bump the patches group in /docs with 2 updates (#3104) 2024-10-14 15:42:15 -05:00
Tristan
da4f7d0dd8 refactoring a little bit some test script files (#3100)
Co-authored-by: Geoff Bourne <itzgeoff@gmail.com>
2024-10-13 18:04:11 -05:00
Geoff Bourne
afbdfea0bb Add SKIP_CHOWN_DATA to skip the "Changing ownership of /data" (#3103) 2024-10-13 15:05:49 -05:00
Geoff Bourne
f5da624789 curseforge: cache get mod info and file API calls to disk (#3102) 2024-10-13 14:15:09 -05:00
dependabot[bot]
fdc1f446af build(deps): bump the updates group with 3 updates (#3097) 2024-10-08 08:13:28 -05:00
Geoff Bourne
1b8b694036 modrinth: support datapack retrieval (#3096) 2024-10-07 08:44:42 -05:00
Geoff Bourne
7974baca7e build: deprecating java8-alpine (for now) (#3094) 2024-10-06 14:17:47 -05:00
Geoff Bourne
d4af9b1ae5 For FTBA support extra mods with Modrinth/CurseForge (#3092) 2024-10-06 12:07:55 -05:00
Geoff Bourne
34187adca3 examples: updated BMC4 for v32.5 (#3091) 2024-10-05 13:34:26 -05:00
dependabot[bot]
d0a3ee3b64 build(deps): bump the updates group with 2 updates (#3085) 2024-09-30 13:10:17 -05:00
dependabot[bot]
6683c91b74 build(deps): bump mkdocs-material from 9.5.36 to 9.5.39 in /docs in the patches group (#3084) 2024-09-30 13:09:52 -05:00
Geoff Bourne
a0e274a7b7 auto-cf: support three-part modloader IDs (#3081) 2024-09-26 20:55:19 -05:00
dependabot[bot]
5d8a152db2 build(deps): bump mkdocs-material from 9.5.34 to 9.5.36 in /docs in the patches group (#3078) 2024-09-23 18:49:39 -05:00
Tomás Alegre Sepúlveda
df8f8f1716 Add PAPER_CONFIG_REPO as alias for defaults repo variable (#3076) 2024-09-23 07:31:04 -05:00
Omar Abdulaziz
295996b033 docs: removed duplicated RCON_CMDS variable (#3072) 2024-09-16 16:42:56 -05:00
Geoff Bourne
5ac7b1d108 build: upgraded restify, rcon-cli, mc-server-runner (#3067) 2024-09-09 20:54:41 -05:00
Geoff Bourne
f420b92d05 build: upgraded easy-add and mc-monitor (#3066) 2024-09-09 20:16:42 -05:00
dependabot[bot]
96019b02ee build(deps): bump mkdocstrings from 0.26.0 to 0.26.1 in /docs in the patches group (#3063) 2024-09-09 07:51:36 -05:00
md5nake
c271ad99e0 Bump mc-monitor version (#3061) 2024-09-08 19:12:39 -05:00
Geoff Bourne
222b522bc1 build: accept build args for extra packages to install (#3060) 2024-09-07 18:42:43 -05:00
Geoff Bourne
dd3c7a4b77 Healthcheck interval is now 60s with start interval 5s (#3058) 2024-09-07 09:01:20 -05:00
EmilyxFox
5340121d37 Simple Voice Chat examples (#3057) 2024-09-05 18:39:57 -05:00
dependabot[bot]
9546dd322d build(deps): bump the patches group in /docs with 3 updates (#3054) 2024-09-02 08:13:37 -05:00
Geoff Bourne
739cd5a320 modrinth: improve logging of non-applicable versions (#3053) 2024-09-01 18:39:49 -05:00
dependabot[bot]
09b716dd6b build(deps): bump the patches group in /docs with 2 updates (#3051) 2024-08-26 08:02:59 -05:00
dependabot[bot]
a7ecd92244 build(deps): bump docker/build-push-action from 6.6.1 to 6.7.0 in the updates group (#3046) 2024-08-19 08:47:21 -05:00
Geoff Bourne
8685cc05c7 cf-files: improve the logging of missing dependencies especially optional ones (#3044) 2024-08-17 17:30:12 -05:00
EmilyxFox
235141fcf3 add new server property in 24w33a (#3043) 2024-08-16 07:03:03 -05:00
Geoff Bourne
cea839aa67 Default EXISTING_OPS_FILE and EXISTING_WHITELIST_FILE to SYNC_FILE_MERGE_LIST (#3042) 2024-08-12 17:57:18 -05:00
dependabot[bot]
6d9c6d64e2 build(deps): bump the updates group across 1 directory with 2 updates (#3040) 2024-08-12 07:03:36 -05:00
Geoff Bourne
5d8b99c454 Default EXISTING_OPS_FILE and EXISTING_WHITELIST_FILE to MERGE (#3038) 2024-08-11 09:40:00 -05:00
Geoff Bourne
5113afccb5 docs: remove leftover debugs in bmc4 example (#3037) 2024-08-10 11:37:09 -05:00
dependabot[bot]
0a7b1ed817 build(deps): bump mkdocs-material from 9.5.30 to 9.5.31 in /docs in the patches group (#3030) 2024-08-05 17:36:37 -05:00
EmilyxFox
4fe1c2c7b4 New server properties (#3034) 2024-08-05 17:31:37 -05:00
EmilyxFox
8c0c27aef9 Add just-zoom (jar: justzoom) to global exclude (#3032) 2024-08-05 10:41:22 -05:00
lucaperl
e9d7668cd8 Added client mod exclusions for modpack "Hardrock Terrafirmacraft" (#3028) 2024-08-03 10:18:51 -05:00
Geoff Bourne
06190ef9d0 Added support for FOLIA_CHANNEL (#3029) 2024-08-03 10:16:27 -05:00
C0D3 M4513R
1c780ff655 Ketting removed GithubPackages (#3027) 2024-08-02 15:24:03 -05:00
EmilyxFox
866f9c9d45 Added hide-online-players server property (#3026) 2024-08-02 07:44:50 -05:00
dependabot[bot]
4da0e93c0f build(deps): bump the patches group in /docs with 2 updates (#3022) 2024-07-29 21:34:50 -05:00
dependabot[bot]
5415879cd2 build(deps): bump the updates group with 4 updates (#3021)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-29 19:18:44 -05:00
joesturge
28737a99bc docs: updated with example on how to setup lazymc with minecraft container (#3017) 2024-07-29 15:06:19 -05:00
Geoff Bourne
f4634c3fd9 docs: add service annotation patching to example kustomization (#3020) 2024-07-28 13:28:42 -05:00
ruskington
46ee2331bf Add itemphysic-lite to global exclude (#3014)
Co-authored-by: Geoff Bourne <itzgeoff@gmail.com>
2024-07-27 11:05:37 -05:00
Geoff Bourne
edffc58589 build: remove pre-installed ubuntu user for consistency (#3016) 2024-07-26 21:26:36 -05:00
dependabot[bot]
be846dd369 build(deps): bump docker/build-push-action from 6.3.0 to 6.4.1 in the updates group (#3010) 2024-07-23 14:14:19 -05:00
Josh
de1d7f422c Updated and Improved install scripts. (#3006) 2024-07-21 15:40:59 -05:00
Miika Kankare
b393b22136 Interpret backslash escapes for RCON_CMDS (#3008) 2024-07-21 10:29:41 -05:00
Geoff Bourne
d7c6a7d2b6 paper: download default configs before patching (#3004) 2024-07-20 13:15:16 -05:00
Geoff Bourne
0ff8e68f01 auto-cf: added blur-forge to global excludes (#3003) 2024-07-19 21:11:25 -05:00
Geoff Bourne
a71c5384b4 paper: suggest other release channel when build not found (#3000) 2024-07-17 21:12:12 -05:00
Geoff Bourne
379cef3c7e Re-download Modrinth projects based on modified time rather than filename existence (#2999) 2024-07-17 10:50:22 -05:00
dependabot[bot]
163a268770 build(deps): bump mkdocs-material from 9.5.28 to 9.5.29 in /docs in the patches group (#2996) 2024-07-15 07:21:00 -05:00
Pawel
f84ae66af3 Fix typo in reference to REMOVE_OLD_MODS variable (#2988) 2024-07-14 09:59:07 -05:00
Geoff Bourne
58face9c1b Avoid logging userinfo from MODS/PLUGINS URLs (#2993) 2024-07-14 09:58:39 -05:00
Geoff Bourne
b8e6eea265 auto-cf: remove necronomicon from global exclusions (#2991) 2024-07-14 09:35:16 -05:00
Geoff Bourne
78b55df635 mcopy: support basic auth via URL (#2989) 2024-07-13 21:51:34 -05:00
Geoff Bourne
0f9941373b cf: copy files found in downloads repo (#2986) 2024-07-13 13:38:43 -05:00
Geoff Bourne
6ac313ae71 cf: check downloads repo before attempting download of mod in modpack (#2985) 2024-07-13 10:36:57 -05:00
Geoff Bourne
bc0a87cc53 modrinth: add default exclusions discovered for prominence 2 (#2982) 2024-07-12 15:00:19 -05:00
Felipe Paschoal Bergamo
5baf398af3 Optimize startup on versionLessThan function (#2979) 2024-07-11 14:24:02 -05:00
dependabot[bot]
8dac5d1428 build(deps): bump docker/build-push-action from 5.4.0 to 6.3.0 (#2975) 2024-07-11 08:18:04 -05:00
Jeff Sandberg
4232a981e8 Update the autopause server listener to be proxy aware (#2978) 2024-07-08 14:14:10 -05:00
dependabot[bot]
b89c698676 build(deps): bump the updates group with 2 updates (#2974) 2024-07-08 07:44:38 -05:00
dependabot[bot]
8a5b5bbe70 build(deps): bump mkdocs-material from 9.5.27 to 9.5.28 in /docs in the patches group (#2976) 2024-07-08 07:31:56 -05:00
Jeff Sandberg
11d8d917f2 Add use-proxy support to health extra args (#2973) 2024-07-08 07:30:37 -05:00
Akashi_SN
2023f5aa31 Remove JEI from exclusion list to fix ATM9 launch issue (#2971) 2024-07-07 08:13:04 -05:00
Geoff Bourne
bcd8db1306 Fixed exclusion of no-night-vision-flashing (#2970) 2024-07-06 22:59:23 -05:00
bobpattison123
62ce504da3 Changed foamfix mod name (#2969) 2024-07-06 22:51:33 -05:00
KrosTheProto
c87145a5e4 More Client-side mods to exclude (#2967) 2024-07-06 19:29:48 -05:00
Geoff Bourne
c4f69bf577 Clarify MODRINTH_ALLOWED_VERSION_TYPE inclusion (#2966) 2024-07-06 13:15:06 -05:00
Geoff Bourne
67b790dfed build: fully remove java17-jdk variant from build (#2904) 2024-07-06 12:22:02 -05:00
Geoff Bourne
a55d575375 Corrected "Updated mod exclusion list" (#2965)
Co-authored-by: KrosTheProto <billyds132@gmail.com>
2024-07-06 09:48:47 -05:00
KrosTheProto
70cc1298c2 Updated mod exclusion list (#2964) 2024-07-06 08:25:28 -05:00
Geoff Bourne
b9a61c8852 Add ryoamiclights to CF global excludes (#2948) 2024-07-04 11:57:16 -05:00
Geoff Bourne
75496d6e0b cf: add support for modpacks that use NeoForge (#2943) 2024-07-01 14:18:33 -05:00
Connor
50caaf98ef add check for absolute directories to world copy script (#2939) 2024-07-01 07:47:42 -05:00
Geoff Bourne
14a8f903ae docs: updating AUTO_CURSEFORGE examples that no longer need /downloads (#2938) 2024-06-30 21:56:44 -05:00
Geoff Bourne
c70f9c3fff modrinth: add support for default excludes/includes (#2937) 2024-06-30 15:15:44 -05:00
Geoff Bourne
a933e92460 neoforge: correctly handle versioning that drops the ".0" (#2935) 2024-06-28 22:05:54 -05:00
LeaderbotX400
4c42a3e46c Update cf-exclude-include.json with Apple Skin, etc (#2932) 2024-06-27 13:45:55 -05:00
Geoff Bourne
1ccd6a0954 docs: updated to new name of itzg/mc-proxy (#2917) 2024-06-20 08:59:50 -05:00
Emmanuel Ferdman
c3614466e7 Update compose file reference (#2915) 2024-06-19 08:16:29 -05:00
dependabot[bot]
3349df764e build(deps): bump the updates group with 2 updates (#2910) 2024-06-18 15:14:01 -05:00
dependabot[bot]
d3725c3388 build(deps): bump mkdocs-material from 9.5.26 to 9.5.27 in /docs in the patches group (#2909) 2024-06-18 07:48:23 -05:00
Geoff Bourne
63e8d33f6c Add a section about class file version 65.0 message (#2906) 2024-06-15 17:36:06 -05:00
Geoff Bourne
a8b7ad533c Added hairpin routing diagram (#2903) 2024-06-15 14:13:30 -05:00
Geoff Bourne
fe5f066a0b paper: consider release channel when selecting version/build (#2902) 2024-06-15 14:05:14 -05:00
Geoff Bourne
47c2b60cba build: add java21-jdk variant (#2900) 2024-06-14 13:58:29 -05:00
Geoff Bourne
db88d167fe Don't log RCON password when DEBUG enabled (#2898) 2024-06-14 07:51:01 -05:00
wirytiox
774d3bc717 Add true-darkness to CF global excludes (#2899) 2024-06-13 17:41:49 -05:00
Geoff Bourne
c365a6cc5a Fixed typo in CF files dependencies section title (#2896) 2024-06-13 10:29:27 -05:00
Kian Kasad
cafb80eec3 Accept yes/no for boolean environment variables (#2893) 2024-06-13 07:46:16 -05:00
Geoff Bourne
bc789202a1 Disable default configs download until issues resolved (#2895) 2024-06-13 07:45:48 -05:00
Geoff Bourne
2e9be596f7 Fixed issue of unbound REMOVE_OLD_MODS_EXCLUDE variable when using SPIGET_RESOURCES (#2891) 2024-06-12 16:38:41 -05:00
dependabot[bot]
87afad69b3 build(deps): bump mkdocs-material from 9.5.25 to 9.5.26 in /docs in the patches group (#2886) 2024-06-10 19:43:57 -05:00
Geoff Bourne
fa058a18ad build: upgrade tools to Go 1.22.4 (#2885) 2024-06-09 15:04:13 -05:00
Geoff Bourne
3936d56583 cf: verify mod file hashes and re-download to repair (#2884) 2024-06-08 13:57:57 -05:00
Geoff Bourne
ca8abe3e16 paper: download default configs to allow for patching (#2883) 2024-06-08 12:46:54 -05:00
Geoff Bourne
ed7a6668aa Added note about CurseForge files dependency handling (#2881) 2024-06-08 09:10:25 -05:00
Felipe Paschoal Bergamo
c828985ebe Add SERVER_HOST Environment in mc-monitor command (#2875) 2024-06-05 18:48:35 -05:00
wirytiox
8fd98f0315 Add zume to cf-exclude-include.json (#2874) 2024-06-05 07:47:18 -05:00
Geoff Bourne
708b6ab849 docs: fixed description of BROADCAST_RCON_TO_OPS variable (#2873) 2024-06-04 19:56:37 -05:00
dependabot[bot]
524ac1d0ec build(deps): bump mkdocs-material from 9.5.24 to 9.5.25 in /docs in the patches group (#2871) 2024-06-03 08:28:31 -05:00
dependabot[bot]
2cf4b98d76 build(deps): bump docker/login-action from 3.1.0 to 3.2.0 in the updates group (#2872) 2024-06-03 08:27:19 -05:00
Geoff Bourne
b3e0ea14bf docs: allow for toggling light/dark mode (#2869) 2024-06-02 16:40:10 -05:00
Edwin
820d401911 Enhance CurseForge server packs that use variables.txt (#2867) 2024-06-01 13:33:35 -05:00
noah1019
20d80bb600 rad2 compose example (#2859) 2024-05-27 18:14:32 -05:00
Geoff Bourne
e172b52027 build: add back arm64 into java17/21 alpine multiarch (#2858) 2024-05-27 15:03:32 -05:00
dependabot[bot]
36c92be777 build(deps): bump mkdocs-material from 9.5.23 to 9.5.24 in /docs in the patches group (#2854) 2024-05-27 09:37:22 -05:00
Geoff Bourne
e59d5ff13b build: disable java17-openj9 for now (#2853) 2024-05-26 12:25:33 -05:00
Geoff Bourne
ddfb99a1fc Remove normalizing to uppercase of LEVEL_TYPE (#2852) 2024-05-26 09:53:45 -05:00
Geoff Bourne
1de2d34c64 build: upgrading git-lfs from packagecloud (#2850) 2024-05-26 08:31:52 -05:00
Geoff Bourne
65371be1eb build: disable java17-openj9 for now (#2849) 2024-05-26 08:31:39 -05:00
Geoff Bourne
e6b525a65c cf: allow for trailing slash on CF modpack page URL (#2848) 2024-05-25 13:02:52 -05:00
Juan Jesús Alejo Sillero
ed1c679559 Added a missing quotation mark (#2846) 2024-05-24 20:36:35 -05:00
dependabot[bot]
e727602e51 build(deps): bump mkdocs-material from 9.5.22 to 9.5.23 in /docs in the patches group (#2837) 2024-05-23 07:18:51 -05:00
Geoff Bourne
180b6535b3 Fixed internal SPIGOT family mapping (#2839) 2024-05-20 16:33:56 -05:00
dependabot[bot]
3842ac4693 build(deps): bump actions/checkout from 4.1.5 to 4.1.6 in the updates group (#2836) 2024-05-20 08:13:55 -05:00
Geoff Bourne
340284913c build: upgrading git-lfs from packagecloud (#2835) 2024-05-19 17:27:15 -05:00
Geoff Bourne
07e89bff53 build: upgrade rcon-cli and easy-add (#2831) 2024-05-18 13:54:23 -05:00
Geoff Bourne
e1262effef docs: add compose example of multiline MOTD (#2827) 2024-05-15 16:11:11 -05:00
Geoff Bourne
cbcdfdc288 docs: add info about DUMP_SERVER_PROPERTIES (#2826) 2024-05-15 08:50:32 -05:00
dependabot[bot]
120e1c21bf build(deps): bump mkdocs-material from 9.5.21 to 9.5.22 in /docs in the patches group (#2825)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-14 08:41:17 -05:00
dependabot[bot]
8557749d1d build(deps): bump actions/checkout from 4.1.4 to 4.1.5 in the updates group (#2824)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-05-14 08:36:07 -05:00
Geoff Bourne
5c8e2bb0ba examples: updated bmc4 example (#2822) 2024-05-12 14:06:21 -05:00
MASACR99
f659c56f18 Remove version from docker compose since it's been deprecated (#2816) 2024-05-06 14:35:50 -05:00
dependabot[bot]
f06ebae451 build(deps): bump the patches group in /docs with 3 updates (#2815) 2024-05-06 07:29:59 -05:00
Geoff Bourne
7153e1443a docs: added more detail about autopauase rootless usage (#2814) 2024-05-04 18:41:49 -05:00
dependabot[bot]
d6cc10315b build(deps): bump the patches group in /docs with 2 updates (#2806) 2024-04-30 20:53:51 -05:00
dependabot[bot]
e8b46a3bcc build(deps): bump actions/checkout from 4.1.3 to 4.1.4 in the updates group (#2807) 2024-04-29 07:41:27 -05:00
Geoff Bourne
4eb25f3cbc paper: restore requirement of version.json metadata (#2802) 2024-04-28 11:29:04 -05:00
Geoff Bourne
234863a026 paper: fall back to VERSION env var when jar missing metadata (#2801) 2024-04-27 16:49:26 -05:00
Geoff Bourne
c05b7cfa72 cf-files: correctly handle duplicate file refs (#2800) 2024-04-27 14:59:21 -05:00
Geoff Bourne
2a864f3106 paper: version metadata is optional for custom server jar (#2797) 2024-04-26 19:06:42 -05:00
Geoff Bourne
4e3198cbec build: pin java17 tests to 1.20.4 (#2796) 2024-04-26 18:53:36 -05:00
Anton Curanz
94c8a86c7c Apply SKIP_SUDO when starting knockd (#2795) 2024-04-26 16:09:19 -05:00
Geoff Bourne
1d57487766 docs: corrected mention of armv7 for latest/stable (#2793) 2024-04-25 08:22:52 -05:00
dependabot[bot]
f23403a31c build(deps): bump actions/checkout from 4.1.2 to 4.1.3 in the updates group (#2787)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-04-22 21:11:31 -05:00
dependabot[bot]
7cecfde797 build(deps): bump the patches group in /docs with 3 updates (#2788)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Geoff Bourne <itzgeoff@gmail.com>
2024-04-22 21:07:47 -05:00
Geoff Bourne
15a84ec316 docs: clarify the mention of java8 in deprecated section (#2785) 2024-04-20 12:01:27 -05:00
Bailey Allen
38c8399880 Add git-lfs package (#2781) 2024-04-17 08:11:04 -05:00
dependabot[bot]
c666cf28f4 build(deps): bump docker/setup-buildx-action from 3.2.0 to 3.3.0 in the updates group (#2769) 2024-04-14 13:54:40 -05:00
Geoff Bourne
7dce58b7f6 docs: add a link to class file version table (#2779) 2024-04-14 13:54:12 -05:00
Geoff Bourne
5b920cca8f modrinth: fixed force include option (#2778) 2024-04-13 21:35:02 -05:00
Geoff Bourne
09603f4003 modrinth: add option to force include client mods (#2777) 2024-04-13 20:40:06 -05:00
Geoff Bourne
32aa681582 build: upgraded restify and mc-server-runner (#2771) 2024-04-08 20:02:10 -05:00
Rover van der Noort
4f474d38c4 Update cf-exclude-include.json (#2770) 2024-04-08 08:02:46 -05:00
Geoff Bourne
79ad259f1d cf: use fallback download URL when metadata doesn't provide one (#2767) 2024-04-07 14:01:47 -05:00
Geoff Bourne
4348853e15 build: also remove variant entry for java8-multiarch (#2766) 2024-04-07 11:31:37 -05:00
Geoff Bourne
8f13cd4496 build: java8 is now consistently multi-arch like others and new java8-alpine (#2763) 2024-04-07 10:53:37 -05:00
Geoff Bourne
665ca9c61a Added support for skript resources via SPIGET_RESOURCES (#2764) 2024-04-06 22:00:50 -05:00
Geoff Bourne
cec8027844 docs: fixed typo on java versions page (#2762) 2024-04-06 12:58:20 -05:00
Geoff Bourne
e247348c47 build: upgrade mc-monitor to use retry for all errors (#2760) 2024-04-06 12:11:31 -05:00
Geoff Bourne
b22c818f0e Designate java21 as the latest/default image (#2757) 2024-04-04 21:16:48 -05:00
dependabot[bot]
55e7b8bee5 build(deps): bump the patches group in /docs with 1 update (#2750) 2024-04-04 07:26:48 -05:00
Geoff Bourne
00e04fc2d5 Removed write to /var/log/knocked-source during autopause resume (#2749) 2024-03-30 20:22:38 -05:00
Nilon123456789
a46a506a1c Add Tailscale docker-compose example (#2747)
Co-authored-by: Geoff Bourne <itzgeoff@gmail.com>
2024-03-29 08:32:18 -05:00
Geoff Bourne
46fb560ed9 Hybrid servers using CURSEFORGE_FILES assume mc-mods for Forge (#2740) 2024-03-27 08:21:07 -05:00
dependabot[bot]
f10bb45964 build(deps): bump the updates group with 4 updates (#2729) 2024-03-18 17:12:35 -05:00
dependabot[bot]
e556353ebb build(deps): bump the patches group in /docs with 1 update (#2728) 2024-03-18 07:38:11 -05:00
Geoff Bourne
938b562d21 Successful spigot/bukkit update check caused grep to fail (#2726) 2024-03-17 22:07:34 -05:00
Geoff Bourne
35daf1441a docs: add warning that GetBukkit is dead (#2723) 2024-03-16 14:46:03 -05:00
Geoff Bourne
75f5647c93 Fallback to existing server file when getbukkit retrieval fails (#2721) 2024-03-16 14:01:21 -05:00
C0D3 M4513R
d7512c44a9 Magma Maintained 1.20.1 is archived (#2718) 2024-03-15 09:38:38 -05:00
Robin Brämer
7419a66843 fix: Remove EXTAR_ARGS quotes to allow multiple args (fixes #2715) (#2716) 2024-03-13 08:21:37 -05:00
Robin Brämer
eec264c8ca Pass EXTRA_ARGS to run.sh (fixes #2714) (#2715) 2024-03-13 07:24:56 -05:00
Kaiede
3d2b88effd Update mc-server-runner to support EC-based SSH key (#2712) 2024-03-12 07:49:21 -05:00
Geoff Bourne
961bc7fdbf Remove Java 8 warning and 5 second delay (#2711) 2024-03-11 18:51:01 -05:00
dependabot[bot]
e33f87f841 build(deps): bump the patches group in /docs with 1 update (#2707) 2024-03-11 09:33:37 -05:00
Geoff Bourne
ca352c2355 modrinth: add MODRINTH_OVERRIDES_EXCLUSIONS option (#2703) 2024-03-09 13:44:27 -06:00
dependabot[bot]
01be571535 build(deps): bump mkdocs-autorefs from 0.5.0 to 1.0.1 in /docs (#2693) 2024-03-06 07:51:35 -06:00
dependabot[bot]
51e56a2168 build(deps): bump the patches group in /docs with 3 updates (#2692) 2024-03-04 08:00:18 -06:00
Geoff Bourne
fc5f7fa5d5 Use FTB_DIR for log4j2 patched files...hypothetically (#2691) 2024-03-03 16:01:49 -06:00
Geoff Bourne
e38cc6ec3b build: upgrade easy-add to 0.8.4 (#2686) 2024-02-27 22:19:29 -06:00
dependabot[bot]
e152875f65 build(deps): bump the patches group in /docs with 1 update (#2684) 2024-02-26 08:22:11 -06:00
dependabot[bot]
f5ceb60335 build(deps): bump the patches group in /docs with 1 update (#2674)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-02-24 11:28:38 -06:00
nohehf
23d20041fc feat: force include just-enough-resources-jer for create-arcane-engineering modpack (#2679) 2024-02-21 13:08:53 -06:00
Geoff Bourne
5979e65a01 auto-cf: resolve issue where zip compression scheme prevents manifest file extraction (#2678) 2024-02-20 11:10:56 -06:00
Geoff Bourne
d52b9b88a2 Gracefully handle getbukkit.org outage when resolving version (#2675) 2024-02-19 10:57:00 -06:00
Geoff Bourne
b957e4cdfa Improve rate limit detection and log available info (#2672) 2024-02-18 15:12:17 -06:00
Geoff Bourne
e816d37dc3 docs: use consistent style in lazytainer example (#2662) 2024-02-13 08:14:49 -06:00
Geoff Bourne
f17cdbee2b cf: support curseforge files that don't delcare any modloader (#2660) 2024-02-12 18:30:05 -06:00
Geoff Bourne
40653003a4 Fixed handling of Modrinth mods for NeoForge (#2659) 2024-02-12 11:13:02 -06:00
dependabot[bot]
9a29d6812b build(deps): bump the patches group in /docs with 1 update (#2656) 2024-02-12 07:52:35 -06:00
C0D3 M4513R
a03afd7650 Use KettingLauncher (#2655) 2024-02-10 20:04:44 -06:00
Geoff Bourne
f3bec94065 For legacy CURSEFORGE, write ops/whitelist files in final directory (#2654) 2024-02-10 16:02:23 -06:00
Geoff Bourne
ac7bf437ca Fixed support for mc-send-to-console (#2652) 2024-02-10 13:24:06 -06:00
Geoff Bourne
14de9281e2 auto-cf: add option to ignore files missing from previous installation (#2649) 2024-02-09 19:01:32 -06:00
Geoff Bourne
6aaed2da68 Disable REMOVE_OLD_MODS when it interferes with managed mod/plugin features (#2648) 2024-02-09 06:59:05 -06:00
Geoff Bourne
15c2e21e54 auto-cf: support modpack zips using IMPLODE compression method (#2646) 2024-02-08 15:05:12 -06:00
Geoff Bourne
730c228d48 build: use libcap package for Alpine images (#2644) 2024-02-07 19:37:27 -06:00
Geoff Bourne
b48a252dd6 Support NeoForge for Modrinth modpacks (#2643) 2024-02-07 17:10:18 -06:00
David Whittam
f9dd0f45ab Minor spelling fix in auto-curseforge.md (#2642) 2024-02-07 13:55:15 -06:00
Geoff Bourne
9c0aa776cd docs: clarified that auto CurseForge manual downloads need a browser (#2639) 2024-02-06 12:04:50 -06:00
dependabot[bot]
69eb7488e0 build(deps): bump the updates group with 1 update (#2636) 2024-02-05 09:00:48 -06:00
dependabot[bot]
93af5297fc build(deps): bump the patches group in /docs with 1 update (#2635) 2024-02-05 07:25:06 -06:00
Geoff Bourne
629156e1b3 auto-cf: provide option to force reinstall modpack's modloader (#2633) 2024-02-04 18:57:04 -06:00
Geoff Bourne
5c0b449c79 docs: improve memory limit examples (#2634) 2024-02-04 18:48:04 -06:00
Geoff Bourne
c424dc0c47 docs: clarify new default behavior with interactive console and colorized logs (#2632) 2024-02-04 15:47:13 -06:00
Geoff Bourne
8222a79bf4 docs: add example of Paper running with PROXY protocol enabled (#2629) 2024-02-03 19:38:44 -06:00
Geoff Bourne
6ae59e61fa Support 1.20.3 change to ping description structure (#2628) 2024-02-03 16:32:17 -06:00
Geoff Bourne
63b2e4484d Apply cap_net_raw to knockd to allow rootless auto-pause (#2625) 2024-02-02 22:23:07 -06:00
Geoff Bourne
600472d7eb docs: fixed formatting of deprecated Java version list (#2622) 2024-02-02 19:31:51 -06:00
Talesu
1e2024e8db Added Velocity to Multi Server (#2623) 2024-02-02 07:57:11 -06:00
Geoff Bourne
c2f41a48ef docs: clarified the Oracle GraalVM version used (#2621) 2024-01-31 16:53:13 -06:00
Zyztem
664b66dbb7 Update the doc's Copyright year (#2620) 2024-01-31 12:06:17 -06:00
Geoff Bourne
52351a423a docs: fix mkdocs emoji and static-i18n version (#2619) 2024-01-30 18:38:56 -06:00
Geoff Bourne
e23c73c83e docs: remove the deprecated content from the README (#2618) 2024-01-30 17:35:44 -06:00
dependabot[bot]
90ea47b792 build(deps): bump the patches group in /docs with 2 updates (#2615) 2024-01-29 12:35:15 -06:00
Geoff Bourne
6ea7d5851d modrinth: report error when project version not available for requested constraints (#2614) 2024-01-27 15:07:25 -06:00
dependabot[bot]
161ca91ab3 build(deps): bump the patches group in /docs with 1 update (#2608) 2024-01-22 07:36:07 -06:00
Geoff Bourne
619cee5ae5 docs: clarify that disabling RCON disables other features (#2607) 2024-01-21 12:21:40 -06:00
Geoff Bourne
b73fb88b3b Handle I/O timout type errors from autopause mc-monitor call (#2606) 2024-01-20 19:07:58 -06:00
Geoff Bourne
ca393c4fcf Directly attach stdin of server process by default (#2605) 2024-01-20 13:13:26 -06:00
Gjermund H. Pedersen
5729324195 umask as env var (#2601)
Co-authored-by: gjermundhp02 <gjermund.pedersen@gamil.com>
2024-01-18 18:27:58 -06:00
nfroeschl
a3b02ca3e3 Added Lazytainer Example (#2598) 2024-01-17 07:03:14 -06:00
Geoff Bourne
815608929c cf: allow for browser named files in final output (#2596) 2024-01-15 16:02:07 -06:00
Geoff Bourne
7cb2c0ddc7 Support local Modrinth modpack files (#2594) 2024-01-15 11:43:38 -06:00
Geoff Bourne
7a9e625935 docs: it’s spiget with an “e” (#2592) 2024-01-13 23:08:10 -06:00
dependabot[bot]
9e49840a26 build(deps): bump the updates group with 1 update (#2584) 2024-01-08 07:12:01 -06:00
Geoff Bourne
6f08613340 docs: added example of auto-cf custom manifest (#2582) 2024-01-07 12:20:34 -06:00
Kaiede
aec644dc3f Add SSH remote console support (#2576) 2024-01-06 09:55:14 -06:00
Geoff Bourne
63adc7bc6c docs: added example for All of Fabric 7 (#2575) 2024-01-05 19:00:17 -06:00
Geoff Bourne
6263cf419f docs: clarify the variables page (#2573) 2024-01-02 14:37:54 -06:00
Geoff Bourne
b0605581c3 docs: added ATM9 example (#2571) 2024-01-01 13:51:52 -06:00
Geoff Bourne
2cfd685def docs: fix formatting of sections and admonitions (#2570) 2024-01-01 13:30:45 -06:00
Geoff Bourne
6adda8f1b2 Handle calculated MEMORY value along with Aikar's flags (#2568) 2024-01-01 13:10:24 -06:00
streaminganger
cbd1e8d86d Handle various versions of Magma Maintained (#2563) 2023-12-29 08:57:13 -06:00
Geoff Bourne
7fa522853f neoforge: support 1.20.2+ (#2564) 2023-12-28 21:52:53 -06:00
farafonoff
6b2bd0d035 Fix magma_maintained server download path (#2562) 2023-12-27 09:42:21 -07:00
dependabot[bot]
6ac4586f26 build(deps): bump the updates group with 1 update (#2559) 2023-12-25 10:07:25 -07:00
dependabot[bot]
65a3490f43 build(deps): bump the patches group in /docs with 2 updates (#2560) 2023-12-25 07:20:24 -07:00
Geoff Bourne
422db18b20 neoforge: handle malformed version entry in maven metadata (#2557) 2023-12-23 13:31:57 -07:00
dependabot[bot]
88c24292ec build(deps): bump the patches group in /docs with 1 update (#2551) 2023-12-19 07:38:19 -07:00
Aruneko
3ca66db8b4 Add support for Magma Maintained (#2552) 2023-12-19 07:14:56 -07:00
Ryan Hullah
150881a941 Update release action (#2548) 2023-12-15 08:13:54 -06:00
sheepa
43accdf2f0 Fix FORCE_REDOWNLOAD at start-deployCustom (#2546) 2023-12-15 06:40:05 -06:00
Geoff Bourne
6363949bda Use Forge shim jar as entrypoint for >= 1.20.4 (#2543) 2023-12-13 20:06:53 -06:00
dependabot[bot]
b6b2da9d38 build(deps): bump actions/stale from 8 to 9 (#2538) 2023-12-11 07:28:38 -06:00
Aruneko
c40a47ebba Support ketting hybrid server (#2535) 2023-12-11 07:19:25 -06:00
Ryan Hullah
94f9bc74f0 Cleanup discord release message (#2532) 2023-12-07 10:04:06 -06:00
dependabot[bot]
0f4cb9c429 build(deps): bump the updates group with 1 update (#2525) 2023-12-06 07:34:58 -06:00
Ryan Hullah
66ed0eda1b Add Discord Release Notification (#2531) 2023-12-05 22:07:15 -06:00
Geoff Bourne
ea3a6644a8 Fixed unbound variable error for MODRINTH_EXCLUDE_FILES (#2528) 2023-12-04 23:01:26 -06:00
Geoff Bourne
c0c6e6d78d modrinth: support excluding mods from modpack (#2524) 2023-12-03 14:13:40 -06:00
Geoff Bourne
2507028193 modrinth: report error when no matching modpack version is available (#2520) 2023-12-01 14:21:52 -06:00
Geoff Bourne
2084f1ea12 Move DEBUG_MEMORY output to beginning of init (#2519) 2023-11-30 17:00:09 -06:00
Geoff Bourne
ca2c15ea8e docs: add example for Auto CurseForge manual downloads (#2517) 2023-11-29 10:41:25 -06:00
dependabot[bot]
a5ec64de24 build(deps): bump the patches group in /docs with 2 updates (#2515)
Bumps the patches group in /docs with 2 updates: [mkdocs-material-extensions](https://github.com/facelessuser/mkdocs-material-extensions) and [mkdocs-material](https://github.com/squidfunk/mkdocs-material).


Updates `mkdocs-material-extensions` from 1.3 to 1.3.1
- [Release notes](https://github.com/facelessuser/mkdocs-material-extensions/releases)
- [Changelog](https://github.com/facelessuser/mkdocs-material-extensions/blob/master/changelog.md)
- [Commits](https://github.com/facelessuser/mkdocs-material-extensions/compare/1.3...1.3.1)

Updates `mkdocs-material` from 9.4.10 to 9.4.14
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/9.4.10...9.4.14)

---
updated-dependencies:
- dependency-name: mkdocs-material-extensions
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patches
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patches
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-27 15:49:26 -06:00
Geoff Bourne
33c75bd2da Fix issue when setting ENABLE_RCON=false (#2513) 2023-11-26 08:34:49 -06:00
Geoff Bourne
2917af8ca4 Provide support for patching TOML files (#2512) 2023-11-25 18:44:45 -06:00
Geoff Bourne
9d7232c8b8 Process rcon password as regular user (#2511) 2023-11-25 18:30:18 -06:00
Geoff Bourne
051436c1df docs: clarify server properties intro (#2507) 2023-11-23 15:23:08 -06:00
Geoff Bourne
9b21661aaf docs: clarify that CurseForge files correspond to versions of that mod/plugin (#2505) 2023-11-22 09:14:20 -06:00
dependabot[bot]
47b903d134 build(deps): bump the patches group in /docs with 2 updates (#2503)
Bumps the patches group in /docs with 2 updates: [mkdocs-material](https://github.com/squidfunk/mkdocs-material) and [mkdocstrings](https://github.com/mkdocstrings/mkdocstrings).


Updates `mkdocs-material` from 9.4.8 to 9.4.10
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/9.4.8...9.4.10)

Updates `mkdocstrings` from 0.23.0 to 0.24.0
- [Release notes](https://github.com/mkdocstrings/mkdocstrings/releases)
- [Changelog](https://github.com/mkdocstrings/mkdocstrings/blob/main/CHANGELOG.md)
- [Commits](https://github.com/mkdocstrings/mkdocstrings/compare/0.23.0...0.24.0)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patches
- dependency-name: mkdocstrings
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: patches
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-11-22 08:31:25 -06:00
dependabot[bot]
fc4331232c build(deps): bump the updates group with 1 update (#2504) 2023-11-20 09:28:01 -06:00
Geoff Bourne
5dc833c108 For Auto CurseForge etc, increase default connection pool acquire timeout (#2497) 2023-11-17 14:25:23 -06:00
Geoff Bourne
feb6a41c11 Stream file downloads to avoid 2GB limit (#2493) 2023-11-14 12:42:02 -06:00
Geoff Bourne
92947c92dc docs: clarify the resolved value for %VAR% (#2490) 2023-11-13 07:52:53 -06:00
Geoff Bourne
e8ffa0fc0d docs: document JMX_PORT (#2489) 2023-11-12 21:31:42 -06:00
Geoff Bourne
4c0bd61faf docs: clarify placeholder intro (#2488) 2023-11-12 19:38:21 -06:00
Geoff Bourne
85a957fe6f Retain declared version for placeholder usage (#2486) 2023-11-12 16:10:03 -06:00
Geoff Bourne
37a5d50f70 Process placeholders in server properties values (#2484) 2023-11-12 13:21:16 -06:00
Geoff Bourne
eb279d0fa0 Allow pre-escaping unicode in server.properties (#2483) 2023-11-11 19:53:41 -06:00
Geoff Bourne
aba27ad444 Escape unicode in server.properties by default when less than 1.20 (#2480) 2023-11-11 14:05:00 -06:00
Geoff Bourne
f5c332736d Provide option to escape unicode in server.properties 2023-11-10 22:46:25 -06:00
Geoff Bourne
bf621356c1 Gracefully handle corrupt/invalid auto-install manifest files (#2476) 2023-11-10 10:43:31 -06:00
Geoff Bourne
19948065d5 auto-cf: exclude embeddium by default (#2472) 2023-11-07 14:39:00 -06:00
dependabot[bot]
3b7ddcdbbd build(deps): bump the patches group in /docs with 1 update
Bumps the patches group in /docs with 1 update: [mkdocs-material](https://github.com/squidfunk/mkdocs-material).

- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/9.4.7...9.4.8)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patches
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-11-06 09:00:03 -06:00
Geoff Bourne
8c74fc34cb build: java21 and java21-alpine images (#2464) 2023-11-03 17:33:10 -05:00
dependabot[bot]
89889c556b build(deps): bump mkdocs-static-i18n from 1.1.1 to 1.2.0 in /docs (#2459)
* build(deps): bump mkdocs-static-i18n from 1.1.1 to 1.2.0 in /docs

Bumps [mkdocs-static-i18n](https://github.com/ultrabug/mkdocs-static-i18n) from 1.1.1 to 1.2.0.
- [Changelog](https://github.com/ultrabug/mkdocs-static-i18n/blob/main/docs/changelog.md)
- [Commits](https://github.com/ultrabug/mkdocs-static-i18n/compare/1.1.1...1.2.0)

---
updated-dependencies:
- dependency-name: mkdocs-static-i18n
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Bump other docs dependencies together

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Geoff Bourne <itzgeoff@gmail.com>
2023-11-03 16:58:21 -05:00
Geoff Bourne
951a55707d build: upgrade easy-add built with Go 1.20.10 (#2462)
Also
* upgrade mc-monitor to Go 1.20.10
* upgrade restify to use Go 1.20.10
* upgrade rcon-cli to use Go 1.20.10
* upgrade mc-server-runner to use Go 1.20.10
2023-11-03 12:16:15 -05:00
Geoff Bourne
377273e5a3 Fail startup if server properties processing fails (#2460) 2023-11-01 19:08:31 -05:00
Kezzer
78fd5457d4 <doc>(server-properties):
- Add YAML multiline to render `GENERATOR_SETTINGS` code more readable
- Remove JSON code block above as it is now unnecessary
2023-10-27 11:25:29 -05:00
Kezzer
2e07ba431d <doc>(server-properties):
- Update generator_settings documentation in server-properties.md
2023-10-27 11:25:29 -05:00
Geoff Bourne
2dca9220e2 auto-cf: support excluding files from overrides (#2456) 2023-10-26 21:05:53 -05:00
dependabot[bot]
8ee9d6d2eb build(deps): bump the updates group with 1 update (#2452) 2023-10-24 08:42:01 -05:00
Jérémy Levilain
8faf560721 docs: refine deployment chapters and add Shulker section (#2454) 2023-10-23 07:38:59 -05:00
Geoff Bourne
a1d0830a8e docs: link to wiki from difficulty config (#2449) 2023-10-22 20:31:32 -05:00
Geoff Bourne
5642b8db35 auto-cf: for manual downloads, provide file page (#2444) 2023-10-18 21:19:52 -05:00
dependabot[bot]
ee562599f4 build(deps): bump the patches group in /docs with 2 updates (#2439)
Bumps the patches group in /docs with 2 updates: [mkdocs-material](https://github.com/squidfunk/mkdocs-material) and [mkdocs-static-i18n](https://github.com/ultrabug/mkdocs-static-i18n).


Updates `mkdocs-material` from 9.4.4 to 9.4.6
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/9.4.4...9.4.6)

Updates `mkdocs-static-i18n` from 1.1.0 to 1.1.1
- [Changelog](https://github.com/ultrabug/mkdocs-static-i18n/blob/main/docs/changelog.md)
- [Commits](https://github.com/ultrabug/mkdocs-static-i18n/compare/1.1.0...1.1.1)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patches
- dependency-name: mkdocs-static-i18n
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patches
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-16 14:00:30 -05:00
Geoff Bourne
1ffcb5c221 docs: clarify multi-line MOTD (#2441) 2023-10-16 13:59:43 -05:00
Geoff Bourne
8cdf4d0072 Ensure server.properties is processed as UTF-8 (#2437) 2023-10-15 23:09:51 -05:00
Geoff Bourne
1545236cc6 misc: Corrected utils import for start-setupRbac (#2436) 2023-10-14 17:25:35 -05:00
Geoff Bourne
2ebcc0fe00 MOTD no longer needs to be pre-normalized (#2434) 2023-10-13 15:54:45 -05:00
Geoff Bourne
e5f818bdf1 Sanitize mod file subpath in Modrinth modpacks (#2429) 2023-10-10 17:44:03 -05:00
dependabot[bot]
df497ce3d8 build(deps): bump mkdocs-static-i18n from 1.0.6 to 1.1.0 in /docs (#2425) 2023-10-10 08:46:13 -05:00
Geoff Bourne
f7ff2779d9 Resolve Modrinth projects for Quilt specifically (#2427) 2023-10-09 18:21:42 -05:00
dependabot[bot]
c9e14864f5 build(deps): bump the patches group in /docs with 1 update (#2424)
Bumps the patches group in /docs with 1 update: [mkdocs-material](https://github.com/squidfunk/mkdocs-material).

- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/9.4.3...9.4.4)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patches
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-10-09 18:03:20 -05:00
Geoff Bourne
ec539a5dd2 autopause: allow for DEBUG to be enabled (#2418) 2023-10-07 17:36:05 -05:00
Geoff Bourne
7427bc9043 build: fixing variant listing for java21-graalvm (#2416) 2023-10-07 15:19:01 -05:00
Geoff Bourne
8ab104f6b7 Added image variant for GraalVM Java 21 (#2415) 2023-10-07 14:07:24 -05:00
Geoff Bourne
f15cbb4ca1 Allow for custom server properties (#2414) 2023-10-07 13:26:27 -05:00
Geoff Bourne
fa235e97c5 Added support for NeoForge (#2408) 2023-10-03 18:00:24 -05:00
dependabot[bot]
d5e315bba8 build(deps): bump mkdocs-material from 9.3.1 to 9.4.3 in /docs (#2405) 2023-10-03 08:13:21 -05:00
dependabot[bot]
91ad2974ec build(deps): bump the patches group in /docs with 3 updates (#2399) 2023-10-02 07:37:09 -05:00
Geoff Bourne
59902566f3 docs: added examples page, starting with Geyser (#2404) 2023-10-01 17:42:15 -05:00
Geoff Bourne
411391baa1 Properly resolve latest file URLs from bukkit (#2402) 2023-09-30 12:14:31 -05:00
Misode
cadc48b41a Update Minecraft Wiki links to new domain after fork (#2400) 2023-09-27 21:28:53 -05:00
Geoff Bourne
1396a1ef6c build: update various github actions (#2397)
* build(deps): bump the patches group in /docs with 2 updates

Bumps the patches group in /docs with 2 updates: [mkdocs-literate-nav](https://github.com/oprypin/mkdocs-literate-nav) and [mkdocs-static-i18n](https://github.com/ultrabug/mkdocs-static-i18n).


Updates `mkdocs-literate-nav` from 0.6.0 to 0.6.1
- [Release notes](https://github.com/oprypin/mkdocs-literate-nav/releases)
- [Commits](https://github.com/oprypin/mkdocs-literate-nav/compare/v0.6.0...v0.6.1)

Updates `mkdocs-static-i18n` from 1.0.2 to 1.0.3
- [Changelog](https://github.com/ultrabug/mkdocs-static-i18n/blob/main/docs/changelog.md)
- [Commits](https://github.com/ultrabug/mkdocs-static-i18n/compare/1.0.2...1.0.3)

---
updated-dependencies:
- dependency-name: mkdocs-literate-nav
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patches
- dependency-name: mkdocs-static-i18n
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: patches
...

Signed-off-by: dependabot[bot] <support@github.com>

* build(deps): bump mkdocs-material from 9.2.7 to 9.3.1 in /docs

Bumps [mkdocs-material](https://github.com/squidfunk/mkdocs-material) from 9.2.7 to 9.3.1.
- [Release notes](https://github.com/squidfunk/mkdocs-material/releases)
- [Changelog](https://github.com/squidfunk/mkdocs-material/blob/master/CHANGELOG)
- [Commits](https://github.com/squidfunk/mkdocs-material/compare/9.2.7...9.3.1)

---
updated-dependencies:
- dependency-name: mkdocs-material
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* build(deps): bump docker/setup-qemu-action from 2.2.0 to 3.0.0

Bumps [docker/setup-qemu-action](https://github.com/docker/setup-qemu-action) from 2.2.0 to 3.0.0.
- [Release notes](https://github.com/docker/setup-qemu-action/releases)
- [Commits](https://github.com/docker/setup-qemu-action/compare/v2.2.0...v3.0.0)

---
updated-dependencies:
- dependency-name: docker/setup-qemu-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* build(deps): bump docker/build-push-action from 4.2.1 to 5.0.0

Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 4.2.1 to 5.0.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v4.2.1...v5.0.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* build(deps): bump docker/setup-buildx-action from 2 to 3

Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 2 to 3.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](https://github.com/docker/setup-buildx-action/compare/v2...v3)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* build(deps): bump docker/metadata-action from 4 to 5

Bumps [docker/metadata-action](https://github.com/docker/metadata-action) from 4 to 5.
- [Release notes](https://github.com/docker/metadata-action/releases)
- [Upgrade guide](https://github.com/docker/metadata-action/blob/master/UPGRADE.md)
- [Commits](https://github.com/docker/metadata-action/compare/v4...v5)

---
updated-dependencies:
- dependency-name: docker/metadata-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* build(deps): bump docker/login-action from 2 to 3

Bumps [docker/login-action](https://github.com/docker/login-action) from 2 to 3.
- [Release notes](https://github.com/docker/login-action/releases)
- [Commits](https://github.com/docker/login-action/compare/v2...v3)

---
updated-dependencies:
- dependency-name: docker/login-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>

* build: update various github actions

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-09-23 18:44:45 -05:00
Zyztem
0cf5195fc5 Fix a typo in the variable portion of the docs (#2385) 2023-09-15 21:00:05 -05:00
dependabot[bot]
17e2f90b91 build(deps): bump docker/build-push-action from 4.1.1 to 4.2.1 (#2380) 2023-09-13 08:08:53 -05:00
Geoff Bourne
a079dd0ff0 docs: remove note about getbukkit being down (#2382) 2023-09-13 07:53:05 -05:00
dependabot[bot]
c4d8972a83 build(deps): bump actions/checkout from 3 to 4 (#2379) 2023-09-11 07:29:29 -05:00
Geoff Bourne
b494124a2d docs: note the apparent death of getbukkit (#2377) 2023-09-09 14:08:51 -05:00
Geoff Bourne
d8ad2e5721 modrinth: provide dependencies download options (#2375) 2023-09-09 08:37:46 -05:00
Noa Himesaka
ec7bd14451 Add Oracle GraalVM to images (#2369) 2023-09-08 07:38:14 -05:00
Geoff Bourne
2097702daa modrinth: support plugin lookups that are compatible with selected loader (#2372) 2023-09-06 21:23:05 -05:00
dependabot[bot]
dc149eaa01 build(deps): bump mkdocstrings from 0.22.0 to 0.23.0 in /docs (#2368) 2023-09-04 09:13:50 -05:00
dependabot[bot]
f14b77db05 build(deps): bump the patches group in /docs with 1 update (#2367) 2023-09-04 09:09:17 -05:00
Geoff Bourne
df53fe3971 Removing chmod g+w at start to tighten security (#2363) 2023-08-29 22:01:34 -05:00
DanielN
bb57d7e99f Disable healthcheck for unsupported versions (#2360) 2023-08-27 09:41:42 -05:00
Geoff Bourne
03034d2f15 docs: clarified path for zip file modpack (#2361) 2023-08-26 13:38:14 -05:00
Geoff Bourne
8fd1495795 Support skipping existing whitelist/ops files and restore as default (#2358) 2023-08-22 21:34:47 -05:00
Geoff Bourne
dba2556e4e Corrected use of VERSION when building Bukkit from source (#2341) 2023-08-20 13:00:06 -05:00
Geoff Bourne
cdec1c0c19 modrinth: allow installer to ignore missing files (#2352) 2023-08-20 09:11:55 -05:00
Geoff Bourne
3aa0dd2db6 modrinth: resolve issue with null versionId in manifest (#2349) 2023-08-18 18:37:19 -05:00
Geoff Bourne
c3829aa435 docs: clarified FORGE_VERSION usage (#2348) 2023-08-18 08:15:32 -05:00
Geoff Bourne
356c1af046 modrinth: ensure requested loader for modpack is optional (#2347) 2023-08-17 17:14:08 -05:00
Geoff Bourne
6bd4de3af5 Fixed copying of OPS_FILE and WHITELIST_FILE (#2346) 2023-08-17 16:12:12 -05:00
Geoff Bourne
4040e971f5 Improve whitelist/ops handling with caching, UUID, and offline support (#2342) 2023-08-16 19:41:22 -05:00
Atlas16A
316b79bf72 Add Ngrok example (#2328) 2023-08-13 17:55:16 -05:00
Geoff Bourne
9eb1fbaf1f modrinth: rename input to MODRINTH_MODPACK (#2334) 2023-08-12 19:56:18 -05:00
Geoff Bourne
1cc0c8a0fc modrinth: resolve "only DEFLATED entries can have EXT" (#2332) 2023-08-12 09:48:18 -05:00
Geoff Bourne
c59414c5c1 packwiz: cache maven metadata (#2329) 2023-08-10 22:06:18 -05:00
Geoff Bourne
008693184e build: skip some of the setuponly tests by default (#2327) 2023-08-08 11:32:41 -05:00
Geoff Bourne
55df8b3d87 Set mc-monitor timeout less than health check timeout (#2326) 2023-08-08 11:02:37 -05:00
Geoff Bourne
5470245b45 docs: clarify stop grace period given announce delay (#2325) 2023-08-07 15:00:03 -05:00
Geoff Bourne
95d15555f4 Added CURSEFORGE_FILES support (#2322) 2023-08-06 15:12:29 -05:00
Geoff Bourne
3ffcbb32dd Corrected REMOVE_OLD_MODS to process file-wise (#2317) 2023-08-03 13:04:26 -05:00
Geoff Bourne
2fbe2bbe68 auto-cf: updated API parsing for NeoForge mod loader type (#2308) 2023-07-30 09:15:14 -05:00
Geoff Bourne
396d202d9f ftb: added FTB_FORCE_REINSTALL (#2305) 2023-07-29 20:09:54 -05:00
Geoff Bourne
cb6b793f37 docs: corrected Java 20 typo (#2301) 2023-07-21 15:02:29 -05:00
Sebastian Janzen
086552fbe5 typo (#2296) 2023-07-17 07:52:24 -05:00
Geoff Bourne
b028e655d2 Include SPIGET_RESOURCES support for hybrid server types (#2292) 2023-07-14 22:21:58 -05:00
Geoff Bourne
374fa9ad5b auto-cf: clarify why some mods need to be manually downloaded (#2288) 2023-07-13 08:06:52 -05:00
Geoff Bourne
7d8f70635c auto-cf: stop startup with info when manual mod downloads are needed (#2286) 2023-07-12 08:45:49 -05:00
Geoff Bourne
4d4d21e2fa Allow blank REPLACE_ENV_VARIABLE_PREFIX when processing in-place files (#2285) 2023-07-11 09:08:48 -05:00
Geoff Bourne
7f7636e85e Added auto-cf excludes for BMC1 Fabric (#2280) 2023-07-08 14:30:29 -05:00
Geoff Bourne
953e3bf8fc docs: added Better MC example (#2279) 2023-07-08 13:35:52 -05:00
Geoff Bourne
8fabf17c21 Allow REPLACE_ENV_VARIABLE_PREFIX to be an empty string (#2278) 2023-07-07 21:13:01 -05:00
Geoff Bourne
fc14b79a29 Use CXF compatible with Java 8 (#2277)
Also
- modrinth modpack support when optional env is absent
2023-07-07 16:58:14 -05:00
Geoff Bourne
3fb36477dd Corrected VERSION resolution with FTBA type (#2274) 2023-07-06 20:05:15 -05:00
Geoff Bourne
3311cf479f misc: add FABRIC to error message with expected types (#2272) 2023-07-06 09:11:12 -05:00
LeaderbotX400
fd8d6bb32a Add iris-flywheel-compat exclude to cf-exclude-include.json (#2271) 2023-07-05 11:36:16 -05:00
Geoff Bourne
7f4cf0fc48 misc: upgrade all Go tools to Go 1.20 (#2270) 2023-07-05 09:34:15 -05:00
Geoff Bourne
d3dd14c87d Remove .mc-health.env when not needed (#2267) 2023-07-03 18:18:52 -05:00
Geoff Bourne
b79014e47f examples: simplified filebrowser example (#2266) 2023-07-02 20:56:40 -05:00
Geoff Bourne
98e939d937 auto_cf: write mods needing manual download to file (#2263) 2023-07-02 09:22:12 -05:00
Geoff Bourne
2611551076 Ensure datapacks cleanup doesn't remove vanillatweaks (#2262) 2023-07-01 19:45:18 -05:00
Darion Spaargaren
4a942dbc02 Allow skipping autopause/autostop using a file (#2261) 2023-06-30 09:50:30 -05:00
Geoff Bourne
ce65bcc840 docs: adjusted wording of CF_MODPACK_ZIP option (#2260) 2023-06-28 19:07:25 -05:00
Max
d276c58d29 Fix typo in auto CurseForge docs (#2259) 2023-06-27 12:24:46 -05:00
Geoff Bourne
495c4440fd Update rcon-cli to remove config file loading message (#2258) 2023-06-26 08:43:26 -05:00
Geoff Bourne
bb472eb8b7 Added CUSTOM_JAR_EXEC (#2253) 2023-06-24 11:38:15 -05:00
Geoff Bourne
0bcd72cb0d build: use raw instead of match for stable tag metadata (#2251) 2023-06-23 14:04:44 -05:00
Geoff Bourne
ae46cd3ad2 build: use match instead of pep440 for stable tag selection (#2250) 2023-06-23 13:19:25 -05:00
Anton Bardov
b89844d5b2 Added support for Magma version tags (#2247) 2023-06-23 12:47:23 -05:00
Geoff Bourne
56d68a6e76 Corrected stable tag build configuration (#2249) 2023-06-23 11:56:27 -05:00
Geoff Bourne
a6c3943136 Provide stable image tag that tracks latest repo tag (#2248) 2023-06-23 11:40:47 -05:00
Geoff Bourne
d0f5227f58 modrinth: reduce API pressure with initial bulk get of projects (#2243) 2023-06-21 22:12:16 -05:00
Geoff Bourne
879d315a02 docs: tighten up wording in auto-pause section (#2241) 2023-06-20 08:14:35 -05:00
Geoff Bourne
c9c6147960 auto_cf: allow explicit inclusions to override default exclusions (#2240)
Also
- removed carry-on from default exclusions
2023-06-19 12:03:37 -05:00
dependabot[bot]
bfa74a73be build(deps): bump docker/build-push-action from 4.1.0 to 4.1.1 (#2238) 2023-06-19 08:20:19 -05:00
Geoff Bourne
b615dbf6c4 Add resolveVersion for TYPE=CURSEFORGE (#2237) 2023-06-18 19:58:29 -05:00
Geoff Bourne
e5fe913a74 Ensure VERSION is resolved from existing Fabric install (#2235)
Also
* Cleaned up some of the deployment docs info
2023-06-18 15:31:39 -05:00
Geoff Bourne
a566f99018 Fix up-to-date handling of MODS/PLUGINS/MODS_FILE (#2234) 2023-06-18 09:44:31 -05:00
Geoff Bourne
87e2f2b177 Switch Quilt and Purpur to image helper (#2229) 2023-06-17 13:00:22 -05:00
rela
55fb21cdd7 docs: add full working example tutorial in misc/deployment/ with link in intro (#2225) 2023-06-16 23:32:30 -05:00
Geoff Bourne
f9a97e3ac4 docs: add docker compose usage to intro (#2223) 2023-06-15 16:29:43 -05:00
Geoff Bourne
d5ce6e8db9 docs: corrected base image use in docs (#2220) 2023-06-14 22:28:22 -05:00
Craig J Smith
6359b5ce42 Update start-deployPaper (#2216) 2023-06-14 07:15:02 -05:00
Floris Brunet
8d53e82b33 Fix server types link. (#2217) 2023-06-14 07:14:43 -05:00
Geoff Bourne
83fa659b4d Use mc-image-helper for Purpur (#2215) 2023-06-13 21:35:09 -05:00
Geoff Bourne
89fb4e7f51 docs: updated development notes to use jwebserver (#2212) 2023-06-13 09:29:50 -05:00
Geoff Bourne
fc7d48e33f Switch to mc-image-helper for installing Paper/Folia (#2211) 2023-06-13 09:24:37 -05:00
Geoff Bourne
24f40c84ee docs: fixed building page formatting and added base image info (#2210) 2023-06-13 07:59:03 -05:00
dependabot[bot]
61bc034589 build(deps): bump docker/build-push-action from 3.3.0 to 4.1.0 (#2203)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 3.3.0 to 4.1.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v3.3.0...v4.1.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-12 13:50:36 -05:00
Geoff Bourne
bd8d7f8baf Sort other server property mappings (#2206)
And removed some redundant ones.
2023-06-12 13:43:34 -05:00
Geoff Bourne
38906e5775 Add ENFORCE_SECURE_PROFILE to docs table (#2205)
[Discussed in Discord](https://discord.com/channels/660567679458869252/660569641550217327/1117883383456993332)
2023-06-12 13:34:36 -05:00
dependabot[bot]
b874b2594b build(deps): bump docker/setup-qemu-action from 2.1.0 to 2.2.0 (#2202) 2023-06-12 07:40:30 -05:00
Geoff Bourne
c8ffbec928 For backward compatibility, allow MODS to list plugins for those server types (#2200) 2023-06-11 11:00:39 -05:00
Geoff Bourne
8a4dbb53e7 Corrected broken links in types and mods (#2199)
Also
- noted error seen when Java 8 is needed
2023-06-10 17:18:37 -05:00
Geoff Bourne
787c6bd08d Fixed example Geyser compose file (#2198) 2023-06-10 13:40:44 -05:00
Geoff Bourne
a5b7f8ac90 Improved handling of MODS and PLUGINS lists (#2197) 2023-06-10 12:51:49 -05:00
Geoff Bourne
3c1a83cc6a Clearer differentiation of mod platforms and types (#2179)
Also, skip version resolution for mod platforms.
2023-06-08 08:52:08 -05:00
Nexus Novaz
821428c8b1 Changed rcon password references from "minecraft" to randomly generated (#2186) 2023-06-06 14:53:01 -05:00
Geoff Bourne
07fc81a442 Corrected primary image taggging (#2184) 2023-06-05 19:41:50 -05:00
Ryan Hullah
12d236fc26 Update Vault Hunters example to Update-10.0.0 (#2182) 2023-06-05 19:09:38 -05:00
Nexus Novaz
8cafeb508f Fixed Server Type link on index.md (#2178) 2023-06-04 11:06:10 -06:00
Geoff Bourne
ccb971d181 docs: info for plugins that can't download via Spiget (#2168) 2023-05-31 16:05:01 -05:00
Geoff Bourne
2b8cb975f9 docs: don't use EssentialsX as Spiget example (#2167)
...since it is one of those that doesn't allow automated downloads.

[Discussed in Discord](https://discord.com/channels/660567679458869252/660569641550217327/1113565094228529255)
2023-05-31 15:47:28 -05:00
Geoff Bourne
bc4ffe6493 build: use multi-arch platforms in verify-pr (#2166)
...and corrected for lack of arm/v7 support in eclipse-temurin:20-jre image
2023-05-31 13:14:05 -05:00
chblodg
e443d6ecf4 Moving Java 19 to 20 and adding Alpine (#2162) 2023-05-31 11:15:30 -05:00
Geoff Bourne
1aed25905d Request docker pull in bug issue template (#2160) 2023-05-30 16:30:10 -05:00
Geoff Bourne
ebf59f0a83 docs: clarify bind mounts for Podman also (#2157) 2023-05-29 13:55:18 -05:00
Geoff Bourne
adeee3135f docs: add doc site banner and fix corrupted image files (#2156) 2023-05-29 13:33:59 -05:00
Geoff Bourne
1932f0cfd4 docs: mkdocs cleanup and caught up with latest README changes (#2155) 2023-05-28 16:14:57 -05:00
Geoff Bourne
f1e5e48950 docs: corrected site/repo URLs in mkdocs config (#2153) 2023-05-28 13:41:01 -05:00
Geoff Bourne
6a079f0a1d docs: add RTD badge (#2152) 2023-05-28 13:35:52 -05:00
Geoff Bourne
a428133e47 docs: collapse deprecated sections (#2151) 2023-05-28 13:18:32 -05:00
Geoff Bourne
1f2f893841 docs: prep for readthedocs import (#2150) 2023-05-28 12:59:05 -05:00
Geoff Bourne
e17f958bce docs: re-home mkdocs sources within this repo (#2149) 2023-05-28 12:55:47 -05:00
Florian Freudiger
bab381d058 Include Log4jPatcher javaagent (#2148) 2023-05-28 11:38:54 -05:00
Geoff Bourne
b64cf0b84f auto-cf: handle download repo files with + for spaces (#2146) 2023-05-24 22:19:10 -05:00
Geoff Bourne
a6a6e500c1 Added default auto-cf exclusions for MC Eternal (#2143) 2023-05-24 19:32:56 -05:00
Geoff Bourne
37974c5ff4 Clarify mods and plugins Modrinth support (#2135) 2023-05-18 08:23:34 -05:00
Geoff Bourne
a6139a48aa Support Quilt mod loader for Modrinth modpacks (#2132) 2023-05-15 22:57:48 -05:00
Geoff Bourne
cd63fc882a Updated Modrinth modpacks to use VERSION and support id, name, or number for project version (#2130) 2023-05-15 18:23:43 -05:00
Geoff Bourne
54f310e50f Added support for Modrinth modpacks as a server type (#2128) 2023-05-14 13:09:54 -05:00
Geoff Bourne
a34d315d63 Corrected webp package name for OracleLinux (#2114) 2023-05-03 09:10:46 -05:00
Geoff Bourne
11e21672bb Add webp package for dynmap support (#2113) 2023-05-03 09:00:27 -05:00
Geoff Bourne
c635a7dcdb autocf: allow manifest JSON to be provided (#2111) 2023-04-30 21:25:07 -05:00
Geoff Bourne
a3a270bf39 docs: added filebrowser sidecar example (#2110) 2023-04-30 11:43:43 -05:00
StealthCT
d4165cd9c3 Update Canyon CI link to Glass Launcher (#2109) 2023-04-30 10:50:31 -05:00
StealthCT
828137fcdb Download Canyon from GitHub for final build (#2108) 2023-04-30 08:57:22 -05:00
Geoff Bourne
bad30b5022 autocf: add support for mods downloads repo (#2106) 2023-04-29 20:30:59 -05:00
Geoff Bourne
982f40e4b4 Add JSON5 support for patch files (#2105) 2023-04-28 22:29:00 -05:00
Geoff Bourne
d0dcc686b0 autocf: remove usage of old parallel downloads option (#2095) 2023-04-23 22:05:03 -05:00
Geoff Bourne
ac62fdeec8 modrinth: ensure non-required dependency doesn't mask explicit project request (#2094) 2023-04-23 17:27:11 -05:00
Geoff Bourne
d5e0fb23de Probably quote content passed to mc-send-to-console (#2093) 2023-04-23 12:44:27 -05:00
Geoff Bourne
031e1d759b Base Java 19 image on focal (#2087) 2023-04-19 08:10:26 -05:00
khankul
687d987211 Remove LoliServer from README.md (#2079) 2023-04-15 20:16:44 -05:00
Geoff Bourne
8abe26ab3d autocf: avoid extra parallelism while resolving modpack content (#2083) 2023-04-14 08:25:03 -05:00
Marie
834127db2e Add Folia support (#2081) 2023-04-13 21:55:58 -05:00
Geoff Bourne
3019388864 forge: support 1.11.2 installer ID format (#2076) 2023-04-11 22:24:24 -05:00
Geoff Bourne
53a8151d26 ci: fixed image tagging for master branch 2023-04-10 10:48:42 -05:00
Ryan Conrad
3e9e64e788 Deploy images to both dockerhub and ghcr (#2051)
Co-authored-by: Geoff Bourne <itzgeoff@gmail.com>
2023-04-09 10:39:26 -05:00
Geoff Bourne
326c43e544 autocf: use VERSION resolved from modpack (#2072) 2023-04-08 19:03:46 -05:00
Geoff Bourne
f6ab2aaab3 By default, generate random RCON password at startup (#2071) 2023-04-07 20:05:09 -05:00
Geoff Bourne
8987d2cc81 Disabling packwiz test since maven.packwiz.infra.link unresolvable (#2065) 2023-04-04 22:24:18 -05:00
Geoff Bourne
45d5fd1a97 Fetch connection pool max idle timeout configurable 2023-04-04 22:07:15 -05:00
Geoff Bourne
93c0cead40 Tweak level of new docs link (#2063) 2023-04-04 08:26:44 -05:00
Ryan Conrad
195d35214b updated the readme to include the link to the docs site. (#2061) 2023-04-03 21:37:22 -05:00
Geoff Bourne
2de3efea15 Update CF_API_KEY example for docker run (#2060) 2023-04-03 09:38:17 -05:00
Geoff Bourne
0599fa64c2 With AUTO_CURSEFORGE handle modpacks not allowed for distribution by author (#2059) 2023-04-02 18:19:42 -05:00
Geoff Bourne
94df6cca20 Redacts sensitive headers from debugs like with AUTO_CURSEFORGE (#2058) 2023-04-01 21:34:00 -05:00
Geoff Bourne
6fb34cd256 Downloads handle content disposition filename with RFC 2047 encoding (#2057) 2023-04-01 14:12:56 -05:00
Ryan Conrad
0d5e44a338 Auto CurseForge, added docs to use env file (#2054) 2023-03-30 17:44:30 -05:00
Ryan Conrad
cffe4012aa added information on the escaping of $ in the CF API Key (#2050) 2023-03-30 13:15:51 -05:00
Geoff Bourne
909ea4e214 autocf: determine mod file availability from downloadUrl (#2046) 2023-03-30 08:03:39 -05:00
Geoff Bourne
106996f06f autocf: switch to official CurseForge API, but needs CF_API_KEY (#2043) 2023-03-29 21:00:39 -05:00
Geoff Bourne
d672b3878f autocf: ensure modpack query is not cached too much (#2040) 2023-03-27 21:20:38 -05:00
dependabot[bot]
0d71ace7df build(deps): bump actions/stale from 7 to 8 (#2036) 2023-03-27 08:20:24 -05:00
Geoff Bourne
bee51671bf forge: support version discovery of 1.5, 1.7 installer (#2032) 2023-03-25 14:10:26 -05:00
James Mighion
ab2f77d8ba Adding rootless autopause instructions to the readme. (#2030) 2023-03-24 12:00:11 -05:00
Geoff Bourne
f1aad07804 Fix curl usage for knockd install (#2027) 2023-03-21 20:12:21 -05:00
Metalcape
e7084c233e Fix autopause not working in java8 (#2025) 2023-03-21 13:37:55 -05:00
Geoff Bourne
7f3c3b2d64 autocf: fixed issue where exclude file alone was ignored (#2024) 2023-03-21 08:13:21 -05:00
Geoff Bourne
f6493892e5 autocf: allow for exclude/include file and list (#2019) 2023-03-19 20:00:01 -05:00
Geoff Bourne
0dd3e9e9b7 autocf: adjusted excludes for valhesia-5 (#2018) 2023-03-19 18:42:08 -05:00
Geoff Bourne
db3fbd8cd1 Fixing Modrinth projects support for non-Forge (#2016) 2023-03-17 22:15:01 -05:00
Geoff Bourne
e01fe46645 autocf: improve error message when modpack file is missing manifest (#2015) 2023-03-17 21:29:36 -05:00
Yorick Bosman
f2b3f6ea48 Correcting and extending vanillatweaks example (#2013) 2023-03-17 14:24:16 -05:00
Geoff Bourne
8ae707954b Extract versions from provided Forge installer (#2012) 2023-03-17 08:40:21 -05:00
Geoff Bourne
08d8472579 Allow for latest Forge version to be behind vanilla version (#2006) 2023-03-14 22:10:21 -05:00
Geoff Bourne
0f359dbf82 Verify java compatibility for AUTO_CURSEFORGE (#2005) 2023-03-14 07:59:33 -05:00
Metalcape
e217ac503e Use modified knockd to set a cooldown on port 19132 (#2003) 2023-03-12 13:40:35 -05:00
Geoff Bourne
e43669d792 Clarify in docs to not port forward RCON unless secure (#2004) 2023-03-12 11:58:43 -05:00
Geoff Bourne
cf4fed616a Unzip Modrinth files that are zips (#1992) 2023-03-05 16:22:01 -06:00
Geoff Bourne
6d5b7b4362 Fix Modrinth download when no version files are primary (#1991) 2023-03-05 12:47:20 -06:00
Geoff Bourne
9b538267a1 Ensure Modrinth support specifies paper/purpur loader as needed (#1990) 2023-03-05 08:55:19 -06:00
Geoff Bourne
b7e93e56e5 Revert "modrinth: adapt version lookup to API changes (#1987)" (#1989)
This reverts commit 3624dc02a3.
2023-03-05 08:25:35 -06:00
Geoff Bourne
3624dc02a3 modrinth: adapt version lookup to API changes (#1987) 2023-03-04 09:34:09 -06:00
Geoff Bourne
705e266f76 autocf: modpack fileName included in manifest (#1977) 2023-02-25 10:18:34 -06:00
Geoff Bourne
a18a274c6c autocf: ensure modpack listing API always provides up to date (#1974) 2023-02-23 12:58:12 -06:00
Connor
19c39f8e53 auto_cf: added rubiddium dynamic lights to exclude list (#1971) 2023-02-23 07:59:34 -06:00
Tr4il
b40bd508f8 Update cf-exclude-include.json (#1970) 2023-02-21 16:52:20 -06:00
Geoff Bourne
9dbc210caf autocf: longer default request timeout (#1966) 2023-02-19 15:41:45 -06:00
Geoff Bourne
2cdb7b2da7 Revert "With autopause check for process in stopped or sleep state (#1963)" (#1964)
This reverts commit 4df1db9535.
2023-02-14 21:22:51 -06:00
Geoff Bourne
4df1db9535 With autopause check for process in stopped or sleep state (#1963) 2023-02-14 20:42:11 -06:00
Geoff Bourne
812b64045d auto_cf: allow networking timeouts to be configured (#1961) 2023-02-13 20:51:10 -06:00
Geoff Bourne
f65d51fff8 Adjusted Update Going from docker run to compose.drawio.png 2023-02-11 14:45:47 -06:00
Ryan Hullah
fd2dfe3f0e Add source dir override for /plugins, /mods, and /config (#1957) 2023-02-08 20:30:28 -06:00
Geoff Bourne
d9b738f670 Handle interpolating sync'ed files when value has dollar sign (#1954) 2023-02-05 16:55:03 -06:00
Geoff Bourne
b8a7bf5a1d Use mc-image-helper for checking autopause interface (#1952) 2023-02-04 20:53:46 -06:00
Geoff Bourne
822bf929c9 auto-cf: properly handle mod URLs with unicode (#1950) 2023-02-04 13:16:16 -06:00
Geoff Bourne
b400dfbb74 autopause: improve network interface lookup (#1949) 2023-02-04 10:57:06 -06:00
Geoff Bourne
1c670815d2 auto-cf: correctly handle modpack slug that clashes with mod slug (#1947) 2023-02-03 13:54:50 -06:00
Geoff Bourne
184d5b50d2 Handle installation of older Fabric versions (#1945) 2023-02-02 21:05:54 -06:00
Nguyen Hoang Tuan
5624faebe7 Modrinth per project version type declaration (#1939) 2023-01-31 08:00:58 -06:00
Just Mango
104eac4e14 Upgrade image helper to allow modrinth specific version id declaration (#1938) 2023-01-29 14:54:28 -06:00
Geoff Bourne
e0069692e0 Upgrade image helper to debug log file download duration and rate (#1936) 2023-01-28 12:56:09 -06:00
Geoff Bourne
03aaf45879 Fix handling of CF modpack overrides when files before directories (#1932) 2023-01-27 08:22:04 -06:00
Geoff Bourne
08b5303bd8 Improve docs for file reference options for AUTO_CURSEFORGE (#1931) 2023-01-26 17:52:57 -06:00
Geoff Bourne
8efb486c56 For AUTO_CURSEFORGE, can auto-set LEVEL from world save provided by modpack (#1929) 2023-01-26 13:46:48 -06:00
Geoff Bourne
2701fe5add docs: fixed volumes typo in docker-compose-paper.yml example (#1928) 2023-01-26 09:24:36 -06:00
Geoff Bourne
906e6787ae build: disable provenance on image build (#1922) 2023-01-24 08:02:21 -06:00
Geoff Bourne
a08bf868c8 docs: Added examples of AUTO_CURSEFORGE and MEMORY info (#1920) 2023-01-23 20:21:08 -06:00
LeaderbotX400
b90f980d3b Add more rubidium mods to AUTO_CURSEFORGE exclusions (#1919) 2023-01-23 10:52:29 -06:00
Geoff Bourne
1e0d12869f Upgrade image helper to fix Forge 1.7.x downloads (#1917) 2023-01-20 09:08:13 -06:00
Geoff Bourne
1c73b818fd Add legendary-tooltips to exclusions (#1915) 2023-01-18 21:50:11 -06:00
Geoff Bourne
5bc6b4e12b Upgrade rcon-cli to 1.6.1 (#1913) 2023-01-17 15:09:13 -06:00
Geoff Bourne
7b1bd0bdb2 docs: Added a diagram showing docker run to compose (#1912) 2023-01-17 13:29:26 -06:00
dependabot[bot]
a701723cc1 build(deps): bump docker/build-push-action from 3.2.0 to 3.3.0 (#1911)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 3.2.0 to 3.3.0.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v3.2.0...v3.3.0)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-01-16 21:51:23 -06:00
Geoff Bourne
2cde42b96e Fix usage when given forge installer is in data directory (#1909) 2023-01-15 14:58:44 -06:00
Geoff Bourne
81571483e7 AUTO_CURSEFORGE ensure modloader up to date even when modpack is (#1907) 2023-01-14 20:59:48 -06:00
Geoff Bourne
3f23c67098 AUTO_CURSEFORGE by default use exclude/include from latest in repo (#1906) 2023-01-14 15:17:12 -06:00
Geoff Bourne
b23593aec6 Use slugs or IDs for include/excludes with AUTO_CURSEFORGE and option for file declaration (#1905) 2023-01-14 12:52:35 -06:00
Geoff Bourne
14cf300e82 Add image tag/variant for Java 19 JRE (#1902) 2023-01-13 08:44:13 -06:00
Geoff Bourne
f8ea9d49f5 For AUTO_CURSEFORGE, fixed typo with CF_EXCLUDE_MODS (#1901) 2023-01-12 21:46:04 -06:00
Geoff Bourne
c0be7dbb95 For AUTO_CURSEFORGE, provide the option to force include mods (#1900) 2023-01-12 20:37:20 -06:00
Geoff Bourne
8017379723 Use parallel downloads for AUTO_CURSEFORGE (#1899) 2023-01-12 18:59:12 -06:00
Geoff Bourne
df0c57d111 Correct AUTO_CURSEFORGE to also include library mods and ability to exclude specific mods (#1897) 2023-01-12 08:39:28 -06:00
Geoff Bourne
8d3ec29a44 Correct AUTO_CURSEFORGE to only grab server mods (#1896) 2023-01-11 20:53:58 -06:00
Geoff Bourne
c15b13d07d docs: adjusted auto CurseForge section (#1890) 2023-01-09 08:22:11 -06:00
Geoff Bourne
48367b7c1f Support automatically downloading and upgrading CurseForge modpacks (#1889) 2023-01-08 19:15:24 -06:00
Geoff Bourne
dd6cda1ae5 Add Modrinth plugins support for Spigot/Paper (#1885) 2023-01-02 13:29:20 -06:00
Geoff Bourne
877486802c Emphasize cause analysis when minecraft server fails (#1883) 2023-01-01 09:24:17 -06:00
Geoff Bourne
7be36cc2cf Restore FORGE_INSTALLER (again) using mc-image-helper (#1880) 2023-01-01 09:12:39 -06:00
Geoff Bourne
c9341ec125 Added FORCE_REDOWNLOAD support for Bukkit/Spigot (#1879) 2022-12-28 14:05:31 -06:00
dependabot[bot]
95da3c52bc build(deps): bump actions/stale from 6 to 7 (#1877) 2022-12-26 08:10:12 -06:00
Geoff Bourne
6bab6766d4 Noted not using quotes in environment list syntax (#1875) 2022-12-23 21:35:52 -06:00
Torge Rosendahl
93f31f5ddc Fixed format as code for MOTD newline escape (#1873) 2022-12-23 11:37:07 -06:00
Geoff Bourne
ef9318f22e Allow DEBUG env var to enable mc-image-helper debug logs (#1870) 2022-12-20 10:11:54 -06:00
Geoff Bourne
ef141af30b Clarify whitelist variables (enable vs enforce) (#1860) 2022-12-11 08:51:26 -06:00
Jordy Hulck
d0c6143c0c Add launch.sh start script to support multiple classic Technic modpacks (#1859) 2022-12-09 18:26:16 -06:00
Geoff Bourne
e41ea3d1c8 Logs when downloading vanilla server jar were confusing (#1856)
Also:
- added info for multi-line MOTD
2022-12-07 08:27:43 -06:00
Geoff Bourne
940323f1b3 Bump mc-image-helper to 1.22.11 (#1854) 2022-12-05 07:05:50 -06:00
Geoff Bourne
bc572bd523 Let FTB installer manage file removal during version change (#1851) 2022-12-01 07:52:14 -06:00
Geoff Bourne
144e5c2a93 Revert "Use HTTP accept when downloading CF modpack (#1837)" (#1850)
This reverts commit d36bece851.
2022-11-27 09:19:28 -06:00
ThomWilhelm
5e20684b2b Added nfs client support packages. (#1843) 2022-11-26 21:49:21 -06:00
xyqyear
ff1e76c82c Fix typo in README: "has does" -> "has done" (#1846) 2022-11-25 09:51:05 -06:00
Geoff Bourne
a7d44f61bb Allow for commas in mc-image-helper lists (#1840)
Bumped mc-image-helper to 1.22.8
2022-11-23 11:45:39 -06:00
Geoff Bourne
d36bece851 Use HTTP accept when downloading CF modpack (#1837) 2022-11-23 09:32:25 -06:00
Pascal Sthamer
70c826e546 Add SERVER-START.sh as a possible entry script file name (#1838) 2022-11-23 08:21:03 -06:00
Geoff Bourne
ec4f3ab740 Add a lot of clarification to RCON documentation (#1835) 2022-11-21 13:55:39 -06:00
Kyle Stang
2fc45d6650 Add .paused file when server is paused (#1830) 2022-11-17 08:45:15 -06:00
Geoff Bourne
8b5a3f2077 Removed pre-1.12 empty JSON file conversion (#1826) 2022-11-13 20:59:13 -06:00
Geoff Bourne
e22acf63e9 Added multi-project example (#1824)
Also
* Adjusted spiget wordings
2022-11-13 16:48:30 -06:00
Geoff Bourne
26368810e7 Bump mc-server-runner to 1.8.2 (#1823) 2022-11-13 15:41:46 -06:00
Chip Wolf ‮
46a09ed331 Add option to skip generic pack checksum (#1816) 2022-11-10 07:05:47 -06:00
Geoff Bourne
0d9bfa6478 Document command to find host path of anonymous volume (#1811) 2022-10-30 09:08:58 -05:00
kylekrejci
885a921b08 Remove duplicate VIEW_DISTANCE env variable (#1808) 2022-10-29 14:04:47 -05:00
Geoff Bourne
5e2553274f Added kustomize base files (#1800) 2022-10-23 22:00:16 -05:00
Geoff Bourne
1769f28015 Added example of INITIAL_ENABLED_PACKS (#1799) 2022-10-22 20:52:36 -05:00
Geoff Bourne
17cf058aa4 Added support for datapack enable/disable properties for feature flags (#1798) 2022-10-22 15:30:08 -05:00
Phongsakorn Wisetthon
ad912fe7bf Using spiget, if REMOVE_OLD_MODS = true redownload plugins (#1792) 2022-10-22 15:04:28 -05:00
dependabot[bot]
c46890f9b1 build(deps): bump docker/build-push-action from 3.1.1 to 3.2.0 (#1790) 2022-10-17 09:10:02 -05:00
dependabot[bot]
c4015f4ccb build(deps): bump docker/setup-qemu-action from 2.0.0 to 2.1.0 (#1789) 2022-10-17 07:47:36 -05:00
Geoff Bourne
c1d8dc9bb0 Improved naming of FORGE_FORCE_REINSTALL and FORGE_VERSION (#1788) 2022-10-16 17:49:25 -05:00
Geoff Bourne
2e69966a6a Emphasize java 8 requirement for Forge < 1.18 (#1787) 2022-10-15 15:19:23 -05:00
Geoff Bourne
ec06e3bfeb Added more description of DATAPACKS variables (#1784) 2022-10-14 15:36:53 -05:00
Geoff Bourne
1c9e31c630 Only default MOTD and WHITELIST when first creating server.properties (#1780) 2022-10-12 22:09:56 -05:00
Geoff Bourne
8f5cc315d9 Setup MEMORY variables earlier to allow use in Spigot build (#1779) 2022-10-12 19:23:01 -05:00
Geoff Bourne
61592d5c3e Prevent generic modpack overwriting eula file (#1773) 2022-10-08 18:25:42 -05:00
Geoff Bourne
57dc84e204 Auto-manage server properties by default (#1769) 2022-10-08 18:11:43 -05:00
Geoff Bourne
c61df8d32e Updated docs for finding FTB modpack ID (#1766) 2022-10-07 21:44:18 -05:00
Geoff Bourne
c228465ff1 Added ARMv7 build for java8-multiarch (#1765) 2022-10-07 21:19:08 -05:00
J Thompson
1b44fc87dd Remove packwiz 403 readme documentation (#1763) 2022-10-07 07:12:06 -05:00
J Thompson
7076fb83da BetterMC Plus Example (#1762) 2022-10-06 07:44:12 -05:00
J Thompson
5338f1e0f4 Create docker-compose-curseforge-atm7.yaml (#1761) 2022-10-05 21:44:13 -05:00
dependabot[bot]
8ab5542c82 build(deps): bump actions/stale from 5 to 6 (#1751) 2022-09-26 08:06:01 -05:00
Geoff Bourne
96a21ff6e6 Upgrade mc-monitor to allow option to use mcutils for long FML2 listings (#1746) 2022-09-22 20:44:51 -05:00
Geoff Bourne
a57d678fdd Allow image helper get to use user info (#1735) 2022-09-17 10:45:41 -05:00
Ceci
d4692d2d07 fix(packwiz): provide side argument to packwiz (#1734) 2022-09-15 11:43:11 -05:00
Geoff Bourne
a1e4657e62 Fixed bug causing isTrue to fail (#1727) 2022-09-10 14:39:44 -05:00
Geoff Bourne
fabe14db49 Download and use packwiz from Maven repository (#1725)
Also
* Added github actions debug support
* added use of fileNotExists
2022-09-10 12:58:32 -05:00
Geoff Bourne
4d3464f3f1 Change versionLessThan to work in strict mode (#1723) 2022-09-08 20:23:34 -05:00
Geoff Bourne
d6de14123b Corrected Modrinth usage with TYPE=FORGE (#1719) 2022-09-05 18:21:11 -05:00
Geoff Bourne
247855c2cf Upgrade mc-image-helper to 1.22.4 (#1715) 2022-09-04 22:50:00 -05:00
Geoff Bourne
364f73c9d9 Adjusted mc-image-helper to use logback for java8 (#1713) 2022-09-04 18:14:33 -05:00
Geoff Bourne
7723cb0a41 Correctly parse modrinth dependencies declared as embedded (#1710) 2022-09-03 17:46:08 -05:00
Geoff Bourne
0e0bb09533 Show IP address that caused auto-pause to resume (#1709)
Also
* Refactored auto files, server.properties, and rcon-cmds
2022-09-03 16:48:14 -05:00
Geoff Bourne
417a65a3af Fixed issue with GENERIC_PACK where it exits after saving checksum (#1708) 2022-09-03 10:11:58 -05:00
Dov Alperin
3c131f853d Use pkill by default for autostop feature (#1707) 2022-09-02 18:14:10 -05:00
Geoff Bourne
cca9b3e21d docs: clarify placeholder usage with _FILE suffix (#1704) 2022-09-01 08:39:04 -05:00
J Thompson
e81cddd108 Added example for GENERIC_PACK TNP5 (#1698) 2022-08-28 17:43:57 -05:00
Geoff Bourne
1bc566c69a docs: Corrected versions required for FTBA (#1689) 2022-08-21 15:41:05 -05:00
Nolan Rosen
4f8104737e Updated GH_TOKEN usage (#1688) 2022-08-21 15:31:54 -05:00
Nolan Rosen
de43778eb9 Updates for GH_TOKEN addition for packwiz support (#1687) 2022-08-21 14:06:50 -05:00
Geoff Bourne
3310f0a069 Fix FORGEVERSION and FORGE_INSTALLER support (#1677) 2022-08-15 08:23:16 -05:00
Geoff Bourne
05b8899de6 Don't show server properties by default and obscure passwords (#1670) 2022-08-14 14:14:57 -05:00
Geoff Bourne
7a85cb5f39 Perform clean Forge version changes (#1669)
Switched to mc-image-helper
2022-08-14 13:34:08 -05:00
Gustave Abel Michel III
380ea202dc Updated LegacyJavaFixer Download URL (#1667) 2022-08-13 10:49:33 -05:00
dependabot[bot]
83d99f35f9 build(deps): bump docker/build-push-action from 3.1.0 to 3.1.1 (#1660)
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 3.1.0 to 3.1.1.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v3.1.0...v3.1.1)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2022-08-12 15:51:09 -05:00
Geoff Bourne
0f85646c69 Output expected files when FTBA prep fails (#1656) 2022-08-06 16:24:47 -05:00
Geoff Bourne
75afcc2fce build: corrected name of PR workflow 2022-08-05 21:45:18 -05:00
Geoff Bourne
94b2d8996d FTBA installer on Alpine fails gracefully (#1655) 2022-08-05 21:42:58 -05:00
Geoff Bourne
72b6eeba75 build: only login to DockerHub when credentials available (#1645) 2022-08-02 22:47:35 -05:00
Noa Himesaka
68a514e589 Install procps-ng on Oracle Linux-based images for autopause (#1644) 2022-08-02 22:04:13 -05:00
Geoff Bourne
2df678e96a Added debug options for autopause/stop (#1638) 2022-07-30 12:06:22 -05:00
Geoff Bourne
8dbfff1873 Allow for multiple patterns in REMOVE_OLD_MODS_INCLUDE/EXCLUDE (#1637) 2022-07-29 21:28:04 -05:00
dependabot[bot]
c83705157c build(deps): bump docker/build-push-action from 3.0.0 to 3.1.0 (#1629) 2022-07-25 06:18:12 -05:00
Geoff Bourne
c5d4e4d8ca Added top-level docker compose file (#1628) 2022-07-24 21:26:34 -05:00
Geoff Bourne
e70525b2ff Added jdk image tags to java versions table (#1626) 2022-07-24 09:07:35 -05:00
Khoo Hao Yit
c5e91ff823 fix typo in README.md (#1623) 2022-07-22 11:38:09 -05:00
Geoff Bourne
5cec41319d Download and use Magma server jar rather than installer (#1618) 2022-07-20 21:14:38 -05:00
Geoff Bourne
eb22d4cadc build: perform validation on all base images for PRs (#1610) 2022-07-20 20:24:05 -05:00
Jawa_Juice
a0a046f9f6 Remove Airplane as discontinued (#1615) 2022-07-19 08:23:01 -05:00
Cayce House
9210044b8d fix #1612 (#1614) 2022-07-19 07:28:58 -05:00
Noa Himesaka
df203d4b4b Fix GraalVM images error on AArch64 systems (#1609) 2022-07-17 10:06:33 -05:00
Cayce House
16a958d129 Choose shortest path for generic pack base (#1608)
Co-authored-by: Cayce House <cayce@house.email>
2022-07-16 17:05:44 -05:00
Noa Himesaka
76628e8ccc Fixing zstd uncompression for Oracle Linux (#1607) 2022-07-16 11:05:32 -05:00
Noa Himesaka
e8f3fd2d71 Add GraalVM CE support (#1601) 2022-07-16 10:11:11 -05:00
Geoff Bourne
fac72eac9d TYPE=CURSEFORGE also looks for start.sh (#1605) 2022-07-16 10:01:08 -05:00
Gabriel Simmer
f4eac20ff8 Default -> default in limbo world name (#1604)
See #994 - Limbo will pass along the world name verbatim, but Minecraft (doesn't appear to) allow uppercase letters in world names.
2022-07-16 09:33:18 -05:00
Geoff Bourne
e3a29180fd Handle packwiz bootstrap installer already being present (#1595) 2022-07-11 22:27:07 -05:00
Geoff Bourne
51f1a08f6e docs: Updated readiness and liveness probes in k8s example (#1592) 2022-07-09 17:30:08 -05:00
Geoff Bourne
5a507f800f VanillaTweaks uses mc-image-helper and auto-cleans old files (#1581) 2022-06-29 22:17:23 -05:00
Mikkel D
ab47b06ba9 Update Magma API to V2 (#1580) 2022-06-28 07:15:32 -05:00
Geoff Bourne
7001f2bcba Added support for downloading mods from Modrinth (#1577) 2022-06-27 09:08:21 -05:00
Geoff Bourne
8d7a5275a8 docs: Updated description of LEVEL_TYPE (#1575) 2022-06-22 13:04:27 -05:00
Geoff Bourne
30fa6d02c7 build: output time spent on each setuponly test (#1569) 2022-06-18 09:56:53 -05:00
Davide A
a18cf3348a packwiz manually download bootstrap and skip update when initial download fails 2022-06-17 09:21:41 -05:00
Mathéo CIMBARO
a84cdaf355 Added support for optimized SIMD operations (#1570) 2022-06-16 18:19:15 -05:00
Mathéo CIMBARO
23c8fc65a4 Added support for Pufferfish 1.19 (#1566)
* Added support for Pufferfish 1.19

* Update scripts/start-deployPufferfish

Co-authored-by: Geoff Bourne <itzgeoff@gmail.com>

* Removed wrong negation

Co-authored-by: Geoff Bourne <itzgeoff@gmail.com>
2022-06-16 15:19:04 -05:00
Geoff Bourne
f8acb832f1 Ensure PURPUR_DOWNLOAD_URL has a default (#1568) 2022-06-16 08:39:25 -05:00
Bensuperpc
b6dbcbde02 Add custom download URL for Purpur (#1563) 2022-06-15 06:51:41 -05:00
Geoff Bourne
f5f09302b2 docs: added itzg/rcon to related projects 2022-06-12 08:39:46 -05:00
Caden Kriese
512fa7fbd4 Add 1.19 server properties (#1558) 2022-06-11 19:31:26 -05:00
Geoff Bourne
9458005b5b Resolve latest Paper version when no published builds (#1555) 2022-06-08 11:12:49 -05:00
Geoff Bourne
b1be888dd4 docs: Clarify the volume mounting example (#1549) 2022-06-05 16:05:57 -05:00
chblodg
4f9de809f8 updating forgeapi tests and adding is false (#1548)
Co-authored-by: christopher blodgett <christopher.blodgett@gmail.com>
2022-06-05 15:16:12 -05:00
Geoff Bourne
1fb04c069c Place EULA file into subdir managed by ServerSetup (#1543) 2022-05-30 13:07:25 -05:00
Geoff Bourne
fd2431046c misc: Removed 88135 from spiget test (#1541) 2022-05-30 13:07:06 -05:00
Geoff Bourne
19ee3f58f8 build: alpine build needed sh not bash (#1540) 2022-05-30 12:10:14 -05:00
Geoff Bourne
8d0bdb60f0 For CurseForge, avoid conflicting start script error when run.sh present (#1539) 2022-05-30 08:41:21 -05:00
Geoff Bourne
0f23414198 Provide clearer log when minecraft server process fails (#1538) 2022-05-29 21:57:39 -05:00
Geoff Bourne
40ebddadff Pin base images to focal until netty epoll support is fixed (#1536) 2022-05-28 20:06:23 -05:00
Geoff Bourne
08556a63b8 CurseForge modpacks use run.sh when present (#1534)
* CurseForge modpacks use run.sh when present

* Added lbzip2
2022-05-26 22:02:26 -05:00
Bensuperpc
ea7046f93d Fixed older purpur versions not being removed (#1531) 2022-05-24 07:21:30 -05:00
Geoff Bourne
6768795594 docs: Corrected image tag in FTB example (#1530) 2022-05-22 15:25:44 -05:00
Skyler Spaeth
e7236212d8 Add jarfile options and custom worlds directory path (Multiverse) to docs (#1527) 2022-05-22 12:00:38 -05:00
Geoff Bourne
3e3abda71e Constrain GENERIC_PACK base detection depth (#1528) 2022-05-22 11:35:52 -05:00
Geoff Bourne
f67d3948d2 docs: Cleanup RCON_CMDS examples (#1526) 2022-05-21 11:04:00 -05:00
SeanWcom
bc3c3db080 Adding 'run.sh' as a variant for FTBA server types (#1521) 2022-05-19 07:29:52 -05:00
Felix
691be801d8 Add initial support for Quilt server (#1514) 2022-05-13 07:31:36 -05:00
Geoff Bourne
56b9326c09 docs: Embedded table of contents is redundant and makes it hard to see top part of docs (#1516) 2022-05-11 11:20:39 -05:00
md5nake
b6ea33dce1 Fix memory env vars being overridden if set to "" (#1512) 2022-05-11 08:15:53 -05:00
dependabot[bot]
367876e8b8 build(deps): bump docker/metadata-action from 3 to 4 (#1510) 2022-05-10 21:34:15 -05:00
dependabot[bot]
eb096142d6 build(deps): bump docker/setup-qemu-action from 1.2.0 to 2.0.0 (#1507) 2022-05-10 18:01:05 -05:00
dependabot[bot]
9ccd5bdee7 build(deps): bump docker/login-action from 1 to 2 (#1508) 2022-05-10 17:19:53 -05:00
dependabot[bot]
dc05029ef5 build(deps): bump docker/setup-buildx-action from 1 to 2 (#1509) 2022-05-10 12:41:28 -05:00
dependabot[bot]
926a3a5688 build(deps): bump docker/build-push-action from 2.10.0 to 3.0.0 (#1511) 2022-05-09 21:39:34 -05:00
Geoff Bourne
b27556e1eb Fix invalid -s arg with TYPE=FORGE (#1501) 2022-05-03 17:42:13 -05:00
Geoff Bourne
64521f7a39 Disable forgeapi tests for now (#1499) 2022-05-02 13:39:10 -05:00
Dessa Simpson
b4ca00bd3b Download spiget resources to tempdir under plugins (#1486) 2022-05-01 17:56:54 -05:00
Geoff Bourne
bca7b79f77 Avoid brittle testing of Loliserver due to download site (#1489) 2022-04-25 09:38:04 -05:00
itzg
2e0c8901a1 docs: Auto update markdown TOC 2022-04-24 22:11:22 +00:00
Sylensky
3e6ef1a605 Added Loliserver support (#1483)
* added Loliserver support

* added 'setup only' test for loliserver
2022-04-24 17:11:03 -05:00
Dario Crosa
d9a55ae938 remove isUrl check (#1488) 2022-04-24 15:51:12 -05:00
Bartosz Stefańczyk
7e843ea100 Fix alpine incompatibility (#1481) 2022-04-19 17:42:40 -05:00
dependabot[bot]
b241f74615 build(deps): bump stefanzweifel/git-auto-commit-action (#1479) 2022-04-18 07:33:56 -05:00
Geoff Bourne
c5460941c4 Updated rolling logs config to also be size based (#1478) 2022-04-17 21:36:12 -05:00
Geoff Bourne
890425a8b6 Updated rcon-cli to support variables cleanup (#1476) 2022-04-15 07:56:04 -05:00
Bartosz Stefańczyk
8c5c4664ea Fix forge using 1.17+ version after downgrade (#1474) 2022-04-14 22:03:34 -05:00
Geoff Bourne
901b889f2d Fixed running as uid=0 even with UID unset (#1475) 2022-04-14 11:41:43 -05:00
Geoff Bourne
cf1dd9f9e1 Corrected default of UID/GID via start script (#1471)
Fixes #1469
2022-04-11 18:00:16 -05:00
Geoff Bourne
8ef3fe199f Allow ICON to reference a local file (#1466) 2022-04-10 11:39:58 -05:00
Geoff Bourne
97fe6b1f14 Corrected autopause's resume to work with alpine images (#1464) 2022-04-10 10:58:18 -05:00
Geoff Bourne
4af80debe2 Correct spiget handling of jars that contain jars (#1462) 2022-04-09 22:02:20 -05:00
itzg
513492192b docs: Auto update markdown TOC 2022-04-02 20:38:29 +00:00
Geoff Bourne
e0b4a819b1 Fixed version comparisons when using SPONGEVANILLA (#1455)
Fixes #1452
2022-04-02 15:38:13 -05:00
itzg
5c0cf11bfe docs: Auto update markdown TOC 2022-04-02 19:02:45 +00:00
Michael Vorburger ⛑️
63a884ea75 Add hint that SPONGEVANILLA requires VERSION to README (#1452) (#1453) 2022-04-02 14:02:29 -05:00
chblodg
7c7090a582 ForgeAPI fixed lower sub version with a higher ID number (#1451)
Co-authored-by: christopher blodgett <christopher.blodgett@gmail.com>
2022-04-01 18:26:12 -05:00
dependabot[bot]
fc70a976bd build(deps): bump docker/build-push-action from 2.9.0 to 2.10.0 (#1438) 2022-03-22 20:52:32 -05:00
itzg
0de90b134c docs: Auto update markdown TOC 2022-03-23 00:23:06 +00:00
Nick Martin
6eca74698b Update README.md (#1442) 2022-03-22 19:22:49 -05:00
dependabot[bot]
7c85f0926c build(deps): bump stefanzweifel/git-auto-commit-action (#1437) 2022-03-21 06:54:40 -05:00
Geoff Bourne
4ff158266a Use file content to detect spiget resource type (#1432)
For #1426
2022-03-17 22:07:34 -05:00
Geoff Bourne
fda8981028 Silence content type error for external spiget resources (#1431) 2022-03-15 20:56:25 -05:00
itzg
7f44a04490 docs: Auto update markdown TOC 2022-03-16 00:48:32 +00:00
chblodg
818ab46b73 fixing readme example for Vt (#1430)
Fixes #1429 

Co-authored-by: christopher blodgett <christopher.blodgett@gmail.com>
2022-03-15 19:48:20 -05:00
Geoff Bourne
5ae5733741 Determine SPIGET file type from API (#1427) 2022-03-14 21:07:06 -05:00
Geoff Bourne
2042450f9b When ICON is GIF, extract only first frame (#1420) 2022-03-14 20:28:41 -05:00
Geoff Bourne
676b0f88cf mc-send-to-console skips user change when non-root (#1419)
Fixes #1393
2022-03-11 14:34:10 -06:00
Geoff Bourne
65d6c5bb32 Verify content type when downloading SPIGET_RESOURCES entry (#1413)
For #1378
2022-03-10 16:16:18 -06:00
dependabot[bot]
5168698498 build(deps): bump actions/stale from 4.1.0 to 5 (#1408) 2022-03-07 08:17:48 -06:00
dependabot[bot]
f512b9510c build(deps): bump actions/checkout from 2.4.0 to 3 (#1409) 2022-03-07 08:17:30 -06:00
Geoff Bourne
ba71a7f5a2 Re-fixed pufferfish tests (#1406) 2022-03-06 15:54:25 -06:00
chblodg
1ebe9d3f47 adding major version for pufferfish (#1405)
* adding major version for pufferfish

* fixing test as well as fixing a quote that was added due to linter recommendation

* Changing get major version to using a simple cut command

Co-authored-by: christopher blodgett <christopher.blodgett@gmail.com>
2022-03-06 14:57:00 -06:00
Geoff Bourne
d9bddabbf8 Provide better debug logs with mc-image-helper get (#1404) 2022-03-05 20:50:28 -06:00
Geoff Bourne
3c3aea9c86 ci: adjusted pufferfish test (#1403) 2022-03-05 20:22:08 -06:00
Geoff Bourne
3806364197 ci: added build variants to main list 2022-03-05 15:53:00 -06:00
Bram
e9d3512383 Pufferfish: Remove regex processing (#1402)
Fixes #1401
2022-03-05 15:49:36 -06:00
itzg
09cc5003cd docs: Auto update markdown TOC 2022-03-05 01:53:09 +00:00
chblodg
1781ca282a added variables for pufferfish, also added setup only test (#1399) 2022-03-04 19:52:55 -06:00
chblodg
ba08a5d8f1 Fixing missing export, fixed run order, added real world working example (#1397) 2022-03-04 16:52:00 -06:00
itzg
b1e00b43be docs: Auto update markdown TOC 2022-03-04 02:47:47 +00:00
chblodg
a2499a8713 RCON: Adding on last disconnect (#1395) 2022-03-03 20:47:30 -06:00
itzg
07665d7571 docs: Auto update markdown TOC 2022-03-02 17:29:33 +00:00
chblodg
4587b32480 RCON commands feature (#1391)
Co-authored-by: christopher blodgett <christopher.blodgett@gmail.com>
2022-03-02 11:29:12 -06:00
Geoff Bourne
15869fd774 docs: added tty and stdin_open to example file 2022-02-28 21:40:47 -06:00
Geoff Bourne
2e24bdfff8 Restored error handling when missing vanilla version (#1389) 2022-02-26 21:28:30 -06:00
itzg
1f8a3d85d1 docs: Auto update markdown TOC 2022-02-26 20:58:31 +00:00
Geoff Bourne
f359324bea docs: added mc-backup to related projects
#1385
2022-02-26 14:58:17 -06:00
itzg
e0ff1365cf docs: Auto update markdown TOC 2022-02-26 19:29:53 +00:00
Geoff Bourne
b347a7d0bf docs: added Related Projects section (#1387)
Fixes #1385
2022-02-26 13:29:39 -06:00
itzg
977ac22df9 docs: Auto update markdown TOC 2022-02-26 19:15:03 +00:00
Geoff Bourne
323d41603c docs: updated info to find FTB identifiers (#1386)
Fixes #612
2022-02-26 13:14:50 -06:00
chblodg
8dadfecf28 ForgeAPI: Random failure fix (#1384)
* Fix for Random forge api failure, removing dependency duplication messages

* pushing array test for review

* Fixing while loops that were causing downloaded modids to reset

Co-authored-by: christopher blodgett <christopher.blodgett@gmail.com>
2022-02-24 16:47:22 -06:00
chblodg
5f1d7c6d31 Changing builds to JRE, and moving Java8 to pinned version for forge (#1382) 2022-02-24 12:18:49 -06:00
Geoff Bourne
7ba6ef9ad8 ci: MODS_FORGEAPI_KEY was missing from tests step 2022-02-24 07:26:04 -06:00
Geoff Bourne
eb1170408f Pin java8-multiarch to 8u312 due to Forge (#1383) 2022-02-24 07:08:06 -06:00
Geoff Bourne
c50c9988fc Fix PATH for annoying docker providers (#1371)
Fixes #1365
2022-02-19 11:34:13 -06:00
Geoff Bourne
d46384f68a Removing unused ttf-dejavu package (#1362) 2022-02-19 09:38:49 -06:00
Michael Kirsch
b7f8239235 use user instead of group in sudoers file (#1367) 2022-02-15 17:28:05 -06:00
itzg
f31c57b897 docs: Auto update markdown TOC 2022-02-14 00:02:27 +00:00
Geoff Bourne
5d68a57910 Added procps to alpine image to resolve autopause compatibility (#1361) 2022-02-13 18:02:09 -06:00
itzg
3886bca93f docs: Auto update markdown TOC 2022-02-13 15:02:50 +00:00
Daschi1
48f79f54bf Added an example for JVM_OPTS (#1359) 2022-02-13 09:02:37 -06:00
Geoff Bourne
179bb267fb build: add alpine support to matrix builds (#1349) 2022-02-11 21:00:24 -06:00
itzg
1458329e97 docs: Auto update markdown TOC 2022-02-12 02:37:54 +00:00
StealthCT
fdddece984 Migrate Fabric server to launcher method (#1351) 2022-02-11 20:37:39 -06:00
chblodg
700703fe8c Adding notifications for on close, reopen, and delete (#1355) 2022-02-10 17:49:08 -06:00
itzg
3131a340d4 docs: Auto update markdown TOC 2022-02-09 01:24:56 +00:00
chblodg
a57adc04ff Add GameType filter, and add ForgeAPI Verify Files to validate Mod Downloads (#1337)
Co-authored-by: christopher blodgett <christopher.blodgett@gmail.com>
2022-02-08 19:24:38 -06:00
Jordy Hulck
4cb227629f Distro aware checksum (#1345) 2022-02-08 19:17:26 -06:00
dependabot[bot]
932cd8f89e build(deps): bump docker/build-push-action from 2.8.0 to 2.9.0 (#1339) 2022-02-07 06:54:56 -06:00
Geoff Bourne
f2f8d58d3b Only skip up-to-date files with MODS and MODS_FILE (#1338)
Fixes #1254
2022-02-06 17:46:17 -06:00
Luc Ritchie
b7bbe1b0a6 Support Spigot-style and vanilla-style world zips, for any server type (#1305) 2022-02-06 15:51:28 -06:00
itzg
1dd9a2e6e0 docs: Auto update markdown TOC 2022-02-06 18:45:40 +00:00
chblodg
aa7b997697 Adding support for crafting tweaks and resource packs (#1336)
Co-authored-by: christopher blodgett <christopher.blodgett@gmail.com>
Co-authored-by: Geoff Bourne <itzgeoff@gmail.com>
Co-authored-by: Floyd Everest <me@floydeverest.com>
2022-02-06 12:45:25 -06:00
Geoff Bourne
eb6c7c98f0 build: adjusted discord workflow name 2022-02-05 22:40:42 -06:00
Geoff Bourne
3472c67ca8 build: give issue-label workflow a name 2022-02-05 16:10:12 -06:00
Geoff Bourne
8995e63b72 build: fixed typo in push condition 2022-02-05 16:03:40 -06:00
Geoff Bourne
b65f108917 build: also push git tag builds 2022-02-05 16:02:27 -06:00
itzg
2b374a2073 docs: Auto update markdown TOC 2022-02-05 18:38:46 +00:00
Geoff Bourne
b5b164d5d3 feat: added SKIP_GENERIC_PACK_UPDATE_CHECK and FORCE_GENERIC_PACK_UPDATE (#1333) 2022-02-05 12:38:33 -06:00
itzg
0cde40604e docs: Auto update markdown TOC 2022-02-05 18:27:33 +00:00
Geoff Bourne
22f2eb7308 feat: add option to include timestamp with init logs (#1332) 2022-02-05 12:27:17 -06:00
Geoff Bourne
4a1d2d2b80 build: adjusted for eclipse-temurin:8-jdk not being on armv7 2022-02-02 22:27:38 -06:00
Geoff Bourne
10922b261b build: build-multiarch tags were too broad 2022-02-02 22:18:54 -06:00
itzg
de0188de3d docs: Auto update markdown TOC 2022-02-02 02:53:20 +00:00
Geoff Bourne
2b093ad421 docs: fixed Forge homepage link
Fixes #1244
2022-02-01 20:53:05 -06:00
itzg
0ec73b141f docs: Auto update markdown TOC 2022-02-01 21:08:27 +00:00
Geoff Bourne
de0bb14abd docs: added inspect command to see anonymous volume path 2022-02-01 15:08:09 -06:00
Geoff Bourne
26809ef1f0 build: enable exit on failure for verify in setuponlytests
Related to #1305
2022-01-31 21:44:18 -06:00
itzg
dca4f86fa6 docs: Auto update markdown TOC 2022-01-31 01:50:07 +00:00
Geoff Bourne
eb0c30d134 feat: added prefix/suffix support for GENERIC_PACKS (#1321)
For #1315
2022-01-30 19:49:54 -06:00
Geoff Bourne
c55cce628d fix: bumped mc-image-helper to 1.16.3 to use specific user agent (#1320) 2022-01-30 14:05:50 -06:00
Alexandre Boucey
240238013b Use Log4J2 JVM flag when file download fail (#1316) 2022-01-30 13:46:09 -06:00
Geoff Bourne
18f0f0ceee fix: speedup generic pack update check (#1317)
#1281
2022-01-30 11:17:21 -06:00
Geoff Bourne
c424fe1c7b build: corrected issue-label to use issue.number 2022-01-29 22:09:18 -06:00
Geoff Bourne
eb694463c5 build: switch to matrix builds for Debian based variant builds (#1313) 2022-01-29 14:53:34 -06:00
Geoff Bourne
469afb3200 build: fixed issue.id reference in issue-label workflow 2022-01-28 22:44:37 -06:00
itzg
8f8acc40f5 docs: Auto update markdown TOC 2022-01-28 00:42:48 +00:00
chblodg
7dbd8256ea Adding ForgeAPI version pinning and dependency download. (#1308)
Co-authored-by: christopher blodgett <christopher.blodgett@gmail.com>
Co-authored-by: Geoff Bourne <itzgeoff@gmail.com>
2022-01-27 18:42:33 -06:00
Geoff Bourne
66468975e0 build: added id to labelled issue discord message 2022-01-27 15:03:00 -06:00
Geoff Bourne
6d27ce8461 build: updated issue label workflow with more labels 2022-01-27 14:47:03 -06:00
Geoff Bourne
b0817f2a83 build: updated issues workflow with 'help wanted'
See #1310
2022-01-27 14:44:44 -06:00
Geoff Bourne
21602a79e7 Refactored ops and whitelist processing into its own file (#1306) 2022-01-26 20:25:52 -06:00
Luc Ritchie
8a42dfe232 Fix loading world from compressed tar archives (#1304) 2022-01-25 16:19:15 -06:00
dependabot[bot]
d02bbb798e build(deps): bump docker/build-push-action from 2.7.0 to 2.8.0 (#1300) 2022-01-24 07:35:03 -06:00
itzg
cbbc817279 docs: Auto update markdown TOC 2022-01-24 04:19:38 +00:00
Geoff Bourne
18d8aba20f feat: support WORLD files in compressed tar format (#1297) 2022-01-23 22:19:25 -06:00
itzg
09834c289a docs: Auto update markdown TOC 2022-01-24 00:34:13 +00:00
Jawa_Juice
880dca1ae5 Update Airplane download URL, clarify version support (#1296) 2022-01-23 18:34:00 -06:00
itzg
b1e33d4049 docs: Auto update markdown TOC 2022-01-23 16:57:49 +00:00
Geoff Bourne
284c260886 Added java17-openj9 to merge system 2022-01-23 10:57:31 -06:00
Nailima
05bbb45046 fix: changed packwiz url to reflect new repo address (#1293) 2022-01-22 10:36:52 -06:00
Geoff Bourne
d11fe229df ci: Reference branch and html URL from completed workflow in discord workflow (#1292) 2022-01-20 20:52:48 -06:00
itzg
b7801565c2 docs: Auto update markdown TOC 2022-01-20 23:09:54 +00:00
chblodg
bd4760e504 Adding MODS_FORGEAPI to auto-download by project ids (#1275)
Co-authored-by: christopher blodgett <christopher.blodgett@gmail.com>
Co-authored-by: Geoff Bourne <itzgeoff@gmail.com>
2022-01-20 17:09:34 -06:00
Geoff Bourne
edc25b216f misc: exclude high priority issues from stale check 2022-01-17 20:23:56 -06:00
dependabot[bot]
5499867ae8 build(deps): bump stefanzweifel/git-auto-commit-action (#1288) 2022-01-17 07:14:21 -06:00
Geoff Bourne
e4c575c130 fix(purpur): apply log4j mitigations specific to Purpur (#1280) 2022-01-16 20:49:15 -06:00
itzg
f29f098b26 docs: Auto update markdown TOC 2022-01-11 00:37:32 +00:00
Jawa_Juice
1d751ab2bc Docs: Flare flags (#1270) 2022-01-10 18:37:10 -06:00
Drew Brown
4f87662664 fix: Set default MOTD if unset (#1265)
Co-authored-by: Geoff Bourne <itzgeoff@gmail.com>
2022-01-10 06:56:28 -06:00
Geoff Bourne
7e2937aa8d fix(forge): improved tracking and use of Forge run.sh (#1264)
Fixes #1260
2022-01-08 13:19:30 -06:00
itzg
529781adda docs: Auto update markdown TOC 2022-01-08 00:32:28 +00:00
Geoff Bourne
977d082638 fix(limbo): convert MOTD to JSON chat format (#1259) 2022-01-07 18:32:10 -06:00
itzg
c506cf11ac docs: Auto update markdown TOC 2022-01-06 12:50:04 +00:00
Bram
967d5159ea Add Pufferfish support (#1255) 2022-01-06 06:49:46 -06:00
Geoff Bourne
79f978359c fix: ensured GENERIC_PACKS are re-applied with REMOVE_OLD_MODS (#1257)
#1253
2022-01-05 21:38:51 -06:00
itzg
4c7bb313be docs: Auto update markdown TOC 2022-01-04 03:59:33 +00:00
chblodg
83d3555eab Adding Vanilla Tweaks Options (#1246) 2022-01-03 21:59:19 -06:00
Geoff Bourne
e93cc569c6 fix[purpur]: use mc-image-helper for robust Purpur build lookup (#1242) 2022-01-02 10:17:32 -06:00
itzg
5c0cf03548 docs: Auto update markdown TOC 2022-01-01 21:46:38 +00:00
Geoff Bourne
00cae995a7 Removed USE_LARGE_PAGES since its use is removed from Java 17
#1239
2022-01-01 15:46:43 -06:00
Jordy Hulck
4ba0a9c98c Support downloading CurseForge modpack when USE_MODPACK_START_SCRIPT is false (#1229) 2022-01-01 15:23:21 -06:00
itzg
6520655d6c docs: Auto update markdown TOC 2022-01-01 18:28:00 +00:00
Geoff Bourne
6bd722b11b docs: added note about log4jshell mitigation 2022-01-01 12:28:01 -06:00
itzg
4576882f07 docs: Auto update markdown TOC 2022-01-01 17:53:42 +00:00
Geoff Bourne
224553f695 Added java17-openj9 variant
#1209
2022-01-01 11:53:45 -06:00
itzg
cc100fd8bb docs: Auto update markdown TOC 2022-01-01 17:51:22 +00:00
Bartosz Stefańczyk
a7a0e54cb9 docs: Added note about mc-status under autopause section (#1224) 2022-01-01 11:51:07 -06:00
Jordy Hulck
ce32eb8d4f fix [CurseForge]: Fix script not deleting old version files when upgrading (#1230) 2022-01-01 11:05:07 -06:00
Geoff Bourne
39519427bb build: provide option to push image for a PR (#1221) 2021-12-23 18:38:18 -06:00
itzg
2f1fed822c docs: Auto update markdown TOC 2021-12-22 13:01:44 +00:00
Caden Kriese
bf5824b6e5 Added support for downloading and installing datapacks (#1214) 2021-12-22 07:01:23 -06:00
itzg
52bf2ae094 docs: Auto update markdown TOC 2021-12-21 00:27:44 +00:00
Michael Kirsch
fa4a0e92ce Autostop feature (#1212) 2021-12-20 18:27:27 -06:00
Geoff Bourne
c15e231d7e fix: write to console pipe as minecraft user (#1216) 2021-12-20 07:09:29 -06:00
Daniel Hoffend
cc885276f5 fix: verify that the downloaded resource is a valid plugin (#1210) 2021-12-19 19:24:02 -06:00
Geoff Bourne
9dee47cb6d docs: exclude dependabot from changelog 2021-12-13 21:35:14 -06:00
itzg
39611fa9cb docs: Auto update markdown TOC 2021-12-14 02:14:33 +00:00
Jawa_Juice
bb56de694a Remove Airplane 1.16 as unsupported (#1199) 2021-12-13 20:14:16 -06:00
woeisme
c4d4d2bcc1 Created new template for docker-compose-paper.yml (#1198) 2021-12-13 14:25:21 -06:00
Levy Ehrstein
4e44f33db9 fix: fabric downgrading not working (#1197, #1192)
See #1192 for an in-depth explanation of the problem.

Reported-by: Erik "Coding-Kiwi"
2021-12-13 13:50:20 -06:00
dependabot[bot]
58c085527f build(deps): bump actions/stale from 4.0.0 to 4.1.0 (#1196) 2021-12-13 07:45:16 -06:00
itzg
79fa4b95c3 docs: Auto update markdown TOC 2021-12-13 02:08:27 +00:00
Geoff Bourne
d5f1660c77 docs: Removed docker-compose-paper.yml since it was out of date (#1195) 2021-12-12 20:08:13 -06:00
Geoff Bourne
3a3b5fc002 fix: qualify Fabric server jar by installer version (#1193) 2021-12-12 15:34:24 -06:00
Levy Ehrstein
eccc989887 secruity: Fix CVE-2021-44228 mitigation (#1190) 2021-12-12 08:19:16 -06:00
Brett Randall
c4aa105042 Added --chmod to all COPY instructions in Dockerfile (#1184) 2021-12-12 08:10:18 -06:00
Geoff Bourne
ffcb76f73f build: auto-create github release when docker-versions-create with tag (#1188) 2021-12-11 16:51:01 -06:00
itzg
bee39343a6 docs: Auto update markdown TOC 2021-12-11 22:09:11 +00:00
StealthCT
e9326db933 Improved whitelist and ops support (#1182) 2021-12-11 16:08:53 -06:00
itzg
dd1cc82fcd docs: Auto update markdown TOC 2021-12-11 19:01:44 +00:00
Brett Randall
93825895b9 Startup fail-fast with error message if both ENABLE_AUTOPAUSE=true and EXEC_DIRECTLY=true are set. (#1186) 2021-12-11 13:01:30 -06:00
Bram
492aebc718 Remove old Airplane versions (#1185) 2021-12-11 12:56:11 -06:00
Levy Ehrstein
e66b2eda60 fix: log4j patch being applied to <1.7 versions (#1183)
As described in https://www.minecraft.net/en-us/article/important-message--security-vulnerability-java-edition,
versions below 1.7 are not affected by the log4j exploit. They should therefore not use any mitigations.

See #1179 discussion after merge.

Reported-and-tested-by: Daniel Porter "Stealthii" <dan.porter@rehabstudio.com>
2021-12-11 11:33:44 -06:00
Geoff Bourne
3bb21d8581 Used log4j2.formatMsgNoLookups as fallback for non-vanilla
#1180
2021-12-10 20:50:40 -06:00
Geoff Bourne
fb6fa9b7d7 fix: use Mojang log4j config file fixes by version (#1179) 2021-12-10 10:40:56 -06:00
Pascal Sthamer
0718a62007 security: patch log4j remote code execution vulnerability (#1178) 2021-12-10 07:52:19 -06:00
Geoff Bourne
529d92fa63 build: also run tests with java8 2021-12-06 22:19:49 -06:00
Geoff Bourne
f7836abc06 build: fixed combined test/build jobs 2021-12-06 22:18:21 -06:00
itzg
cd09a932f9 docs: Auto update markdown TOC 2021-12-07 03:43:47 +00:00
StealthCT
46d21f58cf Fabric documentation update (#1166) 2021-12-06 21:43:33 -06:00
itzg
3e63be9988 docs: Auto update markdown TOC 2021-12-07 03:40:20 +00:00
StealthCT
aaaf7796b0 Add support for packwiz toml definitions (#1163) 2021-12-06 21:40:00 -06:00
Alexandre Boucey
aba10c1d99 Update Purpur version API (#1162) 2021-12-06 07:25:01 -06:00
Geoff Bourne
c4dd0d2bae build: Switched to GHA cache (#1153) 2021-12-04 18:42:03 -06:00
Geoff Bourne
6c636c3d9c fix: corrected versionLessThan to handle b1.7.3 style
#1159
2021-12-04 09:58:28 -06:00
itzg
9098b198c3 docs: Auto update markdown TOC 2021-12-03 14:07:53 +00:00
Geoff Bourne
927ec2a2c3 docs: let users do their own research about Mohist
#1107
2021-12-03 08:07:40 -06:00
Paul Heidenreich
07a251b544 Fix downloading of craftbukkit when using 1.16.5 (#1150) 2021-12-02 19:45:50 -06:00
itzg
b8e163d8b1 docs: Auto update markdown TOC 2021-12-03 01:28:10 +00:00
StealthCT
cd72acb6c6 Feature: Enforcing resource packs (#1149) 2021-12-02 19:27:55 -06:00
itzg
24942a6f04 docs: Auto update markdown TOC 2021-12-02 03:13:16 +00:00
Kyle
75dcc746f8 Added UUID Support for WHITELIST (#1139) 2021-12-01 21:12:58 -06:00
dependabot[bot]
263a10848a build(deps): bump actions/cache from 2.1.6 to 2.1.7 (#1138) 2021-11-29 06:46:56 -06:00
Geoff Bourne
ff4d46d509 fix: corrected versionLessThan for versions with dashes
#1132
2021-11-24 15:52:36 -06:00
itzg
66ead9128a docs: Auto update markdown TOC 2021-11-24 20:40:16 +00:00
Geoff Bourne
55ff76a85d docs: clarified java version compatibilities
#1130
2021-11-24 14:39:50 -06:00
Geoff Bourne
dca29dcbb5 feat: use server list ping for versions less than 1.7
#1131
2021-11-24 14:30:29 -06:00
itzg
84c577cc96 docs: Auto update markdown TOC 2021-11-23 02:51:46 +00:00
Geoff Bourne
5e8fc43857 fix: removed Java 8 constraint of Canyon server type
#1129
2021-11-22 20:51:30 -06:00
Geoff Bourne
66a17c8d58 docs: added readinessProbe to k8s example 2021-11-22 17:19:49 -06:00
itzg
57f7ee50a6 docs: Auto update markdown TOC 2021-11-21 21:00:21 +00:00
Geoff Bourne
f8ac58e200 misc: deprecated java16 2021-11-21 15:00:17 -06:00
Geoff Bourne
71954edf75 misc: silence misleading error when resolving forge version 2021-11-21 14:58:55 -06:00
Geoff Bourne
597faa102a misc: only run stale-check on cron schedule 2021-11-21 11:16:58 -06:00
itzg
442fccfc41 docs: Auto update markdown TOC 2021-11-17 20:22:20 +00:00
Michael Vorburger ⛑️
784ec6104c Docs: Fix broken link to Aikar's Flags (#1126) 2021-11-17 14:22:01 -06:00
Geoff Bourne
817a01bbc3 misc: noted git ours merge strategy 2021-11-16 19:05:23 -06:00
itzg
66c0558174 docs: Auto update markdown TOC 2021-11-17 00:55:17 +00:00
Geoff Bourne
9116be11ae Updated latest to Java 17 to match 1.18-pre2 2021-11-16 18:55:05 -06:00
Geoff Bourne
969f4c8db6 misc: update changelog processing notes 2021-11-16 18:49:48 -06:00
Geoff Bourne
e6916e91e7 misc: cleaned up warnings in start-setupEnvVariables and autopause-fcns.sh 2021-11-15 20:50:47 -06:00
itzg
9544aeaf7a docs: Auto update markdown TOC 2021-11-16 02:46:53 +00:00
Geoff Bourne
babeac1693 docs: removed dangling sentence in Fabric section
#1121
2021-11-15 20:46:40 -06:00
Geoff Bourne
130b067955 fix: changed logging config's queue to TerminalConsole
#1119
2021-11-13 19:17:20 -06:00
Geoff Bourne
df7d6c298a fix: defaulted SERVER_PORT for health and autopause
#1120
2021-11-13 18:42:24 -06:00
Geoff Bourne
a8a60264e9 misc: code cleanup in start-setupServerProperties 2021-11-12 21:21:01 -06:00
itzg
721df8d32b docs: Auto update markdown TOC 2021-11-13 03:18:08 +00:00
Geoff Bourne
2375a6796c feat: Allowed for server properties to be cleared vs skipped
#1117
2021-11-12 21:17:21 -06:00
dependabot[bot]
e04e943e1c build(deps): bump actions/checkout from 2.3.5 to 2.4.0 (#1112) 2021-11-08 07:00:59 -06:00
Geoff Bourne
1bf75671f6 misc: adjusted bug and question templates 2021-11-06 21:58:22 -05:00
Geoff Bourne
7d56de9d15 Cleaned up minecraft_server.jar for versions >= 1.6
#306
2021-11-06 21:46:31 -05:00
Geoff Bourne
a8de790b57 Used minecraft_server.jar for versions before 1.6
#306
2021-11-06 21:35:57 -05:00
Geoff Bourne
cafddd3b12 Used minecraft_server.jar for versions before 1.6
#306
2021-11-06 21:34:24 -05:00
itzg
fc958faf7b docs: Auto update markdown TOC 2021-11-05 19:39:25 +00:00
Michael Vorburger ⛑️
402894cd8d document that default RCON_PASSWORD = minecraft in README (#1109) 2021-11-05 14:38:02 -05:00
Geoff Bourne
f97cea4b06 misc: adjusted debug logs when SKIP_SERVER_PROPERTIES
#1108
2021-11-04 21:49:03 -05:00
itzg
0198c15b8c docs: Auto update markdown TOC 2021-11-05 02:00:07 +00:00
Geoff Bourne
e813007f49 docs: added cautionary note to Mohist section
#1107
2021-11-04 20:59:52 -05:00
itzg
df2962bdb3 docs: Auto update markdown TOC 2021-11-05 01:55:28 +00:00
Geoff Bourne
367f07b784 feat: added SKIP_SERVER_PROPERTIES
#1108
2021-11-04 20:55:15 -05:00
itzg
9de9ec2e34 docs: Auto update markdown TOC 2021-11-01 22:29:26 +00:00
Geoff Bourne
6ad7773e2b docs: clarified JVM_OPTS and JVM_XX_OPTS syntax 2021-11-01 17:29:10 -05:00
itzg
8177dd9a5a docs: Auto update markdown TOC 2021-11-01 22:24:07 +00:00
Geoff Bourne
81994ec3b3 docs: described using MaxRAMPercentage when MEMORY is unset 2021-11-01 17:23:45 -05:00
itzg
ecee4069f1 docs: Auto update markdown TOC 2021-10-31 14:43:07 +00:00
Geoff Bourne
3713d9c4e8 Allowed MEMORY to be unset and let JVM calculate from container
#742
2021-10-31 09:42:46 -05:00
itzg
c7f1d13f9b docs: Auto update markdown TOC 2021-10-29 21:39:37 +00:00
Michael Vorburger ⛑️
cc8d18d41f docs: add links to Development and Building in README (#1096) 2021-10-29 16:39:23 -05:00
itzg
afd863ab89 docs: Auto update markdown TOC 2021-10-29 21:38:33 +00:00
Michael Vorburger ⛑️
46f6653b13 docs: clarify java8-multiarch tag for TYPE=SPONGEVANILLA in README (#1095) 2021-10-29 16:38:17 -05:00
itzg
3237d1a996 docs: Auto update markdown TOC 2021-10-29 17:34:39 +00:00
Geoff Bourne
386e34e05b docs: clarified Forge pre-1.17 requirement of Java 8 2021-10-29 12:34:24 -05:00
itzg
4fd234e482 docs: Auto update markdown TOC 2021-10-29 02:31:34 +00:00
Geoff Bourne
38fd0dac8b docs: fixed architecture designation of java17
#1074
2021-10-28 21:31:12 -05:00
Geoff Bourne
11ac111036 ci: tweak formatting in issue templates 2021-10-28 13:35:02 -05:00
Geoff Bourne
9803547967 ci: added issue templates 2021-10-28 13:24:13 -05:00
Geoff Bourne
1a0c7c4f85 ci: updated stale status label 2021-10-28 12:58:39 -05:00
Geoff Bourne
7b7d5db796 misc: switched to stale action 2021-10-28 09:10:31 -05:00
Geoff Bourne
34baf8a354 Switched base image to Eclipse Temurin JDK
#1054 #1064
2021-10-27 21:12:18 -05:00
Geoff Bourne
cc9e0fe1ef Upgraded mc-image-helper to fix URL handling
#1092
2021-10-25 19:19:51 -05:00
itzg
9c354d5775 docs: Auto update markdown TOC 2021-10-25 01:23:54 +00:00
Geoff Bourne
2dce24c1bd Added support for multiple files with GENERIC_PACKS
#1087
2021-10-24 20:23:34 -05:00
itzg
6f80ce5584 docs: Auto update markdown TOC 2021-10-23 15:20:34 +00:00
Geoff Bourne
c8df2d8e31 docs: Noted SELinux scenario for volume host directory mount
#390
2021-10-23 10:20:19 -05:00
Geoff Bourne
2e8f27a8ef Allowed FTB_MODPACK_VERSION_ID to be an empty value
#1081
2021-10-23 09:40:36 -05:00
Geoff Bourne
e20dd63f76 Added FORCE_REINSTALL for FORGE type
#1085
2021-10-23 09:33:12 -05:00
Geoff Bourne
3e62389325 misc: moved legacy minecraft-server directory 2021-10-22 21:23:50 -05:00
Geoff Bourne
f3c880f96a misc: moved baseline files to files 2021-10-22 21:23:16 -05:00
Geoff Bourne
2c7796ea0b misc: moved start scripts into scripts 2021-10-22 21:18:45 -05:00
Geoff Bourne
0daeeb70f7 misc: removed deprecated CURSE_INSTANCE type 2021-10-22 21:11:11 -05:00
itzg
86782865c4 docs: Auto update markdown TOC 2021-10-22 21:06:59 +00:00
Geoff Bourne
ddcabb175a misc: deprecating multiarch-latest image variant 2021-10-22 16:06:42 -05:00
Geoff Bourne
7b09e525e8 Converted TYPE=CURSEFORGE to use image helper 2021-10-21 21:53:06 -05:00
itzg
2eefb12e6b docs: Auto update markdown TOC 2021-10-20 20:36:23 +00:00
Geoff Bourne
5777a248d4 Improved and documented GENERIC_PACK feature
#1077
2021-10-20 15:36:02 -05:00
itzg
97a6a4ba85 docs: Auto update markdown TOC 2021-10-20 02:36:48 +00:00
Geoff Bourne
531d33af1c Added java17 variant
#1054
2021-10-19 21:36:31 -05:00
itzg
0618d690fa docs: Auto update markdown TOC 2021-10-19 03:33:58 +00:00
Geoff Bourne
6aa3b1066f Merge branch 'master' of github.com:itzg/docker-minecraft-server 2021-10-18 22:06:41 -05:00
Geoff Bourne
393544a194 Added support for Crucible server type
#1052
2021-10-18 22:05:22 -05:00
dependabot[bot]
4aea1753bd build(deps): bump actions/checkout from 2.3.4 to 2.3.5 (#1075) 2021-10-18 07:01:48 -05:00
itzg
c42d8971ca docs: Auto update markdown TOC 2021-10-17 19:43:59 +00:00
Marijn
ee7f2ee739 Add option to specify specific Fabric loader version (#1073) 2021-10-17 14:43:41 -05:00
Geoff Bourne
6008660a81 Converted TYPE=FORGE to use image helper 2021-10-17 12:35:45 -05:00
Geoff Bourne
043d9778b8 Converted MODPACK to use image helper 2021-10-16 22:10:09 -05:00
Geoff Bourne
8bf7c6cccd Converted mohist deployment to use image helper 2021-10-16 22:10:09 -05:00
itzg
80d7efb365 docs: Auto update markdown TOC 2021-10-16 00:07:37 +00:00
Geoff Bourne
32ed58692c Added MODS_FILE option
#1072
2021-10-15 18:42:44 -05:00
Geoff Bourne
63b919f1a9 Used json-path of image helper get for vanilla lookup 2021-10-11 15:53:09 -05:00
Geoff Bourne
57d9da96a1 Converted vanilla downloads to image helper get
#1031
2021-10-10 12:05:37 -05:00
Geoff Bourne
ec97c67aca Propagated debug flag to image helper get
#1031
2021-10-10 09:53:52 -05:00
Geoff Bourne
e5e9b0d928 Using image helper to download MODS
#1031
2021-10-10 09:33:17 -05:00
Geoff Bourne
2e37c16b2c Fabric deployment no longer uses curl
#1031
2021-10-09 15:22:42 -05:00
itzg
bcdab80f41 docs: Auto update markdown TOC 2021-10-09 16:34:52 +00:00
Geoff Bourne
c3cf892e40 Added mc-send-to-console as rcon/attach alternative
#1071
2021-10-09 11:34:37 -05:00
Geoff Bourne
1d41593a84 Verify forge server from marker file exists
#1067
2021-10-02 19:20:08 -05:00
itzg
52452020dd docs: Auto update markdown TOC 2021-09-30 21:55:07 +00:00
Geoff Bourne
65f2562d52 Added property mapping for simulation-distance
#1065
2021-09-30 16:54:44 -05:00
Geoff Bourne
3482944ac8 For autopause, added use of mc-monitor to detect players connected (#1059) 2021-09-30 16:51:51 -05:00
Geoff Bourne
9d03a1dc13 Upgraded mc-monitor to handle packet read timeout 2021-09-29 21:09:30 -05:00
Geoff Bourne
012d3e7b65 Upgraded rcon-cli to support format code processing 2021-09-29 10:26:15 -05:00
avionix-g
10d254bbbc Fix 'curl: unknown --write-out variable' for .zip modpacks (#1060) 2021-09-27 06:53:56 -05:00
itzg
8acb3f8a90 docs: Auto update markdown TOC 2021-09-25 14:39:20 +00:00
Geoff Bourne
1b00a8692b docs: noted whitelist importance 2021-09-25 09:38:47 -05:00
itzg
814559bef8 docs: Auto update markdown TOC 2021-09-20 02:33:20 +00:00
Geoff Bourne
8bac02bbcf Added JSON-patching support
#1051
2021-09-19 21:32:59 -05:00
itzg
7ef031e244 docs: Auto update markdown TOC 2021-09-19 14:46:55 +00:00
Jawa_Juice
250d32e3dc Remove Yatopia support as discontinued (#1049) 2021-09-19 09:46:40 -05:00
Geoff Bourne
bdeab5bb9c Upgraded mc-image-helper to 1.2.1
#1048
2021-09-16 22:11:45 -05:00
itzg
764e1e9363 docs: Auto update markdown TOC 2021-09-16 16:26:22 +00:00
Mufin
72461546b8 Remove tuinity section from README.md (#1045) 2021-09-16 11:26:05 -05:00
Geoff Bourne
98ad3b0f4a misc: fixed execute bit on scripts 2021-09-15 21:37:10 -05:00
itzg
7afd2adacf docs: Auto update markdown TOC 2021-09-16 02:28:03 +00:00
Geoff Bourne
4c52d0ec42 Replace/interpolate variables in files sync'ed from mounts (#1039) 2021-09-15 21:27:48 -05:00
Geoff Bourne
9f66622472 Added bedrock port to allow for waking from pause
#1046
2021-09-15 21:23:38 -05:00
Geoff Bourne
1f2f33d6c0 Merge branch 'master' of github.com:itzg/docker-minecraft-server 2021-09-15 21:02:05 -05:00
Geoff Bourne
1a3c454d7f Added ping
#891 #1041
2021-09-15 20:53:44 -05:00
itzg
fa11d313fb docs: Auto update markdown TOC 2021-09-16 01:45:45 +00:00
Geoff Bourne
20bc2a97d9 docs: fixed java version example 2021-09-15 20:45:27 -05:00
dependabot[bot]
0cd49c4c81 build(deps): bump stefanzweifel/git-auto-commit-action (#1042) 2021-09-13 06:55:47 -05:00
Geoff Bourne
6c1cd2537d misc: created FUNDING.yml 2021-09-12 21:02:13 -05:00
brutalgg
cf31f24752 docs: Add RLCraft example (#1036) 2021-09-10 10:26:19 -05:00
itzg
27523a1c45 docs: Auto update markdown TOC 2021-09-06 15:53:03 +00:00
Geoff Bourne
e1d0fe6b92 docs: added world data diagram to README 2021-09-06 10:52:44 -05:00
itzg
d3f4a4991e docs: Auto update markdown TOC 2021-09-05 19:11:45 +00:00
Geoff Bourne
296ddbdec5 docs: described unicode conversion for MOTD 2021-09-05 14:11:26 -05:00
Geoff Bourne
f7cd34b8d8 Added unicode conversion for MOTD
#1025
2021-09-04 19:46:18 -05:00
itzg
7bafffbd06 docs: Auto update markdown TOC 2021-09-04 16:04:43 +00:00
Geoff Bourne
201ec3be5a docs: added SETUP_ONLY 2021-09-04 11:04:23 -05:00
itzg
7d1d5af097 docs: Auto update markdown TOC 2021-09-03 21:51:18 +00:00
Geoff Bourne
f9ce5bce4d docs: fixed heading level of timezone config 2021-09-03 16:51:00 -05:00
itzg
748768c771 docs: Auto update markdown TOC 2021-09-02 02:21:29 +00:00
Ross Holmberg
f307077636 Typo (#1027) 2021-09-01 21:21:11 -05:00
455 changed files with 16476 additions and 4827 deletions

17
.gitattributes vendored
View File

@@ -1,17 +0,0 @@
# Auto detect text files and perform LF normalization
* text=auto
# Custom for Visual Studio
*.cs diff=csharp
# Standard to msysgit
*.doc diff=astextplain
*.DOC diff=astextplain
*.docx diff=astextplain
*.DOCX diff=astextplain
*.dot diff=astextplain
*.DOT diff=astextplain
*.pdf diff=astextplain
*.PDF diff=astextplain
*.rtf diff=astextplain
*.RTF diff=astextplain

4
.github/FUNDING.yml vendored Normal file
View File

@@ -0,0 +1,4 @@
github: itzg
custom:
- https://www.buymeacoffee.com/itzg
- https://paypal.me/itzg

41
.github/ISSUE_TEMPLATE/bug.yml vendored Normal file
View File

@@ -0,0 +1,41 @@
name: Bug Report
description: File a bug report
labels:
- bug
- status/needs triage
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to report a bug.
Please double check some things first:
1. Do you just have a question about something? If so, asking in the [Q&A Discussions](https://github.com/itzg/docker-minecraft-server/discussions/categories/q-a) or asking on [the Discord server](https://discord.gg/DXfKpjB) would be best.
2. Did you **re-pull the newest image** and confirmed the issue after that? Run `docker pull <image>` or if using a compose file, it's as easy as running `docker compose pull`. If using Kubernetes, add `imagePullPolicy: Always` to the container.
4. Is this bug happening after the `[init]` prefixed logs and after the log that says "Starting the Minecraft server"? If so, please report the bug with Mojang or the respective server provider.
5. Are you seeing a performance problem? If so, that is typically outside the scope of this image. Ask a question as above or contact the respective server provider.
- type: textarea
id: problem
attributes:
label: Describe the problem
validations:
required: true
- type: textarea
id: container
attributes:
label: Container definition
description: Please provide the compose file or run command used to create the container
value: |
```
Paste run command or compose file here
```
- type: textarea
id: logs
attributes:
label: Container logs
description: |
Please provide container logs from the start of the container, which will be the ones prefixed with `[init]`. It is even better if you can set the variable `DEBUG` to "true" and provide those debug container logs.
value: |
```
Paste logs here
```

7
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@@ -0,0 +1,7 @@
contact_links:
- name: Ask a question in discussions
url: https://github.com/itzg/docker-minecraft-server/discussions
about: Please ask questions here
- name: Ask a question on Discord
url: https://discord.gg/DXfKpjB
about: Please ask questions here

29
.github/ISSUE_TEMPLATE/enhancement.yml vendored Normal file
View File

@@ -0,0 +1,29 @@
name: Enhancement Request
description: Request an enhancement
labels:
- enhancement
- status/needs triage
body:
- type: markdown
attributes:
value: |
Thanks for taking the time to request an enhancement.
Even if you plan on submitting a pull request with a contributed enhancement it is best to describe the enhancement here first. Somebody might already be working on a similar thing and could use your help.
- type: dropdown
id: type
attributes:
label: Enhancement Type
options:
- Improve an existing feature
- A completely new feature
- New server type
- Not sure
validations:
required: true
- type: textarea
id: description
attributes:
label: Describe the enhancement
validations:
required: true

View File

@@ -1,7 +1,24 @@
version: 2
updates:
# Maintain dependencies for GitHub Actions
- package-ecosystem: "github-actions"
directory: "/"
schedule:
interval: "weekly"
groups:
updates:
patterns:
- "*"
update-types:
- patch
- minor
- package-ecosystem: pip
directory: "/docs"
schedule:
interval: weekly
groups:
patches:
patterns:
- "*"
update-types:
- patch
- minor

View File

@@ -1,6 +0,0 @@
daysUntilClose: 14
responseRequiredLabel: "status/waiting on feedback"
closeComment: >
This issue has been automatically closed because there has been no response
after requesting feedback. Please feel free to re-open this issue if the
scenario still exists and provide a comment with more information.

17
.github/release.yml vendored Normal file
View File

@@ -0,0 +1,17 @@
changelog:
exclude:
authors:
- dependabot
categories:
- title: Enhancements
labels:
- enhancement
- title: Bug Fixes
labels:
- bug
- title: Documentation
labels:
- documentation
- title: Other Changes
labels:
- "*"

15
.github/workflows/auto-release.yml vendored Normal file
View File

@@ -0,0 +1,15 @@
name: Auto release
on:
schedule:
- cron: "0 14 * * *"
workflow_dispatch:
jobs:
auto-release:
runs-on: ubuntu-latest
steps:
- uses: zenengeo/github-auto-release-action@main
with:
stable-duration: 3d
force-duration: 14d
token: '${{ secrets.GH_TOKEN }}'

View File

@@ -1,87 +0,0 @@
name: Build and publish multiarch
on:
push:
branches:
- master
- "*-multiarch"
- "multiarch*"
- java8-openj9
- java11*
- java16*
- test/multiarch/*
tags:
- "[0-9]+.[0-9]+.[0-9]+"
- "[0-9]+.[0-9]+.[0-9]+-multiarch*"
- "[0-9]+.[0-9]+.[0-9]+-*multiarch"
- "[0-9]+.[0-9]+.[0-9]+-java8-openj9"
- "[0-9]+.[0-9]+.[0-9]+-java11*"
- "[0-9]+.[0-9]+.[0-9]+-java16*"
paths-ignore:
- "*.md"
- "docs/**"
- "examples/**"
jobs:
docker-buildx:
if: github.repository == 'itzg/docker-minecraft-server'
runs-on: ubuntu-20.04
steps:
- name: Checkout
uses: actions/checkout@v2.3.4
- name: Docker meta
id: meta
uses: docker/metadata-action@v3
with:
images: |
itzg/minecraft-server
tags: |
type=ref,event=branch
type=ref,event=tag
flavor: |
latest=${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Cache Docker layers
uses: actions/cache@v2.1.6
with:
path: /tmp/.buildx-cache
key: ${{ runner.os }}-buildx-${{ github.sha }}
restore-keys: |
${{ runner.os }}-buildx-
- name: Set up QEMU
uses: docker/setup-qemu-action@v1.2.0
- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_USER }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and push
id: docker_build
uses: docker/build-push-action@v2.7.0
with:
context: .
platforms: linux/amd64,linux/arm/v7,linux/arm64
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
# ensure latest base image is used
pull: true
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache-new
labels: ${{ steps.meta.outputs.labels }}
- name: Image digest
run: echo ${{ steps.docker_build.outputs.digest }}
- # Temp fix
# https://github.com/docker/build-push-action/issues/252
# https://github.com/moby/buildkit/issues/1896
name: Move cache
run: |
rm -rf /tmp/.buildx-cache
mv /tmp/.buildx-cache-new /tmp/.buildx-cache

209
.github/workflows/build.yml vendored Normal file
View File

@@ -0,0 +1,209 @@
name: Build and Publish
on:
push:
branches:
- master
- test/**
tags:
- "[0-9]+.[0-9]+.[0-9]+"
paths-ignore:
- "*.md"
- "docs/**"
- "examples/**"
- "notes/**"
- "kustomize/**"
- "docker-compose.yml"
- "images.json"
- "compose-docs.yml"
- "zensical.toml"
- ".readthedocs.yaml"
jobs:
build:
strategy:
fail-fast: false
matrix:
# NOTE: the "latest" variant is identified in the Docker meta step's 'latest' config
variant:
- java25
- java25-jdk
- java21
- java21-alpine
- java21-jdk
- java17
- java16
- java11
- java8
- java8-jdk
include:
# JAVA 25
- variant: java25
baseImage: eclipse-temurin:25-jre
platforms: linux/amd64,linux/arm64
mcVersion: latest
- variant: java25-jdk
baseImage: eclipse-temurin:25
platforms: linux/amd64,linux/arm64
mcVersion: latest
# JAVA 21:
- variant: java21
baseImage: eclipse-temurin:21-jre
platforms: linux/amd64,linux/arm64
mcVersion: latest
- variant: java21-jdk
baseImage: eclipse-temurin:21
platforms: linux/amd64,linux/arm64
mcVersion: latest
- variant: java21-alpine
baseImage: eclipse-temurin:21-jre-alpine
platforms: linux/amd64,linux/arm64
mcVersion: latest
# JAVA 17:
- variant: java17
# jammy doesn't work until minecraft updates to https://github.com/netty/netty/issues/12343
baseImage: eclipse-temurin:17-jre-focal
platforms: linux/amd64,linux/arm/v7,linux/arm64
mcVersion: 1.20.4
# JAVA 16
- variant: java16
baseImage: adoptopenjdk:16-jre-hotspot
platforms: linux/amd64,linux/arm/v7,linux/arm64
mcVersion: 1.16.5
# JAVA 11
- variant: java11
baseImage: adoptopenjdk:11-jre-hotspot
platforms: linux/amd64,linux/arm/v7,linux/arm64
mcVersion: 1.16.4
# JAVA 8: NOTE: Unable to go past 8u312 because of Forge dependencies
- variant: java8
baseImage: eclipse-temurin:8u312-b07-jre-focal
platforms: linux/amd64,linux/arm/v7,linux/arm64
mcVersion: 1.12.2
# Pin version for Java 8
mcHelperVersion: 1.51.1
- variant: java8-jdk
baseImage: eclipse-temurin:8u312-b07-jdk-focal
platforms: linux/amd64,linux/arm64
mcVersion: 1.12.2
# Pin version for Java 8
mcHelperVersion: 1.51.1
env:
IMAGE_TO_TEST: "${{ github.repository_owner }}/minecraft-server:test-${{ matrix.variant }}-${{ github.run_id }}"
HAS_IMAGE_REPO_ACCESS: ${{ secrets.DOCKER_USER != '' && secrets.DOCKER_PASSWORD != '' }}
MAIN_VARIANT: java25
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v6.0.2
with:
# for build-files step
fetch-depth: 0
- name: Docker meta
id: meta
uses: docker/metadata-action@v5.10.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.
images: |
${{ github.repository_owner }}/minecraft-server
ghcr.io/${{ github.repository_owner }}/minecraft-server
tags: |
# Apply the variant as a moving tag for most recent commit per variant
type=raw,value=${{ matrix.variant }},enable=${{ github.ref_name == github.event.repository.default_branch }}
# For the "main" variant, it gets the tag as-is
type=pep440,pattern={{version}},enable=${{ matrix.variant == env.MAIN_VARIANT }}
# ...and all variants (including main one) get the tag with the variant suffix, such as 2023.1.1-java17
type=pep440,pattern={{version}},suffix=-${{ matrix.variant }}
# latest tag gets a moving 'stable' image tag applied to the main variant
type=pep440,pattern=stable,enable=${{ matrix.variant == env.MAIN_VARIANT }}
# ...and qualified stable for all variants
type=pep440,pattern=stable,suffix=-${{ matrix.variant }}
# for building test/* branch images
type=ref,event=branch,suffix=-${{ matrix.variant }},enable=${{ github.ref_name != github.event.repository.default_branch }}
# for backward compatibility with users referencing java8-multiarch, this will set an extra label on java8
type=raw,value=java8-multiarch,enable=${{ matrix.variant == 'java8' && github.ref_name == github.event.repository.default_branch }}
# NOTE this identifies which variant will be published as "latest", which isn't
# necessarily the newest version of Java
flavor: |
latest=${{ matrix.variant == env.MAIN_VARIANT && github.ref_name == github.event.repository.default_branch }}
labels: |
org.opencontainers.image.authors=Geoff Bourne <itzgeoff@gmail.com>
- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v3.12.0
- name: Set up QEMU
uses: docker/setup-qemu-action@v3.7.0
- name: Build for test
uses: docker/build-push-action@v6.18.0
with:
platforms: linux/amd64
tags: ${{ env.IMAGE_TO_TEST }}
# ensure latest base image is used
pull: true
# load into daemon for test usage in next step
load: true
push: false
build-args: |
BASE_IMAGE=${{ matrix.baseImage }}
${{ matrix.mcHelperVersion && format('MC_HELPER_VERSION={0}', matrix.mcHelperVersion) }}
cache-from: type=gha,scope=${{ matrix.variant }}
# no cache-to to avoid cross-cache update from next build step
- name: Run tests
env:
MINECRAFT_VERSION: ${{ matrix.mcVersion }}
VARIANT: ${{ matrix.variant }}
CF_API_KEY: ${{ secrets.CF_API_KEY }}
GH_TOKEN: ${{ github.token }}
run: |
tests/test.sh
- name: Login to DockerHub
uses: docker/login-action@v3.7.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
if: env.HAS_IMAGE_REPO_ACCESS
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ github.token }}
- name: Build and push
uses: docker/build-push-action@v6.18.0
if: github.actor == github.repository_owner
with:
platforms: ${{ matrix.platforms }}
push: >
${{
github.ref_type == 'tag'
|| github.ref_name == github.event.repository.default_branch
|| startsWith(github.ref_name, 'test/')
|| ( github.event_name == 'pull_request'
&& env.HAS_IMAGE_REPO_ACCESS
&& contains(github.event.pull_request.labels.*.name, 'ci/push-image')
)
}}
tags: ${{ steps.meta.outputs.tags }}
# ensure latest base image is used
pull: true
labels: ${{ steps.meta.outputs.labels }}
# Since some consumers, like Watchtower are broken https://github.com/containrrr/watchtower/discussions/1529
# Also refer to https://github.com/docker/build-push-action/releases/tag/v3.3.0
provenance: false
build-args: |
BASE_IMAGE=${{ matrix.baseImage }}
BUILD_FILES_REV=${{ steps.build-files-rev.outputs.REV }}
BUILDTIME=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.created'] }}
VERSION=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.version'] }}
REVISION=${{ fromJSON(steps.meta.outputs.json).labels['org.opencontainers.image.revision'] }}
${{ matrix.mcHelperVersion && format('MC_HELPER_VERSION={0}', matrix.mcHelperVersion) }}
cache-from: type=gha,scope=${{ matrix.variant }}
cache-to: type=gha,mode=max,scope=${{ matrix.variant }}

42
.github/workflows/discord.yml vendored Normal file
View File

@@ -0,0 +1,42 @@
name: Discord notifications
on:
release:
types:
- published
workflow_run:
workflows: ["Build and Publish"]
types:
- completed
env:
DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }}
jobs:
discord:
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- name: on-publish
if: github.event_name == 'release' && github.event.action == 'published'
uses: SethCohen/github-releases-to-discord@v1.19.0
with:
webhook_url: ${{ secrets.DISCORD_WEBHOOK }}
- name: on-success
if: github.event.workflow_run.conclusion == 'success'
uses: Ilshidur/action-discord@master
with:
args: |
Github repo: ${{ github.repository }}
- Branch: ${{ github.event.workflow_run.head_branch }}
- [Link: to Actions](<${{ github.event.workflow_run.html_url }}>)
- Status: 🎉 ${{ github.event.workflow_run.conclusion }} 🍏
- name: on-failure
if: github.event.workflow_run.conclusion == 'failure'
uses: Ilshidur/action-discord@master
with:
args: |
Github repo: ${{ github.repository }}
- Branch: ${{ github.event.workflow_run.head_branch }}
- [Link: to Actions](<${{ github.event.workflow_run.html_url }}>)
- Status: 🤔 ${{ github.event.workflow_run.conclusion }} 💣💥

View File

@@ -1,21 +0,0 @@
name: Generate README table of contents
on:
push:
branches:
- master
paths:
- README.md
jobs:
generate:
if: github.repository == 'itzg/docker-minecraft-server'
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/checkout@v2.3.4
- run: |
curl https://raw.githubusercontent.com/ekalinin/github-markdown-toc/master/gh-md-toc -o gh-md-toc
chmod a+x gh-md-toc
./gh-md-toc --insert --no-backup README.md
- uses: stefanzweifel/git-auto-commit-action@v4.11.0
with:
commit_message: "docs: Auto update markdown TOC"

33
.github/workflows/issue-label.yml vendored Normal file
View File

@@ -0,0 +1,33 @@
name: Issue labels
on:
issues:
types: [labeled, reopened, closed, deleted]
env:
DISCORD_WEBHOOK: ${{ secrets.DISCORD_ISSUES_WEBHOOK }}
jobs:
labelNotify:
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- name: notify on label
if: >
github.event.label.name == 'enhancement'
|| github.event.label.name == 'bug'
|| github.event.label.name == 'help wanted'
|| github.event.label.name == 'priority/high'
|| github.event.label.name == 'question'
|| github.event.label.name == 'status/waiting on upstream'
uses: Ilshidur/action-discord@master
with:
args: "[${{ github.event.issue.title }} (#${{ github.event.issue.number }})](<${{ github.event.issue.html_url }}>) added `${{ github.event.label.name }}` label"
- name: notify on action change
if: >
github.event.action == 'closed'
|| github.event.action == 'reopened'
|| github.event.action == 'deleted'
uses: Ilshidur/action-discord@master
with:
args: "[${{ github.event.issue.title }} (#${{ github.event.issue.number }})](<${{ github.event.issue.html_url }}>) has been `${{ github.event.action }}` by `${{ github.event.sender.login }}`"

View File

@@ -1,100 +0,0 @@
name: Build and Publish
on:
push:
branches:
- java8
- openj9
- openj9-11
- adopt11
- test/*
tags:
- "[0-9]+.[0-9]+.[0-9]+-java8"
- "[0-9]+.[0-9]+.[0-9]+-openj9"
- "[0-9]+.[0-9]+.[0-9]+-openj9-11"
- "[0-9]+.[0-9]+.[0-9]+-openj9-nightly"
- "[0-9]+.[0-9]+.[0-9]+-adopt11"
jobs:
test:
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2.3.4
- name: Run tests
run: |
tests/test.sh
build:
needs:
- test
runs-on: ubuntu-20.04
steps:
- uses: actions/checkout@v2.3.4
- name: Prepare
id: prep
run: |
DOCKER_IMAGE=itzg/minecraft-server
VERSION=edge
if [[ $GITHUB_REF == refs/tags/* ]]; then
VERSION=${GITHUB_REF#refs/tags/}
fi
if [[ $GITHUB_REF == refs/heads/* ]]; then
VERSION=${GITHUB_REF#refs/heads/}
if [[ $VERSION == master ]]; then
VERSION=latest
fi
fi
TAGS="${DOCKER_IMAGE}:${VERSION//\//-}"
echo ::set-output name=tags::${TAGS}
echo ::set-output name=version::${VERSION//\//-}
- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Cache Docker layers
uses: actions/cache@v2.1.6
with:
path: /tmp/.buildx-cache
key: ${{ runner.os }}-buildx-${{ github.sha }}
restore-keys: |
${{ runner.os }}-buildx-
- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKER_USER }}
password: ${{ secrets.DOCKER_PASSWORD }}
- name: Build and push
id: docker_build
uses: docker/build-push-action@v2.7.0
with:
context: .
file: ./Dockerfile
# ensure latest base image is used
pull: true
# publish
push: true
# tags determined by prep step
tags: ${{ steps.prep.outputs.tags }}
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache-new
labels: |
org.opencontainers.image.documentation=https://github.com/itzg/docker-minecraft-server
org.opencontainers.image.version=${{ steps.prep.outputs.version }}
org.opencontainers.image.source=https://github.com/itzg/docker-minecraft-server
org.opencontainers.image.revision=${{ github.sha }}
- name: Image digest
run: echo ${{ steps.docker_build.outputs.digest }}
- # Temp fix
# https://github.com/docker/build-push-action/issues/252
# https://github.com/moby/buildkit/issues/1896
name: Move cache
run: |
rm -rf /tmp/.buildx-cache
mv /tmp/.buildx-cache-new /tmp/.buildx-cache

View File

@@ -1,16 +0,0 @@
name: Validate PR
on:
pull_request:
branches: [ master ]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2.3.4
- name: Run tests
run: |
tests/test.sh

25
.github/workflows/stale-check.yml vendored Normal file
View File

@@ -0,0 +1,25 @@
name: Stale Check
on:
schedule:
- cron: 0 2 * * *
jobs:
check:
runs-on: ubuntu-22.04
permissions:
issues: write
pull-requests: write
steps:
- name: Process Stale Issues
uses: actions/stale@v10
with:
stale-issue-label: status/stale
stale-pr-label: status/stale
stale-issue-message: >
This issue is stale because it has been open 30 days with no activity.
Please add a comment describing the reason to keep this issue open.
days-before-stale: 30
days-before-close: 5
exempt-issue-labels: 'enhancement,keep,status/needs triage,priority/high'

99
.github/workflows/verify-pr.yml vendored Normal file
View File

@@ -0,0 +1,99 @@
name: Verify PR
on:
pull_request:
branches:
- master
paths-ignore:
- "*.md"
- "docs/**"
- "examples/**"
- "notes/**"
- "kustomize/**"
- "docker-compose.yml"
- "images.json"
- "compose-docs.yml"
- "zensical.toml"
- ".readthedocs.yaml"
jobs:
build:
strategy:
fail-fast: false
matrix:
variant:
- java25
- java21-alpine
- java17
- java8
include:
# JAVA 21/25:
- variant: java25
baseImage: eclipse-temurin:25-jre
platforms: linux/amd64,linux/arm64
mcVersion: latest
- variant: java21-alpine
baseImage: eclipse-temurin:21-jre-alpine
platforms: linux/amd64,linux/arm64
mcVersion: latest
# JAVA 17:
- variant: java17
# jammy doesn't work until minecraft updates to https://github.com/netty/netty/issues/12343
baseImage: eclipse-temurin:17-jre-focal
platforms: linux/amd64
mcVersion: 1.20.4
- variant: java8
baseImage: eclipse-temurin:8u312-b07-jre-focal
platforms: linux/amd64
mcVersion: 1.12.2
# Pin version for Java 8
mcHelperVersion: 1.51.1
env:
IMAGE_TO_TEST: ${{ github.repository_owner }}/minecraft-server:test-${{ matrix.variant }}-${{ github.run_id }}
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v6.0.2
with:
# for build-files step
fetch-depth: 0
- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v3.12.0
- name: Confirm multi-arch build
uses: docker/build-push-action@v6.18.0
with:
platforms: ${{ matrix.platforms }}
# ensure latest base image is used
pull: true
build-args: |
BASE_IMAGE=${{ matrix.baseImage }}
${{ matrix.mcHelperVersion && format('MC_HELPER_VERSION={0}', matrix.mcHelperVersion) }}
cache-from: type=gha,scope=${{ matrix.variant }}
- name: Build for test
uses: docker/build-push-action@v6.18.0
with:
# Only build single platform since loading multi-arch image into daemon fails with
# "docker exporter does not currently support exporting manifest lists"
platforms: linux/amd64
tags: ${{ env.IMAGE_TO_TEST }}
# ensure latest base image is used
pull: true
# load into daemon for test usage in next step
load: true
push: false
build-args: |
BASE_IMAGE=${{ matrix.baseImage }}
${{ matrix.mcHelperVersion && format('MC_HELPER_VERSION={0}', matrix.mcHelperVersion) }}
cache-from: type=gha,scope=${{ matrix.variant }}
- name: Run tests
env:
MINECRAFT_VERSION: ${{ matrix.mcVersion }}
VARIANT: ${{ matrix.variant }}
CF_API_KEY: ${{ secrets.CF_API_KEY }}
DEBUG: ${{ runner.debug }}
GH_TOKEN: ${{ github.token }}
run: |
tests/test.sh

5
.gitignore vendored
View File

@@ -1,4 +1,7 @@
.vscode
/data/
/.idea/
*.iml
/gh-md-toc
/gh-md-toc
personal-build-and-develop.*
site/

22
.readthedocs.yaml Normal file
View File

@@ -0,0 +1,22 @@
version: 2
python:
install:
- requirements: docs/requirements.txt
build:
os: ubuntu-24.04
tools:
python: latest
jobs:
# We recommend using a requirements file for reproducible builds.
# This is just a quick example to get started.
# https://docs.readthedocs.io/page/guides/reproducible-builds.html
install:
- pip install zensical
build:
html:
- zensical build
post_build:
- mkdir -p $READTHEDOCS_OUTPUT/html/
- cp --recursive site/* $READTHEDOCS_OUTPUT/html/

View File

@@ -1,11 +0,0 @@
Ensure buildx/BuildKit support is enabled and run:
```shell script
docker buildx build --platform=linux/arm64 --platform=linux/arm/v7 --platform=linux/amd64 --tag itzg/minecraft-server:multiarch --push .
```
To build for local testing, use:
```shell script
docker buildx build --platform=linux/amd64 --tag mc-multiarch --load .
```

View File

@@ -1,74 +0,0 @@
## Adding a server type
Adding a new server `TYPE` can vary due to the complexity of obtaining and configuring each type; however, the addition of any server type includes at least the following steps:
1. Copy an existing "start-deploy*" script, such as [start-deployMohist](start-deployMohist) and rename it accordingly making sure to retain the "start-deploy" prefix
2. Modify the type-specific behavior between the "start-utils" preamble and the hand-off to `start-finalSetupWorld` at the end of the script
3. Develop and test the changes using the [iterative process described below](#iterative-script-development)
4. Add a case-entry to the `case "${TYPE^^}"` in [start-configuration](start-configuration)
5. Add a section to the [README](README.md). It is recommended to copy-modify an existing section to retain a similar wording and level of detail
6. [Submit a pull request](https://github.com/itzg/docker-minecraft-server/pulls)
## Iterative script development
Individual scripts can be iteratively developed, debugged, and tested using the following procedure.
First, build a baseline of the image to include the packages needed by existing or new scripts:
```shell script
docker build -t mc-dev .
```
Using the baseline image, an interactive container can be started to iteratively run the scripts to be developed. By attaching the current workspace directory, you can use the local editor of your choice to iteratively modify scripts while using the container to run them.
```shell script
docker run -it --rm -v ${PWD}:/scripts -e SCRIPTS=/scripts/ --entrypoint bash mc-dev
```
From within the container you can run individual scripts via the attached `/scripts/` path; however, be sure to set any environment variables expected by the scripts by either `export`ing them manually:
```shell script
export VANILLA_VERSION=1.12.2
/scripts/start-magma
```
...or pre-pending script execution:
```shell script
VANILLA_VERSION=1.12.2 /scripts/start-magma
```
> NOTE: You may want to temporarily add an `exit` statement near the end of your script to isolate execution to just the script you're developing.
## Multi-base-image variants
Several base-image variants are maintained in order to offer choices in JDK provider and version. The variants are maintained in their respective branches:
- openj9
- openj9-nightly
- adopt11
- adopt13
- multiarch
The [docker-versions-create.sh](docker-versions-create.sh) script is configured with the branches to maintain and is used to merge changes from the master branch into the mulit-base variant branches. The script also manages git tagging the master branch along with the merged branches. So a typical use of the script would be like:
```shell script
./docker-versions-create.sh -s -t 1.2.0
```
> Most often the major version will be bumped unless a bug or hotfix needs to be published in which case the patch version should be incremented.
> The build and publishing of those branches and their tags is currently performed within Docker Hub.
## multiarch support
The [multiarch branch](https://github.com/itzg/docker-minecraft-server/tree/multiarch) supports running the image on amd64, arm64, and armv7 (aka RaspberryPi). Unlike the mainline branches, it is based on Ubuntu 18.04 since the openjdk package provided by Ubuntu includes full JIT support on all of the processor types.
The multiarch images are built and published by [a Github action](https://github.com/itzg/docker-minecraft-server/actions?query=workflow%3A%22Build+and+publish+multiarch%22), which [is configured in that branch](https://github.com/itzg/docker-minecraft-server/blob/multiarch/.github/workflows/build-multiarch.yml).
## Generating release notes
The following git command can be used to provide the bulk of release notes content:
```shell script
git log --invert-grep --grep "^ci:" --grep "^misc:" --grep "^docs:" --pretty="- %s" 1.1.0..1.2.0
```

View File

@@ -1,33 +1,5 @@
FROM adoptopenjdk:8-jre-hotspot
LABEL org.opencontainers.image.authors="Geoff Bourne <itzgeoff@gmail.com>"
RUN apt-get update \
&& DEBIAN_FRONTEND=noninteractive \
apt-get install -y \
imagemagick \
gosu \
sudo \
net-tools \
curl wget \
git \
jq \
dos2unix \
mysql-client \
tzdata \
rsync \
nano \
unzip \
knockd \
ttf-dejavu \
&& apt-get clean
RUN addgroup --gid 1000 minecraft \
&& adduser --system --shell /bin/false --uid 1000 --ingroup minecraft --home /data minecraft
COPY files/sudoers* /etc/sudoers.d
EXPOSE 25565 25575
ARG BASE_IMAGE=eclipse-temurin:25-jre
FROM ${BASE_IMAGE}
# hook into docker BuildKit --platform support
# see https://docs.docker.com/engine/reference/builder/#automatic-platform-args-in-the-global-scope
@@ -35,55 +7,90 @@ ARG TARGETOS
ARG TARGETARCH
ARG TARGETVARIANT
ARG EASY_ADD_VER=0.7.1
ADD https://github.com/itzg/easy-add/releases/download/${EASY_ADD_VER}/easy-add_${TARGETOS}_${TARGETARCH}${TARGETVARIANT} /usr/bin/easy-add
# The following three arg/env vars get used by the platform specific "install-packages" script
ARG EXTRA_DEB_PACKAGES=""
ARG EXTRA_DNF_PACKAGES=""
ARG EXTRA_ALPINE_PACKAGES=""
ARG FORCE_INSTALL_PACKAGES=1
RUN --mount=target=/build,source=build \
TARGET=${TARGETARCH}${TARGETVARIANT} \
/build/run.sh install-packages
COPY --from=tianon/gosu /gosu /usr/local/bin/
RUN --mount=target=/build,source=build \
/build/run.sh setup-user
EXPOSE 25565
ARG APPS_REV=1
ARG GITHUB_BASEURL=https://github.com
ARG EASY_ADD_VERSION=0.8.11
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
ARG RESTIFY_VERSION=1.7.11
RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
--var version=1.2.0 --var app=restify --file {{.app}} \
--from https://github.com/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
--var version=${RESTIFY_VERSION} --var app=restify --file {{.app}} \
--from ${GITHUB_BASEURL}/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
ARG RCON_CLI_VERSION=1.7.3
RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
--var version=1.4.7 --var app=rcon-cli --file {{.app}} \
--from https://github.com/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
--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
ARG MC_MONITOR_VERSION=0.16.0
RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
--var version=0.7.1 --var app=mc-monitor --file {{.app}} \
--from https://github.com/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
--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
ARG MC_SERVER_RUNNER_VERSION=1.14.1
RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
--var version=1.7.0 --var app=mc-server-runner --file {{.app}} \
--from https://github.com/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
--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
RUN easy-add --var os=${TARGETOS} --var arch=${TARGETARCH}${TARGETVARIANT} \
--var version=0.1.1 --var app=maven-metadata-release --file {{.app}} \
--from https://github.com/itzg/{{.app}}/releases/download/{{.version}}/{{.app}}_{{.version}}_{{.os}}_{{.arch}}.tar.gz
COPY mcstatus /usr/local/bin
ARG MC_HELPER_VERSION=1.53.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
RUN curl -fsSL ${MC_HELPER_BASE_URL}/mc-image-helper-${MC_HELPER_VERSION}.tgz \
| tar -C /usr/share -zxf - \
&& ln -s /usr/share/mc-image-helper-${MC_HELPER_VERSION}/ /usr/share/mc-image-helper \
&& ln -s /usr/share/mc-image-helper/bin/mc-image-helper /usr/bin
VOLUME ["/data"]
COPY server.properties /tmp/server.properties
COPY log4j2.xml /tmp/log4j2.xml
WORKDIR /data
STOPSIGNAL SIGTERM
ENV UID=1000 GID=1000 \
MEMORY="1G" \
TYPE=VANILLA VERSION=LATEST \
ENABLE_RCON=true RCON_PORT=25575 RCON_PASSWORD=minecraft \
SERVER_PORT=25565 ONLINE_MODE=TRUE SERVER_NAME="Dedicated Server" \
ENABLE_AUTOPAUSE=false AUTOPAUSE_TIMEOUT_EST=3600 AUTOPAUSE_TIMEOUT_KN=120 AUTOPAUSE_TIMEOUT_INIT=600 \
AUTOPAUSE_PERIOD=10 AUTOPAUSE_KNOCK_INTERFACE=eth0
# End user MUST set EULA and change RCON_PASSWORD
ENV TYPE=VANILLA VERSION=LATEST EULA="" UID=1000 GID=1000 LC_ALL=en_US.UTF-8
COPY start* /
COPY health.sh /
ADD files/autopause /autopause
COPY --chmod=755 scripts/start* /image/scripts/
RUN dos2unix /start* && chmod +x /start*
RUN dos2unix /health.sh && chmod +x /health.sh
RUN dos2unix /autopause/* && chmod +x /autopause/*.sh
# Backward compatible shim for those with legacy entrypoint
COPY --chmod=755 <<EOF /start
#!/bin/bash
exec /image/scripts/start
EOF
COPY --chmod=755 scripts/auto/* /image/scripts/auto/
COPY --chmod=755 scripts/shims/* /image/scripts/shims/
RUN ln -s /image/scripts/shims/* /usr/local/bin/
COPY --chmod=755 files/* /image/
ENTRYPOINT [ "/start" ]
HEALTHCHECK --start-period=1m CMD /health.sh
RUN curl -fsSL -o /image/Log4jPatcher.jar https://github.com/CreeperHost/Log4jPatcher/releases/download/v1.0.1/Log4jPatcher-1.0.1.jar
RUN dos2unix /image/scripts/start* /image/scripts/auto/*
ENTRYPOINT [ "/image/scripts/start" ]
HEALTHCHECK --start-period=2m --retries=2 --interval=30s CMD mc-health
ARG BUILDTIME=local
ARG VERSION=local
ARG REVISION=local
COPY <<EOF /etc/image.properties
buildtime=${BUILDTIME}
version=${VERSION}
revision=${REVISION}
EOF

1379
README.md

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,47 @@
#!/bin/sh
set -e
set -o pipefail
# Install necessary packages
# shellcheck disable=SC2086
apk add --no-cache -U \
openssl \
imagemagick \
file \
lsof \
coreutils \
findutils \
procps \
shadow \
bash \
curl \
iputils \
git \
jq \
mysql-client \
tzdata \
rsync \
nano \
ncurses \
sudo \
tar \
zstd \
nfs-utils \
libpcap \
libwebp \
libcap \
${EXTRA_ALPINE_PACKAGES}
# Download and install patched knockd
curl -fsSL -o /tmp/knock.tar.gz https://github.com/Metalcape/knock/releases/download/0.8.1/knock-0.8.1-alpine-amd64.tar.gz
tar -xf /tmp/knock.tar.gz -C /usr/local/ && rm /tmp/knock.tar.gz
ln -s /usr/local/sbin/knockd /usr/sbin/knockd
setcap cap_net_raw=ep /usr/local/sbin/knockd
# Set Git credentials globally
cat <<EOF >> /etc/gitconfig
[user]
name = Minecraft Server on Docker
email = server@example.com
EOF

6
build/alpine/setup-user.sh Executable file
View File

@@ -0,0 +1,6 @@
#!/bin/sh
set -e
addgroup -g 1000 minecraft
adduser -Ss /bin/false -u 1000 -G minecraft -h /home/minecraft minecraft

83
build/ol/install-packages.sh Executable file
View File

@@ -0,0 +1,83 @@
#!/bin/bash
export TARGET
set -euo pipefail
os_major_version=$(awk -F'[= ."]+' '/^VERSION_ID=/{ print $2 }' /etc/os-release)
# Install and configure dnf
microdnf install dnf -y
dnf install 'dnf-command(config-manager)' -y
dnf config-manager --set-enabled ol${os_major_version}_codeready_builder
# Add EPEL repository
tee /etc/yum.repos.d/ol${os_major_version}-epel.repo <<EOF
[ol${os_major_version}_developer_EPEL]
name=Oracle Linux \$releasever EPEL (\$basearch)
baseurl=https://yum.oracle.com/repo/OracleLinux/OL${os_major_version}$([ "$os_major_version" -ge 10 ] && echo '/0' || echo '')/developer/EPEL/\$basearch/
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-oracle
gpgcheck=1
enabled=1
EOF
# Update system
dnf update -y
# Install necessary packages
# shellcheck disable=SC2086
# shellcheck disable=SC2046
dnf install -y \
ImageMagick \
file \
sudo \
net-tools \
iputils \
curl \
git \
jq \
dos2unix \
$([ "$os_major_version" -ge 10 ] && echo 'mysql8.4' || echo 'mysql') \
procps-ng \
tzdata \
rsync \
nano \
unzip \
zstd \
$([ "$os_major_version" -ge 10 ] && echo 'bzip2' || echo 'lbzip2') \
libpcap \
libwebp \
findutils \
which \
glibc-langpack-en \
$([ "$os_major_version" -ge 10 ] && echo 'git-lfs' || echo '') \
$([ "$os_major_version" -ge 10 ] && echo 'openssl' || echo '') \
${EXTRA_DNF_PACKAGES}
# Install Git LFS through third party repository for older OL releases
if [ "$os_major_version" -lt 10 ]; then
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.rpm.sh | sudo bash
dnf update -y
dnf install -y git-lfs
fi
# Clean up DNF when done
dnf clean all
cat <<EOF > /usr/local/sbin/knockd
#!/bin/sh
echo "Auto-pause (using knockd) is currently unavailable on graalvm image variants"
echo "Consider using a different image variant https://docker-minecraft-server.readthedocs.io/en/latest/versions/java/"
echo "or mc-router's auto scale up/down feature https://github.com/itzg/mc-router#docker-auto-scale-updown"
exit 2
EOF
chmod 755 /usr/local/sbin/knockd
# TODO restore retrieval from https://github.com/Metalcape/knock when tar's "Cannot open: Invalid argument" is solved
# Set git credentials globally
cat <<EOF >> /etc/gitconfig
[user]
name = Minecraft Server on Docker
email = server@example.com
EOF

2
build/ol/setup-user.sh Executable file
View File

@@ -0,0 +1,2 @@
groupadd --gid 1000 minecraft
useradd --system --shell /bin/false --uid 1000 -g minecraft --home /data minecraft

7
build/run.sh Executable file
View File

@@ -0,0 +1,7 @@
#!/bin/sh
set -e
distro=$(cat /etc/os-release | grep -E "^ID=" | cut -d= -f2 | sed -e 's/"//g')
"$(dirname "$0")/${distro}/$1".sh

View File

@@ -0,0 +1,52 @@
#!/bin/bash
export TARGET
set -euo pipefail
# Update and install packages
apt-get update
# shellcheck disable=SC2086
DEBIAN_FRONTEND=noninteractive \
apt-get install -y \
imagemagick \
file \
sudo \
net-tools \
iputils-ping \
curl \
git \
jq \
dos2unix \
mysql-client \
tzdata \
rsync \
nano \
unzip \
zstd \
lbzip2 \
nfs-common \
libpcap0.8 \
${EXTRA_DEB_PACKAGES}
# Install Git LFS
curl -s https://packagecloud.io/install/repositories/github/git-lfs/script.deb.sh | sudo bash
apt-get update
apt-get install -y git-lfs
# Clean up APT when done
apt-get clean
# Download and install patched knockd
curl -fsSL -o /tmp/knock.tar.gz https://github.com/Metalcape/knock/releases/download/0.8.1/knock-0.8.1-$TARGET.tar.gz
tar -xf /tmp/knock.tar.gz -C /usr/local/ && rm /tmp/knock.tar.gz
ln -s /usr/local/sbin/knockd /usr/sbin/knockd
setcap cap_net_raw=ep /usr/local/sbin/knockd
find /usr/lib -name 'libpcap.so.0.8' -execdir cp '{}' libpcap.so.1 \;
# Set git credentials globally
cat <<EOF >> /etc/gitconfig
[user]
name = Minecraft Server on Docker
email = server@example.com
EOF

10
build/ubuntu/setup-user.sh Executable file
View File

@@ -0,0 +1,10 @@
#!/bin/sh
set -e
if id ubuntu > /dev/null 2>&1; then
deluser ubuntu
fi
addgroup --gid 1000 minecraft
adduser --system --shell /bin/false --uid 1000 --ingroup minecraft --home /data minecraft

16
compose-docs.yml Normal file
View File

@@ -0,0 +1,16 @@
# This composition can be used to serve up the rendered mkdocs for local authoring.
#
# docker compose -f compose-docs.yml -p zensical up
#
# and then access http://localhost:8000
services:
zensical:
build:
context: .
dockerfile: docs/Dockerfile
volumes:
- ./zensical.toml:/docs/zensical.toml
- ./docs:/docs/docs
ports:
- "8000:8000"

View File

@@ -1,16 +1,14 @@
version: '3'
# Other docker-compose examples in /examples
services:
minecraft:
image: itzg/minecraft-server
ports:
- "25565:25565"
volumes:
- "mc:/data"
environment:
EULA: "TRUE"
restart: always
volumes:
mc: {}
services:
mc:
image: itzg/minecraft-server
environment:
EULA: "true"
ports:
- "25565:25565"
volumes:
- data:/data
stdin_open: true
tty: true
restart: unless-stopped
volumes:
data: {}

View File

@@ -1,133 +0,0 @@
#!/bin/bash
#set -x
# Use this variable to indicate a list of branches that docker hub is watching
branches_list=(
'java8'
'java8-multiarch'
'java8-openj9'
'java11'
'java11-openj9'
'java16'
'java16-openj9'
'multiarch-latest'
)
function TrapExit {
echo "Checking out back in master"
git checkout master
}
batchMode=false
while getopts "hbt:s" arg
do
case $arg in
b)
batchMode=true
;;
t)
tag=${OPTARG}
;;
s)
tagArgs="-s -m 'Signed during docker-versions-create"
;;
h)
echo "
Usage $0 [options]
Options:
-b enable batch mode, which avoids interactive prompts and causes script to fail immediately
when any merge fails
-t TAG tag and push the current revision on master with the given tag
and apply respective tags to each branch
-s enable signed tags
-h display this help and exit
"
exit
;;
*)
echo "Unsupported arg $arg"
exit 2
;;
esac
done
${batchMode} && echo "Using batch mode"
trap TrapExit EXIT SIGTERM
test -d ./.git || { echo ".git folder was not found. Please start this script from root directory of the project!";
exit 1; }
# Making sure we are in master
git checkout master
git pull --all || { echo "Can't pull the repo!"; \
exit 1; }
if [[ $tag ]]; then
git tag $tag
git push origin $tag
fi
git_branches=$(git branch -a)
for branch in "${branches_list[@]}"; do
if [[ "$git_branches" != *"$branch"* ]]; then
echo "Can't update $branch because I can't find it in the list of branches."
exit 1
else
echo "Branch $branch found. Working with it."
git checkout "$branch" || { echo "Can't checkout into the branch. Don't know the cause."; \
exit 1; }
proceed='False'
while [[ "$proceed" == "False" ]]; do
# Ensure local branch is aligned with remote since docker-versions-create may have been run elsewhere
git pull
if git merge -m 'Auto-merging via docker-versions-create' master; then
proceed="True"
echo "Branch $branch updated to current master successfully"
# pushing changes to remote for this branch
git commit -m "Auto merge branch with master" -a
# push may fail if remote doesn't have this branch yet. In this case - sending branch
git push || git push -u origin "$branch" || { echo "Can't push changes to the origin."; exit 1; }
if [[ $tag ]]; then
git tag "$tag-$branch"
git push origin "$tag-$branch"
fi
elif ${batchMode}; then
status=$?
echo "Git merge failed in batch mode"
exit ${status}
# and trap exit gets us back to master
else
cat<<EOL
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Master merge in the branch $branch encountered an error!
You may try to fix the error and merge again. (Commit changes)
Or skip this branch merge completely.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
EOL
printf "Should we try again? (y):"
read -r answer
if [[ "$answer" == '' ]] || [[ "$answer" == 'y' ]] || [[ "$answer" == 'Y' ]]; then
# If you use non-local editor or files are changed in repo
cat <<EOL
The following commands may encounter an error!
This is completely fine if the changes were made locally and remote branch doesn't know about them.
EOL
# Updating branch from remote before trying again
git checkout master
git fetch --all
git pull -a
git checkout "$branch"
continue
else
break
fi
fi
done
fi
done

4
docs/Dockerfile Normal file
View File

@@ -0,0 +1,4 @@
FROM zensical/zensical
RUN --mount=target=/build/requirements.txt,source=docs/requirements.txt \
pip install -r /build/requirements.txt

View File

@@ -0,0 +1,71 @@
# Auto-execute RCON commands
RCON commands can be configured to execute when the server starts, a client connects, or a client disconnects.
!!! note
When declaring several commands within a compose file environment variable, it's easiest to use YAML's `|-` [block style indicator](https://yaml-multiline.info/).
**On Server Start:**
``` yaml
RCON_CMDS_STARTUP: |-
gamerule doFireTick false
pregen start 200
```
**On Client Connection:**
``` yaml
RCON_CMDS_ON_CONNECT: |-
team join New @a[team=]
```
**Note:**
* On client connect we only know there was a connection, and not who connected. RCON commands will need to be used for that.
**On Client Disconnect:**
``` yaml
RCON_CMDS_ON_DISCONNECT: |-
gamerule doFireTick true
```
**On First Client Connect**
``` yaml
RCON_CMDS_FIRST_CONNECT: |-
pregen stop
```
**On Last Client Disconnect**
``` yaml
RCON_CMDS_LAST_DISCONNECT: |-
kill @e[type=minecraft:boat]
pregen start 200
```
**Example of rules for new players**
Uses team NEW and team OLD to track players on the server. So move player with no team to NEW, run a command, move them to team OLD.
[Reference Article](https://www.minecraftforum.net/forums/minecraft-java-edition/redstone-discussion-and/2213523-detect-players-first-join)
``` yaml
RCON_CMDS_STARTUP: |-
/pregen start 200
/gamerule doFireTick false
/team add New
/team add Old
RCON_CMDS_ON_CONNECT: |-
/team join New @a[team=]
/give @a[team=New] birch_boat
/team join Old @a[team=New]
RCON_CMDS_FIRST_CONNECT: |-
/pregen stop
RCON_CMDS_LAST_DISCONNECT: |-
/kill @e[type=minecraft:boat]
/pregen start 200
```

View File

@@ -0,0 +1,140 @@
---
title: Modifying config files
---
## Replacing variables inside configs
Sometimes you have mods or plugins that require configuration information that is only available at deploy-time. For example if you need to configure a plugin to connect to a database, you don't want to include this information in your Git repository or Docker image.
Or maybe you have some runtime information like the server name that needs to be set in your config files after the container starts.
For those cases there is the option to replace defined variables inside your configs with environment variables defined at container runtime.
When the environment variable `REPLACE_ENV_IN_PLACE` is set to `true` (the default), the startup script will go through all files inside the container's `/data` path and replace variables that match the container's environment variables. Variables can instead (or in addition to) be replaced in files sync'ed from `/plugins`, `/mods`, and `/config` by setting `REPLACE_ENV_DURING_SYNC` to `true` (defaults to `false`).
Variables that you want to replace need to be declared inside curly brackets and prefixed with a dollar sign, such as `${CFG_YOUR_VARIABLE}`, which is same as many scripting languages.
You can also change `REPLACE_ENV_VARIABLE_PREFIX`, which defaults to "CFG_", to limit which environment variables are allowed to be used. For example, with "CFG_" as the prefix, the variable `${CFG_DB_HOST}` would be substituted, but not `${DB_HOST}`. The prefix can be set to an empty string to allow for matching any variable name.
If you want to use a file's content for value, such as when using secrets mounted as files, declare the placeholder named like normal in the file and declare an environment variable named the same but with the suffix `_FILE`.
For example, a `my.cnf` file could contain:
```toml
[client]
password = ${CFG_DB_PASSWORD}
```
...a secret declared in the compose file with:
```yaml
secrets:
db_password:
external: true
```
...and finally the environment variable would be named with a `_FILE` suffix and point to the mounted secret:
```yaml
environment:
CFG_DB_PASSWORD_FILE: /run/secrets/db_password
```
Variables will be replaced in files with the following extensions:
`.yml`, `.yaml`, `.txt`, `.cfg`, `.conf`, `.properties`.
Specific files can be excluded by listing their name (without path) in the variable `REPLACE_ENV_VARIABLES_EXCLUDES`.
Paths can be excluded by listing them in the variable `REPLACE_ENV_VARIABLES_EXCLUDE_PATHS`. Path
excludes are recursive. Here is an example:
```
REPLACE_ENV_VARIABLES_EXCLUDE_PATHS="/data/plugins/Essentials/userdata /data/plugins/MyPlugin"
```
Here is a full example where we want to replace values inside a `database.yml`.
```yaml
---
database:
host: ${CFG_DB_HOST}
name: ${CFG_DB_NAME}
password: ${CFG_DB_PASSWORD}
```
This is how your `compose.yaml` file could look like:
```yaml title="compose.yaml"
# Other docker compose examples in /examples
services:
minecraft:
image: itzg/minecraft-server
ports:
- "25565:25565"
volumes:
- "mc:/data"
environment:
EULA: "TRUE"
ENABLE_RCON: "true"
RCON_PASSWORD: "testing"
RCON_PORT: 28016
# enable env variable replacement
REPLACE_ENV_VARIABLES: "TRUE"
# define an optional prefix for your env variables you want to replace
ENV_VARIABLE_PREFIX: "CFG_"
# and here are the actual variables
CFG_DB_HOST: "http://localhost:3306"
CFG_DB_NAME: "minecraft"
CFG_DB_PASSWORD_FILE: "/run/secrets/db_password"
volumes:
mc:
rcon:
secrets:
db_password:
file: ./db_password
```
## Patching existing files
JSON path based patches can be applied to one or more existing files by setting the variable `PATCH_DEFINITIONS` to the path of a directory that contains one or more [patch definition json files](https://github.com/itzg/mc-image-helper#patchdefinition) or a [patch set json file](https://github.com/itzg/mc-image-helper#patchset).
The `file` and `value` fields of the patch definitions may contain `${...}` variable placeholders. The allowed environment variables in placeholders can be restricted by setting `REPLACE_ENV_VARIABLE_PREFIX`, which defaults to "CFG_".
The following example shows a patch-set file where various fields in the `paper.yaml` configuration file can be modified and added:
```json
{
"patches": [
{
"file": "/data/paper.yml",
"ops": [
{
"$set": {
"path": "$.verbose",
"value": true
}
},
{
"$set": {
"path": "$.settings['velocity-support'].enabled",
"value": "${CFG_VELOCITY_ENABLED}",
"value-type": "bool"
}
},
{
"$put": {
"path": "$.settings",
"key": "my-test-setting",
"value": "testing"
}
}
]
}
]
}
```
Supports the file formats:
- JSON
- JSON5
- Yaml
- TOML, but processed output is not pretty

View File

@@ -0,0 +1,133 @@
# JVM Options
## Memory Limit
By default, the image declares an initial and maximum Java memory-heap limit of 1 GB. There are several ways to adjust the memory settings:
- `MEMORY`: "1G" by default, can be used to adjust both initial (`Xms`) and max (`Xmx`) memory heap settings of the JVM
- `INIT_MEMORY`: independently sets the initial heap size
- `MAX_MEMORY`: independently sets the max heap size
The values of all three are passed directly to the JVM and support format/units as `<size>[g|G|m|M|k|K]`.
To have control over heap size, without relying on absolute memory sizes percentages are also supported using `<size>%`.
!!! info "RAMPercentage parameters"
Percentage based heap sizing is enabled using `-XX:InitialRAMPercentage` for `INIT_MEMORY` and `-XX:MaxRAMPercentage` for `MAX_MEMORY`.
For details on the function of these parameters look [here](https://www.baeldung.com/java-jvm-parameters-rampercentage).
!!! example "Using docker run"
```
-e MEMORY=2G
```
or to use init and max memory:
```
-e INIT_MEMORY=1G -e MAX_MEMORY=4G
```
!!! example "Using compose file"
```
environment:
MEMORY: 2G
```
or to use init and max memory:
```
environment:
INIT_MEMORY: 1G
MAX_MEMORY: 4G
```
To let the JVM calculate the heap size from the container declared memory limit, unset `MEMORY` with an empty value, such as `-e MEMORY=""`. By default, the JVM will use 25% of the container memory limit as the heap limit.
!!! important
The settings above only set the Java **heap** limits. Memory resource requests and limits on the overall container should also account for non-heap memory usage. An extra 25% is [a general best practice](https://dzone.com/articles/best-practices-java-memory-arguments-for-container).
## Extra JVM Options
General JVM options can be passed to the Minecraft Server invocation by passing a `JVM_OPTS`
environment variable. If needing to set `-XX` options, then pass those with the `JVM_XX_OPTS` variable instead. Both variables accept space-delimited, raw JVM arguments.
```
docker run ... -e JVM_OPTS="-XsomeJVMOption -DpropName=value" ...
```
**NOTE** When declaring `JVM_OPTS` in a compose file's `environment` section with list syntax, **do not** include the quotes:
```yaml
environment:
- EULA=true
- JVM_OPTS=-XsomeJVMOption -DpropName=value
```
Using object syntax is recommended and more intuitive:
```yaml
environment:
EULA: "true"
JVM_OPTS: "-XsomeJVMOption -DpropName=value"
# or without quotes
# JVM_OPTS: -XsomeJVMOption -DpropName=value
```
As a shorthand for passing several system properties as `-D` arguments, you can instead pass a comma separated list of `name=value` or `name:value` pairs with `JVM_DD_OPTS`. (The colon syntax is provided for management platforms like Plesk that don't allow `=` inside a value.)
For example, instead of passing
```yaml
JVM_OPTS: -Dfml.queryResult=confirm -Dname=value
```
you can use
```yaml
JVM_DD_OPTS: fml.queryResult=confirm,name=value
```
## Enable Remote JMX for Profiling
To enable remote JMX, such as for profiling with VisualVM or JMC, set the environment variable `ENABLE_JMX` to "true", set `JMX_HOST` to the IP/host running the Docker container, and add a port forwarding of TCP port 7091, such as:
!!! example
With `docker run`
```
-e ENABLE_JMX=true -e JMX_HOST=$HOSTNAME -p 7091:7091
```
If needing to map to a different port, then also set the environment variable `JMX_PORT` to the desired host port.
!!! example
With a compose file:
```yaml
environment:
ENABLE_JMX: true
JMX_HOST: ${HOSTNAME}
JMX_PORT: "7092"
ports:
- "7092:7092"
```
## Enable Aikar's Flags
[Aikar has done some research](https://aikar.co/2018/07/02/tuning-the-jvm-g1gc-garbage-collector-flags-for-minecraft/) into finding the optimal JVM flags for GC tuning, which becomes more important as more users are connected concurrently. [PaperMC also has an explanation](https://docs.papermc.io/paper/aikars-flags) of what the JVM flags are doing.
The set of flags documented there can be added using
-e USE_AIKAR_FLAGS=true
When `MEMORY` is greater than or equal to 12G, then the Aikar flags will be adjusted according to the article.
## Enable MeowIce's Flags
[MeowIce has created an updated set of JVM flags](https://github.com/MeowIce/meowice-flags?tab=readme-ov-file#why-would-i-have-to-switch-) based on Aikar's flags but with support for optimizations for Java 17 and above
The set of flags documented there can be added by setting the environment variable `USE_MEOWICE_FLAGS` to `true`. There is an optional `USE_MEOWICE_GRAALVM_FLAGS` variable to enable GraalVM specific optimizations, defaults to `FALSE`.

View File

@@ -0,0 +1,239 @@
## Running with a custom server JAR
If you would like to run a custom server JAR, set `-e TYPE=CUSTOM` and pass the custom server
JAR via `CUSTOM_SERVER`. It can either be a URL or a container path to an existing JAR file.
If it is a URL, it will only be downloaded into the `/data` directory if it wasn't already. As
such, if you need to upgrade or re-download the JAR, then you will need to stop the container,
remove the file from the container's `/data` directory, and start again.
## Force re-download of the server file
For VANILLA, FORGE, BUKKIT, SPIGOT, PAPER, CURSEFORGE, SPONGEVANILLA server types, set
`$FORCE_REDOWNLOAD` to some value (e.g. 'true) to force a re-download of the server file for
the particular server type. by adding a `-e FORCE_REDOWNLOAD=true` to your command-line.
For example, with Paper, it would look something like this:
```
docker run -d --pull=always \
-v /path/on/host:/data \
-e TYPE=PAPER -e FORCE_REDOWNLOAD=true \
-p 25565:25565 -e EULA=TRUE --name mc itzg/minecraft-server
```
## Running as alternate user/group ID
By default, the container will switch to and run the Minecraft server as user ID 1000 and group ID 1000; however, that can be changed by setting the environment variables `UID` and `GID`.
The startup will also skip user switching if the `--user`/`-u` argument is passed to `docker run` or `user` is set on the compose service.
## Extra Arguments
Arguments that would usually be passed to the jar file (those which are written after the filename) can be passed via the `EXTRA_ARGS` environment variable.
See [Custom worlds directory path](../misc/world-data.md#custom-worlds-directory-path) for an example.
## Interactive and Color Console
When RCON is enabled, which is the default, and [TTY](https://docs.docker.com/compose/compose-file/05-services/#tty) is enabled on the container, then some server types will output colorized logs and provide a fully interactive console. To access the interactive console, use [`docker attach`](https://docs.docker.com/engine/reference/commandline/container_attach/) (not `exec`). When finished, make sure to use the sequence Control-P, Control-Q to detach without stopping the container.
If this behavior interferes with the log content, then disable TTY or remove the setting entirely since the default is disabled. In a compose file, set the service's `tty` parameter to `false`. On the `docker run` command-line remove the `-t` argument.
## Server Shutdown Options
To allow time for players to finish what they're doing during a graceful server shutdown, set `STOP_SERVER_ANNOUNCE_DELAY` to a number of seconds to delay after an announcement is posted by the server.
!!! warning "Increase stop grace period"
The Docker stop grace period must be increased to a value longer than the announce delay. The value to use that is longer than announce delay will vary based upon the amount of time it takes for final world data saving. If the container exits with exit code 137, then that indicates a longer grace period is needed.
The grace period can be increased using [the -t option on `docker compose down`](https://docs.docker.com/compose/reference/down/) or set the [stop_grace_period](https://docs.docker.com/compose/compose-file/05-services/#stop_grace_period) in the compose file.
The `STOP_SERVER_ANNOUNCE_DELAY` can be bypassed by sending a `SIGUSR1` signal to the `mc-server-runner` process.
`docker`:
docker stop --signal SIGUSR1 mc
`docker compose`:
docker compose kill --signal SIGUSR1
## Configuration Options for Minecraft Server Health Monitoring
The image tags include specific variables to simplify configuration for monitoring the health of a Minecraft server:
- `-e SERVER_HOST=localhost` : This variable sets the host address of the Minecraft server to be monitored. By default, it is set to `localhost`, but you can replace it with the actual hostname or IP address of your Minecraft server.
- `-e SERVER_PORT=25565` : This variable sets the port number on which the Minecraft server is running. By default, Minecraft servers run on port 25565, but if your server is configured to use a different port, you should replace `25565` with the correct port number. This helps the monitoring system to accurately check the health status of the Minecraft server on the specified port.
## OpenJ9 Specific Options
The openj9 image tags include specific variables to simplify configuration:
- `-e TUNE_VIRTUALIZED=TRUE` : enables the option to
[optimize for virtualized environments](https://www.eclipse.org/openj9/docs/xtunevirtualized/)
- `-e TUNE_NURSERY_SIZES=TRUE` : configures nursery sizes where the initial size is 50%
of the `MAX_MEMORY` and the max size is 80%.
## Customize Minecraft server logging
The image can use a templated log4j2 configuration based on PaperMC's logging setup, which is automatically applied for versions that don't require Log4j security patches. This configuration provides rolling logs and advanced logging features by default.
Set the environment variable `GENERATE_LOG4J2_CONFIG` to "true" to enable the following features.
!!! note
This configures the server logging only. To diagnose container startup, set the `DEBUG` environment variable to "true".
### Customization via environment variables
You can customize various aspects of the logging behavior using environment variables:
- `LOG_LEVEL` : Root logger level (default: `info`)
```
-e LOG_LEVEL=debug
```
- `ROLLING_LOG_FILE_PATTERN` : Pattern for rolled log file names (default: `logs/%d{yyyy-MM-dd}-%i.log.gz`)
```
-e ROLLING_LOG_FILE_PATTERN="logs/archive/%d{yyyy-MM-dd}-%i.log.gz"
```
- `ROLLING_LOG_MAX_FILES` : Maximum number of archived log files to keep (default: `1000`)
```
-e ROLLING_LOG_MAX_FILES=30
```
### Customizing log message formats
For full control over how log messages are formatted, you can customize the Log4j2 pattern layouts using these variables. These use [Log4j2 Pattern Layout syntax](https://logging.apache.org/log4j/2.x/manual/layouts.html#PatternLayout):
- `LOG_CONSOLE_FORMAT` : Format for console output (what you see in `docker logs`)
Default: `[%d{HH:mm:ss}] [%t/%level]: %msg%n`
- `LOG_FILE_FORMAT` : Format for file logs (written to `logs/latest.log`)
Default: `[%d{HH:mm:ss}] [%t/%level]: %msg%n`
- `LOG_TERMINAL_FORMAT` : Format for interactive terminal console (used with `docker attach`)
Default: `[%d{HH:mm:ss} %level]: %msg%n`
### Example configurations
Simple timestamp customization (most common use case):
```yaml
environment:
# What you see in docker logs
LOG_CONSOLE_FORMAT: "[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%t/%level]: %msg%n"
# What gets written to logs/latest.log
LOG_FILE_FORMAT: "[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%t/%level]: %msg%n"
```
Advanced customization:
```yaml
environment:
LOG_LEVEL: debug
# Custom ISO8601 format with logger names
LOG_CONSOLE_FORMAT: "%d{ISO8601} %-5level [%t] %logger{36} - %msg%n"
LOG_FILE_FORMAT: "%d{ISO8601} %-5level [%t] %logger{36} - %msg%n"
ROLLING_LOG_MAX_FILES: 50
```
### Legacy ENABLE_ROLLING_LOGS option
The `ENABLE_ROLLING_LOGS` environment variable is no longer needed for most use cases, as rolling logs are now enabled by default through the templated configuration. This option is maintained for backward compatibility but is only checked for error reporting when rolling logs cannot be used due to Log4j security patches.
> **NOTE** The templated log4j2 configuration may interfere with interactive/color consoles [as described in the section above](#interactive-and-color-console)
## Timezone Configuration
You can configure the timezone to match yours by setting the `TZ` environment variable:
-e TZ=Europe/London
such as:
docker run -d -it --pull=always -e TZ=Europe/London -p 25565:25565 --name mc itzg/minecraft-server
Or mounting `/etc/timezone` as readonly (not supported on Windows):
-v /etc/timezone:/etc/timezone:ro
such as:
docker run -d -it --pull=always -v /etc/timezone:/etc/timezone:ro -p 25565:25565 --name mc itzg/minecraft-server
## HTTP Proxy
You may configure the use of an HTTP/HTTPS proxy by passing the proxy's "host:port" via the environment variable `PROXY`. In [the example compose file](https://github.com/itzg/docker-minecraft-server/blob/master/examples/docker-compose-proxied.yml) it references a Squid proxy. The host and port can be separately passed via the environment variables `PROXY_HOST` and `PROXY_PORT`. A `|` delimited list of hosts to exclude from proxying can be passed via `PROXY_NON_PROXY_HOSTS`.
## Using "noconsole" option
Some older versions (pre-1.14) of Spigot required `--noconsole` to be passed when detaching stdin, which can be done by setting `-e CONSOLE=FALSE`.
## Explicitly disable GUI
Some older servers get confused and think that the GUI interface is enabled. You can explicitly
disable that by passing `-e GUI=FALSE`.
## Stop Duration
When the container is signaled to stop, the Minecraft process wrapper will attempt to send a "stop" command via RCON or console and waits for the process to gracefully finish. By default, it waits 60 seconds, but that duration can be configured by setting the environment variable `STOP_DURATION` to the number of seconds.
Be sure to also increase the shutdown timeout described [here for docker compose down](https://docs.docker.com/reference/cli/docker/compose/down/#options) and [here for docker stop](https://docs.docker.com/reference/cli/docker/container/stop/#options).
## Setup only
If you are using a host-attached data directory, then you can have the image setup the Minecraft server files and stop prior to launching the server process by setting `SETUP_ONLY` to `true`.
## Enable Flare Flags
To enable the JVM flags required to fully support the [Flare profiling suite](https://blog.airplane.gg/flare), set the following variable:
-e USE_FLARE_FLAGS=true
Flare is built-in to Pufferfish/Purpur, and is available in [plugin form](https://github.com/TECHNOVE/FlarePlugin) for other server types.
## Enable support for optimized SIMD operations
To enable support for optimized SIMD operations, the JVM flag can be set with the following variable:
-e USE_SIMD_FLAGS=true
SIMD optimized operations are supported by Pufferfish and Purpur.
For example, to download configuration files for plugins:
```yaml
environment:
DOWNLOAD_EXTRA_CONFIGS: |
plugins/WorldEdit<https://raw.githubusercontent.com/EngineHub/WorldEdit/refs/heads/version/7.3.x/worldedit-bukkit/src/main/resources/defaults/config.yml
plugins/EssentialsX<https://raw.githubusercontent.com/EssentialsX/Essentials/refs/heads/2.x/Essentials/src/main/resources/config.yml
```
Or as a single line:
```yaml
environment:
DOWNLOAD_EXTRA_CONFIGS: "plugins/WorldEdit<https://example.com/worldedit.yml,config<https://example.com/another.yml"
```
The files will be downloaded to `/data/` relative paths, so `plugins/WorldEdit` will be saved as `/data/plugins/WorldEdit/config.yml`.
!!! note
The downloaded files can be further processed using [environment variable replacement](interpolating.md) or [patch definitions](interpolating.md#patching-existing-files)
## Enable timestamps in init logs
Before the container starts the Minecraft Server its output is prefixed with `[init]`, such as
```
[init] Starting the Minecraft server...
```
To also include the timestamp with each log, set `LOG_TIMESTAMP` to "true". The log output will then look like:
```
[init] 2022-02-05 16:58:33+00:00 Starting the Minecraft server...
```

View File

@@ -0,0 +1,497 @@
To unify management of the Minecraft server container, all known [`server.properties`](https://minecraft.wiki/w/Server.properties) entries can be managed by the environment variables described in the sections below. Some mappings provide additional functionality above and beyond the properties file and will be described in the sections below.
!!! warning "Version compatibility"
Not all server properties are supported by all versions of Minecraft. Since this image supports a wide range of versions, please consult the [server properties documentation](https://minecraft.wiki/w/Server.properties) for the version you are using.
If you prefer to manually manage the `server.properties` file, set `OVERRIDE_SERVER_PROPERTIES` to "false". Similarly, you can entirely skip the startup script's creation of `server.properties` by setting `SKIP_SERVER_PROPERTIES` to "true".
!!! note
To clear a server property, set the variable to an empty string, such as `-e RESOURCE_PACK=""`. An unset variable is ignored and the existing server property is left unchanged.
To see what `server.properties` will get used by the server, set the environment variable `DUMP_SERVER_PROPERTIES` to "true" and the contents of `server.properties` will get output before the server starts.
## Placeholders
When declaring a server properties via container environment variables, those values may contain placeholders that are processed when the `server.properties` file is updated.
The syntax of placeholders is DOS-style, `%VAR%`, to avoid being processed by Docker or the shell and the following options are available:
`%VAR%` or `%env:VAR%`
: Replaced with the resolved value or the environment variable `VAR`
`%date:FMT%`
: Formats the current date/time with the given `FMT` string processed by [Java's DateTimeFormatter](https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/time/format/DateTimeFormatter.html).
Any declared or resolved environment variable may be referenced, such as `VERSION` and `TYPE`. Additionally, [Modrinth](../types-and-platforms/mod-platforms/modrinth-modpacks.md) and [Auto CurseForge](../types-and-platforms/mod-platforms/auto-curseforge.md) modpacks will expose the environment variables `MODPACK_NAME` and `MODPACK_VERSION`. The originally declared version, such as "LATEST" or "SNAPSHOT", is available in the variable `DECLARED_VERSION`
!!! example
As a compose file environment entry:
```yaml
MOTD: Running %MODPACK_NAME% version %env:MODPACK_VERSION%
LEVEL: world-%date:yyyy-MM-dd%
```
!!! warning
Placeholders are not supported when manually managing `server.properties`
## Properties
### Message of the Day
The message of the day, shown below each server entry in the client UI, can be changed with the `MOTD` environment variable or a default is computed from the server type and version, such as
A Paper Minecraft Server powered by Docker
That way you can easily differentiate between several server types you may have started.
The section symbol (§) and other unicode characters are automatically converted to allow [formatting codes](https://minecraft.wiki/w/Formatting_codes) to be used consistently with all server versions. For Minecraft versions less than 1.20, unicode characters in `server.properties` will be escaped as `\uXXXX`, by default. That behavior can be altered by setting `SERVER_PROPERTIES_ESCAPE_UNICODE` to "true" or "false".
!!! example
With `docker run`
-e MOTD="A §l§cMinecraft§r §nserver"
or within a compose file
environment:
MOTD: "A §l§cMinecraft§r §nserver"
renders
![](../img/motd-example.png)
To produce a multi-line MOTD, embed a newline character as `\n` in the string, such as the following example.
!!! example "Multi-line MOTD"
With `docker run`
```
-e MOTD="Line one\nLine two"
```
or within a compose file
```yaml
MOTD: |
line one
line two
# or
# MOTD: "line one\nline two"
```
The following example combines a multi-line MOTD with [placeholders](#placeholders) from the latest version of the installed modpack:
!!! example
```yaml
MOD_PLATFORM: AUTO_CURSEFORGE
CF_SLUG: craftoria
MOTD: |
A %TYPE% server on %VERSION%
running %MODPACK_NAME% %MODPACK_VERSION%
```
![](../img/motd-with-placeholders.png)
### Difficulty
The difficulty level (default: `easy`) can be set like:
```
docker run -d -e DIFFICULTY=hard ...
```
Valid values are: `peaceful`, `easy`, `normal`, and `hard`, and an
error message will be output in the logs if it's not one of these
values.
Refer to [the Minecraft wiki](https://minecraft.wiki/w/Difficulty)
### Whitelist Players
!!! warning "For public servers"
It is very important to consider setting a whitelist of expected players.
To whitelist players for your Minecraft server, you can:
- Provide a list of usernames and/or UUIDs separated by commas or newlines via the `WHITELIST` environment variable
- Provide the URL or container path to a whitelist file via `WHITELIST_FILE` that will be retrieved/copied into the standard location
!!! example
In a compose file, a text block can be used to improve maintainability, such as
```yaml
WHITELIST: |
user1
user2
user3
```
When either is set, [whitelisting of connecting users](https://minecraft.wiki/w/Server.properties#white-list) is enabled.
To change the behavior when the whitelist file already exists, set the variable `EXISTING_WHITELIST_FILE` to one of the following options:
`SKIP`
: Skip processing of the whitelist file when one is already present. This is the same as setting the legacy variable `OVERRIDE_WHITELIST` to "false".
`SYNCHRONIZE`
: Synchronize the list of users in the file with the `WHITELIST` or `WHITELIST_FILE` provided. When using both, `WHITELIST` will take precedence. This is the same as setting the legacy variable `OVERRIDE_WHITELIST` to "true".
`MERGE`
: Merge the list of users from `WHITELIST` into the existing file. `WHITELIST_FILE` cannot be used with this option.
`SYNC_FILE_MERGE_LIST` (default)
: When `WHITELIST_FILE` is provided it will overwrite an existing whitelist file. Also, if `WHITELIST` is provided, then those users will be merged into the newly copied file.
!!! note
For versions prior to 1.7.3, `white-list.txt` will be maintained instead. Only usernames are supported for those versions.
To [enforce the whitelist changes immediately](https://minecraft.wiki/w/Server.properties#enforce-whitelist) when whitelist commands are used , set `ENFORCE_WHITELIST` to "true". If managing the whitelist file manually, `ENABLE_WHITELIST` can be set to "true" to set the `white-list` property.
!!! 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.
### Op/Administrator Players
Similar to the whitelist, users can be provisioned as operators (aka administrators) to your Minecraft server by
- Providing a list of usernames and/or UUIDs separated by commas or newlines via the `OPS` environment variable
- Providing the URL or container path to an ops file via `OPS_FILE` that will be retrieved/copied into the standard location
!!! example
In a compose file, a text block can be used to improve maintainability, such as
```yaml
OPS: |
user1
user2
user3
```
To change the behavior when the ops file already exists, set the variable `EXISTING_OPS_FILE` to one of the following options:
`SKIP`
: Skip processing of the ops file when one is already present. This is the same as setting the legacy variable `OVERRIDE_OPS` to "false".
`SYNCHRONIZE`
: Synchronize the list of users in the file with the `OPS` or `OPS_FILE` provided. When using both, `OPS` will take precedence. The `level` and `bypassesPlayerLimit` will be retained from previous entries. This is the same as setting the legacy variable `OVERRIDE_OPS` to "true".
`MERGE`
: Merge the list of users from `OPS` into the existing file. `OPS_FILE` cannot be used with this option.
`SYNC_FILE_MERGE_LIST` (default)
: When `OPS_FILE` is provided it will overwrite an existing ops file. Also, if `OPS` is provided, then those users will be merged into the newly copied file.
!!! note
For versions prior to 1.7.3, `ops.txt` will be maintained instead. Only usernames are supported for those versions.
### Enable/disable initial selection of datapacks
New to [22W42A](https://www.minecraft.net/en-us/article/minecraft-snapshot-22w42a), datapacks with feature flags can be controlled before initial world creation by setting these to a comma separated list of packs:
- `INITIAL_ENABLED_PACKS`
such as "update_1_20,bundle"
- `INITIAL_DISABLED_PACKS`
### Server icon
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:
!!! example
Using `docker run`:
```
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
```
By default an existing `server-icon.png` file will not be replaced, that can be changed by setting `OVERRIDE_ICON` to "true".
### RCON
RCON is **enabled by default** to allow for graceful shut down of the server and coordination of save state during backups. RCON can be disabled by setting `ENABLE_RCON` to "false".
!!! warning
Disabling RCON will remove and limit some features, such as interactive and color console support.
#### RCON Password
The default password is randomly generated on each startup. However, you can specify a password using one of the following environment variables:
* Set `RCON_PASSWORD` to your desired password.
* Set `RCON_PASSWORD_FILE` to the path of a file containing the password.
Using `RCON_PASSWORD_FILE` is the recommended method for managing sensitive data, as it allows full support for [Docker Secrets](https://docs.docker.com/compose/how-tos/use-secrets/).
??? example
```yaml title="compose.yaml"
services:
mc:
image: itzg/minecraft-server:latest
pull_policy: daily
tty: true
stdin_open: true
ports:
- "25565:25565"
environment:
EULA: "TRUE"
RCON_PASSWORD_FILE: /run/secrets/rcon_pass # Points to the path where the secret is mounted
volumes:
# attach the relative directory 'data' to the container's /data path
- ./data:/data
secrets:
- rcon_pass
secrets:
rcon_pass:
file: ./rcon_password # local file containing the password
```
!!! warning
**BE CAUTIOUS OF MAPPING THE RCON PORT EXTERNALLY** unless you are aware of all the consequences and have set a **secure password**.
!!! info
Mapping ports (`-p` command line or `ports` in compose) outside the container and docker networking needs to be a purposeful choice. Most production Docker deployments do not need any of the Minecraft ports mapped externally from the server itself.
By default, the server listens for RCON on port 25575 within the container. It can be changed with `RCON_PORT` but only do this if you have a very good reason. **DO NOT change `rcon.port` via `server.properties`** or integrations will break.
### Query
Set the environment variable `ENABLE_QUERY` to "true" to enable the gamespy query protocol. Maps to the server property [enable-query](https://minecraft.wiki/w/Server.properties#enable-query). By default, the query port will be `25565` (UDP) but can be changed with the `QUERY_PORT` environment variable.
### Level Seed
If you want to create the Minecraft level with a specific seed, set the environment variable `SEED`, which maps to the [level-seed](https://minecraft.wiki/w/Server.properties#level-seed) property.
If using a negative value for the seed, make sure to quote the value such as:
!!! example "Using docker run"
```
-e SEED="-1785852800490497919"
```
!!! example "Using compose"
```yaml
environment:
SEED: "-1785852800490497919"
```
### Game Mode
By default, Minecraft servers are configured to run in Survival mode. You can
change the mode using `MODE` where you can either provide the [standard
numerical values](http://minecraft.wiki/Game_mode#Game_modes) or the
shortcut values:
- creative
- survival
- adventure
- spectator (only for Minecraft 1.8 or later)
For example:
docker run -d -e MODE=creative ...
### Level Type and Generator Settings
By default, a standard world is generated with hills, valleys, water, etc. A different level type can
be configured by setting `LEVEL_TYPE` to [an expected type listed here](https://minecraft.wiki/w/Server.properties#level-type).
For some of the level types, `GENERATOR_SETTINGS` can be used to further customize the world generation.
To configure the `GENERATOR_SETTINGS` you need to add the appropriate `GeneratorOptions` JSON configuration. In the case of a superflat world, you may omit the `flat_world_options`.
The layers are applied from -64 and up and are added in the order of the list
Example for a superflat world:
- 1x bedrock
- 2x stone
- 15x sandstone
- Desert biome
```yaml
environment:
LEVEL_TYPE: FLAT
GENERATOR_SETTINGS: >-
{
"layers": [
{
"block": "minecraft:bedrock",
"height": 1
},
{
"block": "minecraft:stone",
"height": 2
},
{
"block": "minecraft:sandstone",
"height": 15
}
],
"biome": "minecraft:desert"
}
```
For more details, refer to the Minecraft Wiki sections for [Superflat Multiplayer](https://minecraft.wiki/w/Superflat#Multiplayer) and [generator options tag format](https://minecraft.wiki/w/Java_Edition_level_format#generatorOptions_tag_format).
### Custom Server Resource Pack
You can set a link to a custom resource pack and set it's checksum using the `RESOURCE_PACK` and `RESOURCE_PACK_SHA1` options respectively, the default is blank:
docker run -d -e 'RESOURCE_PACK=http://link.com/to/pack.zip?=1' -e 'RESOURCE_PACK_SHA1=d5db29cd03a2ed055086cef9c31c252b4587d6d0'
You can enforce the resource pack on clients by setting `RESOURCE_PACK_ENFORCE` to `TRUE` (default: `FALSE`).
### Level / World Save Name
You can either switch between world saves or run multiple containers with different saves by using the `LEVEL` option,
where the default is "world":
docker run -d -e LEVEL=bonus ...
> **NOTE:** if running multiple containers be sure to either specify a different `-v` host directory for each
`LEVEL` in use or don't use `-v` and the container's filesystem will keep things encapsulated.
> **INFO** Refer to the [data directory](../data-directory.md) section for a visual description of where the `$LEVEL` directory is situated.
### Server port
> **WARNING:** only change this value if you know what you're doing. It only needs to be changed when using host-networking and it is rare that host networking should be used. Use `-p` port mappings instead.
If you must, the server port can be set like:
!!! example "Using docker run"
```
docker run -d -e SERVER_PORT=25566 ...
```
!!! example "Using compose"
```yaml
environment:
SERVER_PORT: 25566
```
**however**, be sure to change your port mapping accordingly and be prepared for some features to break.
### Custom server properties
Some mods/plugins utilize custom `server.properties` entries which can be declared via the `CUSTOM_SERVER_PROPERTIES` environment variable. The contents must be newline delimited `name=value` pairs.
Within a compose file, newline delimited entries can be declared as shown here:
```yaml
CUSTOM_SERVER_PROPERTIES: |
custom1=value1
defaultworldgenerator-port=f8c04631-f744-11ec-b260-f02f74b094e0
```
When using `docker run` from a bash shell, the entries must be quoted with the `$'` syntax, such as
```
-e CUSTOM_SERVER_PROPERTIES=$'k1=v1\nk2=v2'
```
### Other server property mappings
!!! warning "Version compatibility"
Not all server properties are supported by all versions of Minecraft. Since this image supports a wide range of versions, please consult the [server properties documentation](https://minecraft.wiki/w/Server.properties) for the version you are using.
| Environment Variable | Server Property |
|-----------------------------------------|-------------------------------------------------------------------------------------------------------------------------------|
| ACCEPTS_TRANSFERS | [accepts-transfers](https://minecraft.wiki/w/Server.properties#accepts-transfers) |
| ALLOW_FLIGHT | [allow-flight](https://minecraft.wiki/w/Server.properties#allow-flight) |
| ALLOW_NETHER | [allow-nether](https://minecraft.wiki/w/Server.properties#allow-nether) |
| ANNOUNCE_PLAYER_ACHIEVEMENTS | [announce-player-achievements](https://minecraft.wiki/w/Server.properties#announce-player-achievements) |
| BROADCAST_CONSOLE_TO_OPS | [broadcast-console-to-ops](https://minecraft.wiki/w/Server.properties#broadcast-console-to-ops) |
| BROADCAST_RCON_TO_OPS | [broadcast-rcon-to-ops](https://minecraft.wiki/w/Server.properties#broadcast-rcon-to-ops) |
| BUG_REPORT_LINK | [bug-report-link](https://minecraft.wiki/w/Server.properties#bug-report-link) |
| ENABLE_COMMAND_BLOCK | [enable-command-block](https://minecraft.wiki/w/Server.properties#enable-command-block) |
| ENABLE_STATUS | [enable-status](https://minecraft.wiki/w/Server.properties#enable-status) |
| ENFORCE_SECURE_PROFILE | [enforce-secure-profile](https://minecraft.wiki/w/Server.properties#enforce-secure-profile) |
| ENTITY_BROADCAST_RANGE_PERCENTAGE | [entity-broadcast-range-percentage](https://minecraft.wiki/w/Server.properties#entity-broadcast-range-percentage) |
| FORCE_GAMEMODE | [force-gamemode](https://minecraft.wiki/w/Server.properties#force-gamemode) |
| FUNCTION_PERMISSION_LEVEL | [function-permission-level](https://minecraft.wiki/w/Server.properties#function-permission-level) |
| GENERATE_STRUCTURES | [generate-structures](https://minecraft.wiki/w/Server.properties#generate-structures) |
| GENERATOR_SETTINGS | [generator-settings](https://minecraft.wiki/w/Server.properties#generator-settings) |
| HARDCORE | [hardcore](https://minecraft.wiki/w/Server.properties#hardcore) |
| HIDE_ONLINE_PLAYERS | [hide-online-players](https://minecraft.wiki/w/Server.properties#hide-online-players) |
| LOG_IPS | [log-ips](https://minecraft.wiki/w/Server.properties#log-ips) |
| MANAGEMENT_SERVER_ALLOWED_ORIGINS | [management-server-allowed-origins](https://minecraft.wiki/w/Server.properties#management-server-allowed-origins) |
| MANAGEMENT_SERVER_ENABLED | [management-server-enabled](https://minecraft.wiki/w/Server.properties#management-server-enabled) |
| MANAGEMENT_SERVER_HOST | [management-server-host](https://minecraft.wiki/w/Server.properties#management-server-host) |
| MANAGEMENT_SERVER_PORT | [management-server-port](https://minecraft.wiki/w/Server.properties#management-server-port) |
| MANAGEMENT_SERVER_SECRET | [management-server-secret](https://minecraft.wiki/w/Server.properties#management-server-secret) |
| MANAGEMENT_SERVER_TLS_ENABLED | [management-server-tls-enabled](https://minecraft.wiki/w/Server.properties#management-server-tls-enabled) |
| MANAGEMENT_SERVER_TLS_KEYSTORE | [management-server-tls-keystore](https://minecraft.wiki/w/Server.properties#management-server-tls-keystore) |
| MANAGEMENT_SERVER_TLS_KEYSTORE_PASSWORD | [management-server-tls-keystore-password](https://minecraft.wiki/w/Server.properties#management-server-tls-keystore-password) |
| MAX_BUILD_HEIGHT | [max-build-height](https://minecraft.wiki/w/Server.properties#max-build-height) |
| MAX_COMMAND_CHAIN_LENGTH | [max-command-chain-length](https://minecraft.wiki/w/Server.properties#max-command-chain-length) |
| MAX_ENTITY_CRAMMING | [max-entity-cramming](https://minecraft.wiki/w/Server.properties#max-entity-cramming) |
| MAX_ENTITY_COLLISION_RADIUS | [max-entity-collision-radius](https://minecraft.wiki/w/Server.properties#max-entity-collision-radius) |
| MAX_FUNCTION_CHAIN_DEPTH | [max-function-chain-depth](https://minecraft.wiki/w/Server.properties#max-function-chain-depth) |
| MAX_NEIGHBORS | [max-neighbors](https://minecraft.wiki/w/Server.properties#max-neighbors) |
| MAX_CHAINED_NEIGHBOR_UPDATES | [max-chained-neighbor-updates](https://minecraft.wiki/w/Server.properties#max-chained-neighbor-updates) |
| MAX_PLAYERS | [max-players](https://minecraft.wiki/w/Server.properties#max-players) |
| MAX_TICK_TIME | [max-tick-time](https://minecraft.wiki/w/Server.properties#max-tick-time) |
| MAX_WORLD_SIZE | [max-world-size](https://minecraft.wiki/w/Server.properties#max-world-size) |
| NETWORK_COMPRESSION_THRESHOLD | [network-compression-threshold](https://minecraft.wiki/w/Server.properties#network-compression-threshold) |
| ONLINE_MODE | [online-mode](https://minecraft.wiki/w/Server.properties#online-mode) |
| OP_PERMISSION_LEVEL | [op-permission-level](https://minecraft.wiki/w/Server.properties#op-permission-level) |
| PAUSE_WHEN_EMPTY_SECONDS | [pause-when-empty-seconds](https://minecraft.wiki/w/Server.properties#pause-when-empty-seconds) |
| PLAYER_IDLE_TIMEOUT | [player-idle-timeout](https://minecraft.wiki/w/Server.properties#player-idle-timeout) |
| PREVENT_PROXY_CONNECTIONS | [prevent-proxy-connections](https://minecraft.wiki/w/Server.properties#prevent-proxy-connections) |
| PVP | [pvp](https://minecraft.wiki/w/Server.properties#pvp) |
| RATE_LIMIT | [rate-limit](https://minecraft.wiki/w/Server.properties#rate-limit) |
| REGION_FILE_COMPRESSION | [region-file-compression](https://minecraft.wiki/w/Server.properties#region-file-compression) |
| RESOURCE_PACK_ID | [resource-pack-id](https://minecraft.wiki/w/Server.properties#resource-pack-id) |
| RESOURCE_PACK_PROMPT | [resource-pack-prompt](https://minecraft.wiki/w/Server.properties#resource-pack-prompt) |
| SERVER_NAME | [server-name](https://minecraft.wiki/w/Server.properties#server-name) |
| SIMULATION_DISTANCE | [simulation-distance](https://minecraft.wiki/w/Server.properties#simulation-distance) |
| SNOOPER_ENABLED | [snooper-enabled](https://minecraft.wiki/w/Server.properties#snooper-enabled) |
| SPAWN_ANIMALS | [spawn-animals](https://minecraft.wiki/w/Server.properties#spawn-animals) |
| SPAWN_MONSTERS | [spawn-monsters](https://minecraft.wiki/w/Server.properties#spawn-monsters) |
| SPAWN_NPCS | [spawn-npcs](https://minecraft.wiki/w/Server.properties#spawn-npcs) |
| SPAWN_PROTECTION | [spawn-protection](https://minecraft.wiki/w/Server.properties#spawn-protection) |
| STATUS_HEARTBEAT_INTERVAL | [status-heartbeat-interval](https://minecraft.wiki/w/Server.properties#status-heartbeat-interval) |
| SYNC_CHUNK_WRITES | [sync-chunk-writes](https://minecraft.wiki/w/Server.properties#sync-chunk-writes) |
| USE_NATIVE_TRANSPORT | [use-native-transport](https://minecraft.wiki/w/Server.properties#use-native-transport) |
| VIEW_DISTANCE | [view-distance](https://minecraft.wiki/w/Server.properties#view-distance) |

89
docs/data-directory.md Normal file
View File

@@ -0,0 +1,89 @@
Everything the container manages is located under the **container's** `/data` path, as shown here:
![](img/level-vs-world.drawio.png)
!!! note
The container path `/data` is pre-declared as a volume, so if you do nothing then it will be allocated as an anonymous volume. As such, it is subject to removal when the container is removed.
### Attaching data directory to host filesystem
In most cases the easiest way to persist and work with the minecraft data files is to use [bind mounts](https://docs.docker.com/storage/bind-mounts/) with the `-v` argument to map a directory on your host machine to the container's `/data` directory. In the following example, the path `/home/user/minecraft-data` **must be** a directory on your host machine:
-v /home/user/minecraft-data:/data
------------------------- -----
| |
| +-- must always be /data
|
+-- replace with a directory on your host machine
When attached in this way you can stop the server, edit the configuration under your attached directory and start the server again to pick up the new configuration.
!!! important "Rootless, Podman, SELinux, AppArmor usage"
When running rootless containers, such as with Podman, or using SELinux / AppArmor on your system, append ":Z" to the volume mapping. For example:
```
/home/user/minecraft-data:/data:Z
```
There might be a safer/better way to accommodate these systems. Please post an issue or PR if you have more information.
With Docker Compose, setting up a host attached directory is even easier since relative paths can be configured. For example, with the following `compose.yaml` Docker will automatically create/attach the relative directory `minecraft-data` to the container.
```yaml title="compose.yaml"
services:
mc:
image: itzg/minecraft-server:latest
pull_policy: daily
ports:
- 25565:25565
environment:
EULA: "TRUE"
tty: true
stdin_open: true
restart: unless-stopped
volumes:
# attach a directory relative to the directory containing this compose file
- ./minecraft-data:/data
```
### Converting anonymous `/data` volume to named volume
If you had used the commands in the first section, without the `-v` volume attachment, then an anonymous data volume was created by Docker. You can later bring over that content to a named or host attached volume using the following procedure.
!!! note
In this example, it is assumed the original container was given a `--name` of "mc", so change the container identifier accordingly.
You can also locate the Docker-managed directory from the `Source` field obtained from `docker inspect <container id or name> -f "{{json .Mounts}}"`
First, stop the existing container:
``` shell
docker stop mc
```
Use a temporary container to copy over the anonymous volume's content into a named volume, "mc" in this case:
``` shell
docker run --rm --volumes-from mc -v mc:/new alpine cp -avT /data /new
```
Now you can recreate the container with any environment variable changes, etc by attaching the named volume created from the previous step:
``` shell
docker run -d -it --name mc-new -v mc:/data -p 25565:25565 -e EULA=TRUE -e MEMORY=2G itzg/minecraft-server
```
### Locating filesystem path of anonymous volume
The `Source` field from the output of this command will show where the anonymous volume is mounted from:
``` shell
docker inspect -f "{{json .Mounts}}" CONTAINER_NAME_OR_ID
```
!!! note
On Windows with WSL the volumes path is `\\wsl$\docker-desktop-data\data\docker\volumes`

1
docs/img/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
/.*.bkp

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

BIN
docs/img/cf-file-id.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

BIN
docs/img/cf-project-id.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

BIN
docs/img/cf-slug.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.2 KiB

BIN
docs/img/docs-banner.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

12
docs/img/docs-banner.txt Normal file
View File

@@ -0,0 +1,12 @@
Generated at https://textcraft.net/
Line 1:
"Click here for"
Small, none, Minecraftia
Line 2:
"Documentation"
Large, non, Minecrafter
Overall settings:
- drop shadow

Binary file not shown.

After

Width:  |  Height:  |  Size: 130 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

View File

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 128 KiB

BIN
docs/img/motd-example.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 985 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

View File

Before

Width:  |  Height:  |  Size: 65 KiB

After

Width:  |  Height:  |  Size: 65 KiB

87
docs/index.md Normal file
View File

@@ -0,0 +1,87 @@
# Intro
[![Docker Pulls](https://img.shields.io/docker/pulls/itzg/minecraft-server.svg)](https://hub.docker.com/r/itzg/minecraft-server/)
[![Docker Stars](https://img.shields.io/docker/stars/itzg/minecraft-server.svg?maxAge=2592000)](https://hub.docker.com/r/itzg/minecraft-server/)
[![GitHub Issues](https://img.shields.io/github/issues-raw/itzg/docker-minecraft-server.svg)](https://github.com/itzg/docker-minecraft-server/issues)
[![Discord](https://img.shields.io/discord/660567679458869252?label=Discord&logo=discord)](https://discord.gg/DXfKpjB)
[![Build and Publish](https://github.com/itzg/docker-minecraft-server/workflows/Build%20and%20Publish/badge.svg)](https://github.com/itzg/docker-minecraft-server/actions)
[![](https://img.shields.io/badge/Donate-Buy%20me%20a%20coffee-orange.svg)](https://www.buymeacoffee.com/itzg)
This docker image provides a Minecraft Server that will automatically download the latest stable
version at startup. You can also run/upgrade to any specific version or the
latest snapshot. See the _Versions_ section below for more information.
To simply use the latest stable version, run
docker run -d -it -p 25565:25565 -e EULA=TRUE itzg/minecraft-server
where, in this case, the standard server port 25565 will be exposed on your host machine.
!!! important "Persistent Data"
The Minecraft server will store its data in the container's `/data` directory. This directory can be [mounted](https://docs.docker.com/storage/volumes/) from the host machine or a managed volume.
Using `docker run` add a `-v` option somewhere before the image name:
```
... -v /path/on/host:/data itzg/minecraft-server
```
Using docker compose, add a `volumes` section to the service definition:
```yaml
services:
mc:
# ... image and environment section
volumes:
# attach the relative directory 'data' to the container's /data path
- ./data:data
```
!!! note
If you plan on running a server for a longer amount of time it is highly recommended using a management layer such as [Docker Compose](#using-docker-compose) or [Kubernetes](misc/deployment/index.md#on-kubernetes) to allow for incremental reconfiguration and image upgrades.
!!! info
Be sure to always include `-e EULA=TRUE` in your commands and container definitions, as Mojang/Microsoft requires EULA acceptance.
By default, the container will download the latest version of the "vanilla" [Minecraft: Java Edition server](https://www.minecraft.net/en-us/download/server) provided by Mojang. The [`VERSION`](versions/minecraft.md) and the [`TYPE`](types-and-platforms/index.md) can be configured to create many variations of desired Minecraft server.
## Using [Docker Compose](https://docs.docker.com/compose/)
1. Create a new directory
2. Put the contents of the file below in a file called `compose.yaml`
3. Run `docker compose up -d` in that directory
4. Done! Point your client at your host's name/IP address and port 25565.
```yaml title="compose.yaml"
services:
mc:
image: itzg/minecraft-server:latest
pull_policy: daily
tty: true
stdin_open: true
ports:
- "25565:25565"
environment:
EULA: "TRUE"
volumes:
# attach the relative directory 'data' to the container's /data path
- ./data:/data
```
To apply changes made to the compose file, just run `docker compose up -d` again.
Follow the logs of the container using `docker compose logs -f`, check on the status with `docker compose ps`, and stop the container using `docker compose stop`.
!!! note "Configurator Tool"
If you prefer to use an interactive tool to create or edit a Docker Compose file for this image, you can check out [setupmc.com's configurator](https://setupmc.com/java-server/). It provides a form that supports most of the image variables and generates the `compose.yaml` file in real time.
!!! note "More Compose Examples"
There are more [examples located in the Github repo](https://github.com/itzg/docker-minecraft-server/tree/master/examples).
!!! note "Deployment Examples"
The [deployments page](misc/deployment/index.md) provides more examples of deployment with and beyond Docker Compose.

View File

@@ -0,0 +1,68 @@
# 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.
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 [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`
On startup the `server.properties` file is checked and, if applicable, a warning is printed to the terminal. When the server is created (no data available in the persistent directory), the properties file is created with the Watchdog disabled.
The utility used to wake the server (`knock(d)`) works at network interface level. So the correct interface has to be set using the `AUTOPAUSE_KNOCK_INTERFACE` variable when using non-default networking environments (e.g. host-networking, Portainer oder NAS solutions). See the description of the variable below.
A file called `.paused` is created in `/data` directory when the server is paused and removed when the server is resumed. Other services may check for this file's existence before waking the server.
A `.skip-pause` file can be created in the `/data` directory to make the server skip autopausing, for as long as the file is present. The autopause timer will also be reset.
A starting, example compose file has been provided in [the examples](https://github.com/itzg/docker-minecraft-server/blob/master/examples/autopause/compose.yml).
!!! note
When configuring kubernetes readiness/liveness health checks with auto-pause enabled, be sure to reference the `mc-health` wrapper script rather than `mc-status` directly.
## Additional configuration
The following environment variables define the behaviour of auto-pausing:
- `AUTOPAUSE_TIMEOUT_EST`, default `3600` (seconds)
describes the time between the last client disconnect and the pausing of the process (read as timeout established)
- `AUTOPAUSE_TIMEOUT_INIT`, default `600` (seconds)
describes the time between server start and the pausing of the process, when no client connects inbetween (read as timeout initialized)
- `AUTOPAUSE_TIMEOUT_KN`, default `120` (seconds)
describes the time between knocking of the port (e.g. by the main menu ping) and the pausing of the process, when no client connects inbetween (read as timeout knocked)
- `AUTOPAUSE_PERIOD`, default `10` (seconds)
describes period of the daemonized state machine, that handles the pausing of the process (resuming is done independently)
- `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.
- `AUTOPAUSE_STATUS_RETRY_LIMIT`, default 10
- `AUTOPAUSE_STATUS_RETRY_INTERVAL`, default 2s
!!! tip
To troubleshoot, add `DEBUG_AUTOPAUSE=true` to see additional output
## Rootless Auto-Pause
If you're running the container as rootless, then it is necessary to add the `CAP_NET_RAW` capability to the container, such as using [the `cap_add` service field](https://docs.docker.com/compose/compose-file/05-services/#cap_add) in a compose file or [`--cap-add` docker run argument](https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities). It may also be necessary to set the environment variable `SKIP_SUDO` to "true".
You might need to set change the default port forwarder from RootlessKit to slirp4netns.
For Docker, see the following for setup:
- https://docs.docker.com/engine/security/rootless/#networking-errors
- https://rootlesscontaine.rs/getting-started/docker/#changing-the-port-forwarder
For Podman, see the following for setup:
- https://rootlesscontaine.rs/getting-started/podman/#changing-the-port-forwarder
!!! example "Using docker run"
-e AUTOPAUSE_KNOCK_INTERFACE=tap0 --cap-add=CAP_NET_RAW --network slirp4netns:port_handler=slirp4netns

View File

@@ -0,0 +1,32 @@
# Auto-Stop
An option to stop the server after a specified time has been added for niche applications (e.g. billing saving on AWS Fargate). The function is incompatible with the Autopause functionality, as they basically cancel out each other.
!!! note
the docker container variables have to be set accordingly (restart policy set to "no") and that the container has to be manually restarted.
A `.skip-stop` file can be created in the `/data` directory to make the server skip autostopping, for as long as the file is present. The autostop timer will also be reset.
A starting, example compose file has been provided in [examples/docker-compose-autostop.yml](https://github.com/itzg/docker-minecraft-server/blob/master/examples/docker-compose-autostop.yml).
Enable the Autostop functionality by setting:
```
-e ENABLE_AUTOSTOP=TRUE
```
The following environment variables define the behavior of auto-stopping:
- `AUTOSTOP_TIMEOUT_EST`, default `3600` (seconds)
describes the time between the last client disconnect and the stopping of the server (read as timeout established)
- `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)
- `AUTOSTOP_PERIOD`, default `10` (seconds)
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
## Proxy Support
If you make use of PROXY Protocol, i.e. through something like HAProxy or Fly.io, you will need to enable it in your variety of server's configuration, and then set the `USES_PROXY_PROTOCOL` envar to `true`. This lets Autostop monitor the server, where it otherwise wouldn't

View File

@@ -0,0 +1,39 @@
# Autoscaling (sleep when idle)
Autoscaling (sometimes called *sleeping*, *scale to zero* or *wake on join*) is the pattern of stopping a Minecraft server when nobody is playing and starting it again when someone tries to connect with the intention of saving resources when the server is not in use (e.g., on a VPS with limited CPU/RAM or a home server).
## mc-router
[mc-router](https://github.com/itzg/mc-router) is a Minecraft-aware router/multiplexer.
- Routes players by the hostname they connect with (useful for multiple servers behind one port)
- Can auto-start a backend container on join and stop it again after an idle timeout
Examples:
- See the mc-router section in [Examples](../examples.md#mc-router-with-auto-scale)
## Lazymc
[Lazymc](https://github.com/timvisee/lazymc) can keep a server “asleep” until a player connects. With Docker its commonly used via [lazymc-docker-proxy](https://github.com/joesturge/lazymc-docker-proxy).
- Players connect to the proxy; the proxy starts/stops the server container
- Usually requires a static IP for the Minecraft container on a user-defined network
Example:
- See the Lazymc section in [Examples](../examples.md#lazymc-put-your-minecraft-server-to-rest-when-idle)
## Lazytainer
[Lazytainer](https://github.com/vmorganp/Lazytainer) starts/stops containers based on network traffic.
- Uses packet thresholds + inactivity timeouts (not Minecraft hostname aware)
- Can be triggered by port scans/pings in noisy environments
Example:
- See the Lazytainer section in [Examples](../examples.md#lazytainer-stop-minecraft-container-based-on-traffic)

42
docs/misc/building.md Normal file
View File

@@ -0,0 +1,42 @@
!!! tip "For advanced use only"
This page describes a capability that is not applicable to most users. It is only intended for rare cases when a very specific Java base image is needed or additional packages need to be installed that are not generally applicable or would bloat the image size.
Be sure to confirm that the desired [version and variant of Java isn't already provided](../versions/java.md).
## Building image locally with alternate Java base
An alternate Java base image can be specified by setting the [docker build argument](https://docs.docker.com/reference/cli/docker/buildx/build/#build-arg) `BASE_IMAGE` to the desired base image. The following shows an example of using the base image `ghcr.io/graalvm/graalvm-ce:ol8-java11`:
```shell
docker build --build-arg BASE_IMAGE=ghcr.io/graalvm/graalvm-ce:ol8-java11 -t IMG_PREFIX/minecraft-server:java11-graalvm .
```
## Building a multi-architecture image
Ensure buildx/BuildKit support is enabled and run the following to build multi-architecture and push to the repository as named by the image:
```shell
docker buildx build --platform=linux/arm64 --platform=linux/arm/v7 --platform=linux/amd64 --tag IMG_PREFIX/minecraft-server --push .
```
To build for local images, multi-architecture is not supported, use the following with buildx to load the image into the local daemon:
```shell
docker buildx build --tag IMG_PREFIX/minecraft-server --load .
```
or just a plain build
```shell
docker build -t IMG_PREFIX/minecraft-server .
```
## Installing extra packages
The following build args can be set to install additional packages for the respective base image distro:
- `EXTRA_DEB_PACKAGES`
- `EXTRA_DNF_PACKAGES`
- `EXTRA_ALPINE_PACKAGES`

View File

@@ -0,0 +1,132 @@
## Adding a server type
Adding a new server `TYPE` can vary due to the complexity of obtaining and configuring each type; however, the addition of any server type includes at least the following steps:
1. Copy an existing "start-deploy*" script, such as [start-deployFabric](https://github.com/itzg/docker-minecraft-server/blob/master/scripts/start-deployFabric) and rename it accordingly making sure to retain the "start-deploy" prefix
2. Modify the type-specific behavior between the "start-utils" preamble and the hand-off to `start-setupWorld` at the end of the script
3. Develop and test the changes using the [iterative process described below](#iterative-script-development)
4. Add a case-entry to the `case "${TYPE^^}"` in [start-configuration](https://github.com/itzg/docker-minecraft-server/blob/master/scripts/start-configuration)
5. Add a section to the [docs](https://github.com/itzg/docker-minecraft-server/tree/master/docs). It is recommended to copy-modify an existing section to retain a similar wording and level of detail
6. [Submit a pull request](https://github.com/itzg/docker-minecraft-server/pulls)
## Iterative script development
Individual scripts can be iteratively developed, debugged, and tested using the following procedure.
First, build a baseline of the image to include the packages needed by existing or new scripts:
PowerShell: (Example of building and testing ForgeAPI)
```powershell
$env:FOLDER_TO_TEST="forgeapimods_projectids"
$env:IMAGE_TO_TEST="mc-dev"
docker build -t $env:IMAGE_TO_TEST .
pushd "tests/setuponlytests/$env:FOLDER_TO_TEST/"
docker compose run mc
docker compose down -v --remove-orphans
popd
```
PowerShell: Building different images of Java for testing
```powershell
$env:BASE_IMAGE='eclipse-temurin:8u312-b07-jre'
$env:IMAGE_TO_TEST="mc-dev"
docker build --build-arg BASE_IMAGE=$env:BASE_IMAGE -t $env:IMAGE_TO_TEST .
```
Bash: (Example of building and testing ForgeAPI)
```bash
export FOLDER_TO_TEST="forgeapimods_file"
export IMAGE_TO_TEST="mc-dev"
docker build -t $IMAGE_TO_TEST .
pushd tests/setuponlytests/$FOLDER_TO_TEST/
docker compose run mc
docker compose down -v --remove-orphans
popd
```
Using the baseline image, an interactive container can be started to iteratively run the scripts to be developed. By attaching the current workspace directory, you can use the local editor of your choice to iteratively modify scripts while using the container to run them.
```shell
docker run -it --rm -v ${PWD}:/image/scripts --entrypoint bash mc-dev
```
From within the container you can run individual scripts via the attached `/image/scripts/` path; however, be sure to set any environment variables expected by the scripts by either `export`ing them manually:
```shell
export VERSION=1.12.2
/image/scripts/start-deployFabric
```
...or pre-pending script execution:
```shell
VERSION=1.12.2 /image/scripts/start-deployFabric
```
!!! note
You may want to temporarily add an `exit` statement near the end of your script to isolate execution to just the script you're developing.
## 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:
```shell
./gradlew installDist
```
The distribution will be installed in the project's `build/install/mc-image-helper`. Obtain the absolute path to that directory use in the next step.
Refer to the instructions above to mount any locally modified image scripts or build a local copy of the image using or with alternate `BASE_IMAGE`, as described above:
```shell
docker build -t itzg/minecraft-server .
```
Mount the local mc-image-helper distribution directory as a volume in the container at the path `/usr/share/mc-image-helper`, such as
```shell
docker run -it --rm \
-v /path/to/mc-image-helper/build/install/mc-image-helper:/usr/share/mc-image-helper \
-e EULA=true \
itzg/minecraft-server
```
In a compose file, include the volume mount in the `volumes` section of the container definition:
```yaml
services:
mc:
# ... usual container definition
volumes:
- /path/to/mc-image-helper/build/install/mc-image-helper:/usr/share/mc-image-helper:ro
```
For Go base tools, run
```shell
goreleaser release --snapshot --clean
```
Clone [itzg/github-releases-proxy](https://github.com/itzg/github-releases-proxy) and run it according to the instructions shown there.
In the Docker build, configure the following
```shell
--build-arg GITHUB_BASEURL=http://host.docker.internal:8080 \
--build-arg APPS_REV=1
```
and declare one or more version overrides, such as
```
--build-arg MC_HELPER_VERSION=1.8.1-SNAPSHOT
```
## Generating release notes
The following git command can be used to provide the bulk of release notes content:
```shell script
git log --invert-grep --grep "^ci:" --grep "^misc:" --grep "^docs:" --pretty="* %s" 1.1.0..1.2.0
```

View File

@@ -0,0 +1,16 @@
# Site documentation
The documentation for this image/repository is written in markdown and built using [Zensical](https://zensical.org/) into a documentation website hosted at [Read the Docs](https://readthedocs.org/). [Here is general information about writing Zensical markdown](https://zensical.org/docs/authoring/markdown/).
!!! note
The README.md rarely needs to be modified and only serves as a brief introduction to the project.
The documentation source is maintained in the [docs](https://github.com/itzg/docker-minecraft-server/tree/master/docs) folder and is organized into sections by directory and files. Look through the existing content to determine if an existing file should be updated or a new file/directory added.
It will be very helpful to view the rendered documentation as you're editing. To do that run the following from the top-level directory:
```shell
docker compose -f compose-docs.yml -p zensical up
```
You can access the live documentation rendering at <http://localhost:8000>.

View File

@@ -0,0 +1,39 @@
# More Deployment Info
## On Kubernetes
### Using Helm
- itzg Helm Chart:
- [GitHub repo](https://github.com/itzg/minecraft-server-charts)
- [Helm Chart repo](https://itzg.github.io/minecraft-server-charts/)
- [mcsh/server-deployment](https://github.com/mcserverhosting-net/charts)
### Using Shulker
[Shulker](https://github.com/jeremylvln/Shulker) is a Kubernetes operator for managing complex and dynamic Minecraft infrastructures, including game servers and proxies. It uses the docker-minecraft-server and docker-bungeecord images under-the-hood.
## With Ansible
[Ansible](https://docs.ansible.com/ansible/latest/getting_started/introduction.html) is an open-source task automation tool built in [Python](https://www.python.org/). Ansible playbooks can be used to automate all kinds of tasks, including deploying remote Minecraft servers.
### Using the MASH playbook
[The MASH Playbook](https://github.com/mother-of-all-self-hosting/mash-playbook) is a premade playbook with the option to deploy a [wide variety of open-source services](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/supported-services.md) to your server(s), including [docker-minecraft-server](https://github.com/XHawk87/ansible-role-minecraft), making it a good option if you want all the bells and whistles alongside your Minecraft server.
- Check out the [Installation Guide](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/README.md) for the MASH playbook to get started.
- You can then enable [Minecraft](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/minecraft.md) in your vars.yml.
- Enable any supporting services that you might find useful, such as [user authentication](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/authelia.md), [remote backups](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/backup-borg.md), [email relay](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/exim-relay.md), [cron monitoring](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/healthchecks.md), [audio and video conferencing](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/jitsi.md), databases ([MariaDB](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/mariadb.md), [PostgresSQL](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/postgres.md)), [push notifications](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/ntfy.md), [uptime monitoring](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/uptime-kuma.md), [a website](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/wordpress.md), as well as installing any [extra files, folders, applications, services and running commands](https://github.com/mother-of-all-self-hosting/mash-playbook/blob/main/docs/services/auxiliary.md) automatically on deployment.
## On CloudFormation (AWS)
If you're looking for a simple way to deploy this to the Amazon Web Services Cloud, check out the [Minecraft Server Deployment (CloudFormation) repository](https://github.com/vatertime/minecraft-spot-pricing). This repository contains a CloudFormation template that will get you up and running in AWS in a matter of minutes. Optionally it uses Spot Pricing so the server is very cheap, and you can easily turn it off when not in use.
## Supporting Articles
Below are supporting articles for server deployment.
- "Zero to Minecraft Server with Docker Desktop and Compose"
https://dev.to/rela-v/zero-to-minecraft-server-with-docker-desktop-and-compose-500a
- This is a reference guide/tutorial on how to set up a vanilla Minecraft server using this project, including step-by-step instructions, and information on topics such as port-forwarding.

187
docs/misc/examples.md Normal file
View File

@@ -0,0 +1,187 @@
# Examples
Various examples are [maintained in the repository](https://github.com/itzg/docker-minecraft-server/tree/master/examples). The sections below highlight a few particular ones.
## Bedrock compatible server
Using the [GeyserMC plugin](https://geysermc.org/) with a Paper server (or similar) "enables clients from Minecraft Bedrock Edition to join your Minecraft Java server". The example also includes [Floodgate](https://wiki.geysermc.org/floodgate/) which "allows Xbox Live authenticated Bedrock users to join without a Java Edition account".
```yaml title="compose.yaml"
services:
mc:
image: itzg/minecraft-server:latest
pull_policy: daily
environment:
EULA: "true"
TYPE: "PAPER"
PLUGINS: |
https://download.geysermc.org/v2/projects/geyser/versions/latest/builds/latest/downloads/spigot
https://download.geysermc.org/v2/projects/floodgate/versions/latest/builds/latest/downloads/spigot
ports:
- "25565:25565"
- "19132:19132/udp"
volumes:
- ./data:/data
```
[Source](https://github.com/itzg/docker-minecraft-server/blob/master/examples/geyser/docker-compose.yml)
## mc-router with auto-scale
Using [mc-router](https://github.com/itzg/mc-router) in front of one or multiple Minecraft server containers allows you to route players based on the hostname they use to connect.
With `AUTO_SCALE_UP` and `AUTO_SCALE_DOWN` enabled, mc-router can automatically start a target server when a player connects and stop it again after a period of inactivity.
```yaml title="compose.yaml"
services:
router:
image: itzg/mc-router
environment:
IN_DOCKER: true
AUTO_SCALE_DOWN: true
AUTO_SCALE_UP: true
AUTO_SCALE_DOWN_AFTER: 2h
AUTO_SCALE_ASLEEP_MOTD: "Server is asleep. Join again to wake it up!"
ports:
- "25565:25565"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
vanilla:
image: itzg/minecraft-server
environment:
EULA: "TRUE"
labels:
mc-router.host: "vanilla.example.com"
paper:
image: itzg/minecraft-server
environment:
EULA: "TRUE"
TYPE: PAPER
labels:
mc-router.host: "paper.example.com"
```
[Source](https://github.com/itzg/mc-router/blob/main/examples/docker-autoscale/compose-minimal.yml)
[More detailed example](https://github.com/itzg/mc-router/blob/main/examples/docker-autoscale/compose.yml)
## Lazymc - Put your Minecraft server to rest when idle
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 title="compose.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:
lazymc:
image: ghcr.io/joesturge/lazymc-docker-proxy:latest
# the IPs should start at .2 as .1 is reserved for the gateway
networks:
minecraft-network:
ipv4_address: 172.18.0.2
restart: unless-stopped
volumes:
# you should mount the minecraft server dir under /server, using read only.
- data:/server:ro
# you need to supply the docker socket, so that the container can run docker command
- /var/run/docker.sock:/var/run/docker.sock:ro
ports:
# lazymc-docker-proxy acts as a proxy, so there is
# no need to expose the server port on the Minecraft container
- "25565:25565"
# Standard Docker Minecraft server, also works with other server types
mc:
image: itzg/minecraft-server:java21
pull_policy: daily
# 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
# container to manage
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
# Point to the service name of the Minecraft server
- lazymc.server.address=mc:25565
tty: true
stdin_open: true
# This container should be managed solely by the lazymc container
# so set restart to no, or else the container will start again...
restart: no
environment:
EULA: "TRUE"
volumes:
- data:/data
volumes:
data:
```
[Source](https://github.com/joesturge/lazymc-docker-proxy/blob/master/docker-compose.yaml)
## Lazytainer - Stop Minecraft container based on traffic
Monitors network traffic to the Minecraft containers. If there is traffic, the container runs, otherwise the container is stopped/paused.
By using [Lazytainer](https://github.com/vmorganp/Lazytainer) with the [docker-minecraft-server](https://github.com/itzg/docker-minecraft-server) a somehow similar behaviour to [Lazymc](https://github.com/timvisee/lazymc) can be archived.
```yaml title="compose.yaml"
services:
lazytainer:
image: ghcr.io/vmorganp/lazytainer:master
environment:
VERBOSE: false
ports:
- 25565:25565
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
labels:
- lazytainer.group.minecraft.sleepMethod=stop
- lazytainer.group.minecraft.ports=25565
- lazytainer.group.minecraft.minPacketThreshold=2 # Start after two incomming packets
- lazytainer.group.minecraft.inactiveTimeout=600 # 10 minutes, to allow the server to bootstrap. You can probably make this lower later if you want.
restart: unless-stopped
network_mode: bridge
mc:
image: itzg/minecraft-server:latest
pull_policy: daily
environment:
EULA: TRUE
TYPE: PAPER
MEMORY: 4G
volumes:
- ./data:/data
labels:
- lazytainer.group=minecraft
depends_on:
- lazytainer
network_mode: service:lazytainer
tty: true
stdin_open: true
restart: unless-stopped
```
[Source](https://github.com/itzg/docker-minecraft-server/blob/master/examples/lazytainer/docker-compose.yml)

39
docs/misc/healthcheck.md Normal file
View File

@@ -0,0 +1,39 @@
## Healthcheck
This image contains [mc-monitor](https://github.com/itzg/mc-monitor) and uses its `status` command to continually check on the container's. That can be observed from the `STATUS` column of `docker ps`
```
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
b418af073764 mc "/start" 43 seconds ago Up 41 seconds (healthy) 0.0.0.0:25565->25565/tcp, 25575/tcp mc
```
You can also query the container's health in a script-friendly way:
``` shell
> docker container inspect -f "{{.State.Health.Status}}" mc
healthy
```
There's actually a wrapper script called `mc-health` that takes care of calling `mc-monitor status` with the correct arguments. If needing to customize the health checks parameters, such as in a Compose file, then use something like the following in the service declaration:
``` yaml
healthcheck:
test: mc-health
start_period: 1m
interval: 5s
retries: 20
```
Some orchestration systems, such as Portainer, don't allow for disabling the default `HEALTHCHECK` declared by this image. In those cases you can approximate the disabling of health checks by setting the environment variable `DISABLE_HEALTHCHECK` to `true`.
The [health check in a Compose service declaration](https://docs.docker.com/reference/compose-file/services/#healthcheck) can also be disabled using:
```yaml
healthcheck:
disable: true
test: ["NONE"]
```
### Health checks for older versions
This container disables health checks for Minecraft versions before b1.8 as those versions do not support any kind of server pinging. For more information see [Server List Ping](https://minecraft.wiki/w/Java_Edition_protocol/Server_List_Ping#Beta_1.8_to_1.3).

1
docs/misc/log4j.md Normal file
View File

@@ -0,0 +1 @@
**Please ensure you have pulled the latest image** since [all official mitigations](https://www.minecraft.net/en-us/article/important-message--security-vulnerability-java-edition) are automatically applied by the container startup process.

11
docs/misc/raspberrypi.md Normal file
View File

@@ -0,0 +1,11 @@
# Running on RaspberryPi
To run this image on a RaspberryPi 3 B+, 4, or newer, use any of the image tags [list in the Java version section](../versions/java.md) that specify `armv7` for the architecture, which includes `itzg/minecraft-server:latest`.
!!! note
You may need to lower the memory allocation, such as `-e MEMORY=750m`
!!! note
If experiencing issues such as "sleep: cannot read realtime clock: Operation not permitted", ensure `libseccomp` is up to date on your host. In some cases adding `:Z` flag to the `/data` mount may be needed, [but use cautiously](https://docs.docker.com/storage/bind-mounts/#configure-the-selinux-label).

View File

@@ -0,0 +1,31 @@
### [itzg/minecraft-bedrock-server](https://github.com/itzg/docker-minecraft-bedrock-server)
Docker image that runs a Minecraft Bedrock server.
### [mc-router](https://github.com/itzg/mc-router)
Lightweight multiplexer/proxy for Minecraft Java servers. Provided as a stand-alone application and a Docker image.
### [itzg/mc-proxy](https://github.com/itzg/docker-bungeecord/)
Docker image that runs a proxy powered by Bungeecord, Velocity, or Waterfall
### [itzg/mc-backup](https://github.com/itzg/docker-mc-backup)
Docker image that runs as a side-car container to backup world data.
### [rcon-cli](https://github.com/itzg/rcon-cli)
A tool that is bundled with this image to provide CLI access to an RCON endpoint.
### [mc-monitor](https://github.com/itzg/mc-monitor)
A tool that is bundled with this image that provides health checks and metrics reporting, such as a Prometheus exporter or a telegraf data source.
### [mc-image-helper](https://github.com/itzg/mc-image-helper)
A tool that is bundled with this image to provide complex, re-usable preparation operations.
### [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).

View File

@@ -0,0 +1,38 @@
To troubleshoot the container initialization, such as when server files are pre-downloaded, set the environment variable `DEBUG` to `true`. The container logs will include **much more** output, and it is highly recommended including that output when reporting any [issues](https://github.com/itzg/docker-minecraft-server/issues).
To troubleshoot just the command-line used to start the Minecraft server, set the environment variable `DEBUG_EXEC` to `true`.
To troubleshoot any issues with memory allocation reported by the JVM, set the environment variable `DEBUG_MEMORY` to `true`.
If you are experiencing any issues with the "Changing ownership of /data" step, that can be disabled by setting `SKIP_CHOWN_DATA` to `true`.
To confirm the image version that has been pulled, use the following command, replacing `itzg/minecraft-server` as needed for specific image tags:
## Image labels
```shell
docker image inspect itzg/minecraft-server -f "{{json .Config.Labels}}"
```
such as
```json
{
"org.opencontainers.image.authors": "... <...@gmail.com>",
"org.opencontainers.image.created": "2025-04-03T02:15:51.405Z",
"org.opencontainers.image.description": "Docker image that provides a Minecraft Server for Java Edition that automatically downloads selected version at startup",
"org.opencontainers.image.licenses": "Apache-2.0",
"org.opencontainers.image.ref.name": "ubuntu",
"org.opencontainers.image.revision": "d6897a649ecbc16b5fb2e1500e24b64ef80270a0",
"org.opencontainers.image.source": "https://github.com/itzg/docker-minecraft-server",
"org.opencontainers.image.title": "docker-minecraft-server",
"org.opencontainers.image.url": "https://github.com/itzg/docker-minecraft-server",
"org.opencontainers.image.version": "java21"
}
```
The labels that are most interesting are:
- `org.opencontainers.image.created` : the date/time the image was built
- `org.opencontainers.image.revision` : which maps to <https://github.com/itzg/docker-minecraft-server/commit/REVISION>
- `org.opencontainers.image.version` : image tag and variant [as described in this page](../versions/java.md)

131
docs/misc/world-data.md Normal file
View File

@@ -0,0 +1,131 @@
## Downloadable world
Instead of mounting the `/data` volume, you can instead specify the URL of a ZIP or compressed TAR file containing an archived world. It will be searched for a file `level.dat` and the containing subdirectory moved to the directory named by `$LEVEL`. This means that most of the archived Minecraft worlds downloadable from the Internet will already be in the correct format.
docker run -d -e WORLD=http://www.example.com/worlds/MySave.zip ...
!!! note
This URL must be accessible from inside the container. Therefore, you should use an IP address or a globally resolvable FQDN, or else the name of a linked container.
!!! note
If the archive contains more than one `level.dat`, then the one to select can be picked with `WORLD_INDEX`, which defaults to 1.
## Cloning world from a container path
The `WORLD` option can also be used to reference a directory, zip file, or compressed tar file that will be used as a source to clone or extract the world directory.
For example, the following would initially clone the world's content from `/worlds/basic`. Also notice in the example that you should use a read-only volume attachment to ensure the clone source remains pristine.
```
docker run ... -v $HOME/worlds:/worlds:ro -e WORLD=/worlds/basic
```
The following diagram shows how this option can be used in a compose deployment with a relative directory:
![](../img/world-copy-compose-project.drawio.png)
## Overwrite world on start
The world will only be downloaded or copied if it doesn't exist already. Set `FORCE_WORLD_COPY=TRUE` to force overwrite the world on every server start.
## Custom worlds directory path
To set a custom worlds directory for the Multiverse plugin on a baremetal server, you'd pass the `--world-dir` argument after the jar file.
In order to accomplish the same in a containerized server, set the `EXTRA_ARGS` environment variable in your command line or docker compose yaml to the same argument string. For example:
```
docker run -d -e EXTRA_ARGS='--world-dir ./worlds/'
```
`--world-container`, `-W`, and `--universe` are aliases to `--world-dir` and can also be used.
## Datapacks
Datapacks can be installed in a similar manner to mods/plugins. There are many environment variables which function in the same way they do for [mods](../mods-and-plugins/index.md):
* `DATAPACKS`: comma-separated list of zip file URL, zip file in container, or directory in container
* `DATAPACKS_FILE`: a text file within the container where each line is a zip file URL, zip file in container, or directory in container
* `REMOVE_OLD_DATAPACKS`: if "true" the datapacks directory is removed of everything matching `REMOVE_OLD_DATAPACKS_INCLUDE`, but excluding `REMOVE_OLD_DATAPACKS_EXCLUDE` no deeper than `REMOVE_OLD_DATAPACKS_DEPTH`
* `REMOVE_OLD_DATAPACKS_DEPTH`: default is 16
* `REMOVE_OLD_DATAPACKS_INCLUDE`: default is `*.zip`
* `REMOVE_OLD_DATAPACKS_EXCLUDE`: default is empty
Datapacks will be placed in `/data/$LEVEL/datapacks`
## VanillaTweaks
[VanillaTweaks](https://vanillatweaks.net/) datapacks, crafting tweaks, and resource packs can be installed with a share code from the website **OR** a json file to specify packs to download and install. Datapacks and crafting tweaks will be installed into the current world directory specified by `$LEVEL`. As new versions of the packs are retrieved the previous versions will automatically be cleaned up.
The share code is the part following the hash sign, as shown here:
```
https://vanillatweaks.net/share/#MGr52E
------
|
+- share code MGr52E
```
Accepted Parameters:
- `VANILLATWEAKS_FILE`: comma separated list of JSON VanillaTweak pack files accessible within the container
- `VANILLATWEAKS_SHARECODE`: comma separated list of share codes
Example of expected VanillaTweaks share codes:
!!! note
ResourcePacks, DataPacks, and CraftingTweaks all have separate sharecodes
``` yaml
VANILLATWEAKS_SHARECODE: MGr52E,tF1zL2,LnEDwT
```
!!! note
Datapack names are all lower case. [See their spec](https://vanillatweaks.net/assets/resources/json/1.21/dpcategories.json) for a full list of 1.21 datapacks, and [their spec](https://vanillatweaks.net/assets/resources/json/1.21/ctcategories.json) for a full list of 1.21 crafting tweaks.
Example of expected VanillaTweaks files:
``` yaml
VANILLATWEAKS_FILE: /config/vt-datapacks.json,/config/vt-craftingtweaks.json,/config/vt-resourcepacks.json
```
``` json title="DataPacks json"
{
"type": "datapacks",
"version": "1.21",
"packs": {
"gameplay changes": [
"graves",
"multiplayer sleep",
"armored elytra"
],
"teleport commands": ["tpa"]
}
}
```
``` json title="ResourcePacks json"
{
"type": "resourcepacks",
"version": "1.21",
"packs": {
"aesthetic": ["CherryPicking", "BlackNetherBricks", "AlternateBlockDestruction"]
}
}
```
``` json title="CraftingTweaks Json"
{
"type": "craftingtweaks",
"version": "1.21",
"packs": {
"quality of life": [
"dropper to dispenser",
"double slabs",
"back to blocks"
]
}
}
```

View File

@@ -0,0 +1,58 @@
# Auto-download from CurseForge
Mods and plugins can be auto-downloaded and upgraded from CurseForge by setting `CURSEFORGE_FILES` to a comma or space delimited list of [project-file references](#project-file-references). References removed from the declaration are automatically cleaned up and setting `CURSEFORGE_FILES` to an empty string removes all previously managed project-files.
A specific file can be omitted from each reference to allow for auto-selecting the newest version of the selected mod/plugin. The resolved `VERSION` and `TYPE` will be taken into consideration for selecting the appropriate file.
!!! warning "CurseForge API key usage"
A CurseForge API key must be allocated and set with `CF_API_KEY` (or `CF_API_KEY_FILE`) [as described here](../types-and-platforms/mod-platforms/auto-curseforge.md#api-key).
## Project-file references
!!! tip
Individual project files typically represent a version of the mod/plugin, but CurseForge refers to these items broadly as "files" rather than "versions".
The following formats are supported in the list of project-file references:
- A project page URL, such as `https://www.curseforge.com/minecraft/mc-mods/jei`. _The newest applicable file will be automatically selected._
- A file page URL, such as `https://www.curseforge.com/minecraft/mc-mods/jei/files/4593548`
- Project slug, such as `jei`. _The newest applicable file will be automatically selected._
- Project ID, such as `238222`. _The newest applicable file will be automatically selected._
- Project slug or ID, `:`, and a file ID, such as `jei:4593548` or `238222:4593548`
- Project slug or ID, `@`, and a partial filename, such as `jei@10.2.1.1005`. This option is useful to refer to a version of the mod/plugin rather than looking up the file ID.
- An `@` followed by the **container path** to a listing file
!!! info "More about listing files"
Each line in the listing file is processed as one of the references above; however, blank lines and comments that start with `#` are ignored.
Make sure to place the listing file in a mounted directory/volume or declare an appropriate mount for it.
For example, `CURSEFORGE_FILES` can be set to "@/extras/cf-mods.txt", assuming "/extras" has been added to `volumes` section, where the container file `/extras/cf-mods.txt` contains
```text
# This comment is ignored
jei:10.2.1.1005
# This and previous blank line are ignore
geckolib
aquaculture
naturalist
```
!!! tip "Multi-line values in Docker Compose"
Making use of the space delimited option, compose file declarations can be organized nicely with a [multi-line string](https://yaml-multiline.info/), such as
```yaml
CURSEFORGE_FILES: |
geckolib
aquaculture
naturalist
```
## Dependencies
The files processing can detect if a dependency is missing from the given list, but is not able to resolve the dependencies otherwise since their metadata only gives the mod ID and not the specific file version/ID that is needed.

View File

@@ -0,0 +1,215 @@
# Working with mods and plugins
## Modpack platforms
By far the easiest way to work with mod and plugins, especially large numbers of them, is to utilize modpacks with [one of the supported modpack platforms](../types-and-platforms/index.md).
The following are some supported modpack platforms:
- [Modrinth](../types-and-platforms/mod-platforms/modrinth-modpacks.md)
- [CurseForge](../types-and-platforms/mod-platforms/auto-curseforge.md)
- [Feed the Beast](../types-and-platforms/mod-platforms/ftb.md)
## Download automation
On the left, there are sections describing some download automation options.
## Mods vs Plugins
The terms "mods" and "plugins" can be quite confusing. Generally, the rule of thumb is that "mods" are used by the types that run client side to modify rendering, add new blocks, and add behaviors server, such as [Forge](../types-and-platforms/server-types/forge.md) and [Fabric](../types-and-platforms/server-types/fabric.md). "Plugins" are used by the types that **only run on servers** to add behaviors, commands, etc such as [Paper](../types-and-platforms/server-types/paper.md) (which derives from [Bukkit/Spigot](../types-and-platforms/server-types/bukkit-spigot.md)). There are also some types that are [hybrids](../types-and-platforms/server-types/hybrids.md), such as Magma, that use both "mods" and "plugins".
Typically, mods needs to be installed in both the client and server; however, there are some cases when only the server needs a mod. Plugins only need to be installed in the server and are never needed in the client.
## Optional plugins, mods, and config attach points
There are optional volume paths that can be attached to supply content to be copied into the data area:
`/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`. 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.
!!! example "Using Cardboard plugins with Fabric"
```yaml
environment:
EULA: "TRUE"
TYPE: "FABRIC"
MODRINTH_PROJECTS: |
fabric-api
cardboard
USES_PLUGINS: true
```
`/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`.
`/config`
: contents are synchronized into `/data/config` by default, but can be changed with `COPY_CONFIG_DEST`. For example, `-v ./config:/config -e COPY_CONFIG_DEST=/data` will allow you to copy over files like `bukkit.yml` and so on directly into the server directory. The source can be changed by setting `COPY_CONFIG_SRC`. Set `SYNC_SKIP_NEWER_IN_DESTINATION=false` if you want files from `/config` to take precedence over newer files in `/data/config`.
By default, the [environment variable processing](../configuration/interpolating.md) is performed on synchronized files that match the expected suffixes in `REPLACE_ENV_SUFFIXES` (by default "yml,yaml,txt,cfg,conf,properties,hjson,json,tml,toml") and are not excluded by `REPLACE_ENV_VARIABLES_EXCLUDES` and `REPLACE_ENV_VARIABLES_EXCLUDE_PATHS`. This processing can be disabled by setting `REPLACE_ENV_DURING_SYNC` to `false`.
If you want old mods/plugins to be removed before the content is brought over from those attach points, then add `-e REMOVE_OLD_MODS=TRUE`. You can fine tune the removal process by specifying the `REMOVE_OLD_MODS_INCLUDE` and `REMOVE_OLD_MODS_EXCLUDE` variables, which are comma separated lists of file glob patterns. If a directory is excluded, then it and all of its contents are excluded. By default, only jars are removed.
You can also specify the `REMOVE_OLD_MODS_DEPTH` (default is 16) variable to only delete files up to a certain level.
For example: `-e REMOVE_OLD_MODS=TRUE -e REMOVE_OLD_MODS_INCLUDE="*.jar" -e REMOVE_OLD_MODS_DEPTH=1` will remove all old jar files that are directly inside the `plugins/` or `mods/` directory.
These paths work well if you want to have a common set of modules in a separate location, but still have multiple worlds with different server requirements in either persistent volumes or a downloadable archive.
!!! information "Multiple source directories"
`COPY_PLUGINS_SRC`, `COPY_MODS_SRC`, `COPY_CONFIG_SRC` can each be set to a comma or newline delimited list of container directories to reference.
For example, in a compose file:
```yaml
environment:
# ...EULA, etc
TYPE: PAPER
# matches up to volumes declared below
COPY_PLUGINS_SRC: /plugins-common,/plugins-local
volumes:
- mc-data:/data
# For example, reference a shared directory used by several projects
- ../plugins-common:/plugins-common:ro
# and add plugins unique to this project
- ./plugins:/plugins-local:ro
```
Alternatively, you can declare other directories along with files and URLs to use in [the `MODS` / `PLUGINS` variables](#modsplugins-list).
## Applying extra configuration files
You can download/copy additional configuration files or other resources before the server starts by using the `APPLY_EXTRA_FILES` environment variable. This is useful for downloading configs that you want to patch or modify during the startup process.
The format uses a `<` separator between the destination path and the source URL/path. The destination path is relative to the `/data` directory. If specifying a source path, it needs to be path mounted within the container.
!!! example
With `docker run`
```
-e APPLY_EXTRA_FILES=destination<source_url[,destination2<source_url2,...]
```
With a compose file:
```yaml
environment:
APPLY_EXTRA_FILES: |
destination<source1_url
destination2<source2_path
```
!!! tip "Patch-able"
The `APPLY_EXTRA_FILES` feature is processed prior to [patch processing](../configuration/interpolating.md#patching-existing-files), so this can be used as for baseline files to be patched further at runtime.
## Zip file modpack
Like the `WORLD` option above, you can specify the URL or container path of a "mod pack" to download and install into `mods` for Forge/Fabric or `plugins` for Bukkit/Spigot. To use this option pass the environment variable `MODPACK`, such as
```shell
docker run -d -e MODPACK=http://www.example.com/mods/modpack.zip ...
```
!!! note
The referenced URL/file must be a zip file with one or more jar files at the
top level of the zip archive. Make sure the jars are compatible with the
particular `TYPE` of server you are running.
## Generic pack files
To install all the server content (jars, mods, plugins, configs, etc.) from a zip or tgz file, then set `GENERIC_PACK` to the container path or URL of the archive file. This can also be used to apply a CurseForge modpack that is missing a server start script and/or Forge installer.
If multiple generic packs need to be applied together, set `GENERIC_PACKS` instead, with a comma separated list of archive file paths and/or URLs to files.
To avoid repetition, each entry will be prefixed by the value of `GENERIC_PACKS_PREFIX` and suffixed by the value of `GENERIC_PACKS_SUFFIX`, both of which are optional. For example, the following variables
```
GENERIC_PACKS=configs-v9.0.1,mods-v4.3.6
GENERIC_PACKS_PREFIX=https://cdn.example.org/
GENERIC_PACKS_SUFFIX=.zip
```
would expand to `https://cdn.example.org/configs-v9.0.1.zip,https://cdn.example.org/mods-v4.3.6.zip`.
If applying large generic packs, the update can be time-consuming. To skip the update set `SKIP_GENERIC_PACK_UPDATE_CHECK` to "true". Conversely, the generic pack(s) can be forced to be applied by setting `FORCE_GENERIC_PACK_UPDATE` to "true".
The most time-consuming portion of the generic pack update is generating and comparing the SHA1 checksum. To skip the checksum generation, set `SKIP_GENERIC_PACK_CHECKSUM` to "true".
To disable specific mods, which can be useful for conflicts between multiple generic packs, you can use the `GENERIC_PACKS_DISABLE_MODS` variable to specify mods to disable.
Disabling mods with docker run:
```shell
docker run -d -e GENERIC_PACKS_DISABLE_MODS="mod1.jar mod2.jar" ...
```
Disabling mods within docker compose files:
```yaml
GENERIC_PACKS_DISABLE_MODS: |
mod1.jar
mod2.jar
```
## Mods/plugins list
You may also download or copy over individual mods/plugins using the `MODS` or `PLUGINS` environment variables. Both are a comma or newline delimited list of
- URL of a jar file
- container path to a jar file
- container path to a directory containing jar files
```shell
docker run -d -e MODS=https://www.example.com/mods/mod1.jar,/plugins/common,/plugins/special/mod2.jar ...
```
The newline delimiting allows for compose file usage like:
```yaml
PLUGINS: |
https://download.geysermc.org/v2/projects/geyser/versions/latest/builds/latest/downloads/spigot
https://download.geysermc.org/v2/projects/floodgate/versions/latest/builds/latest/downloads/spigot
```
!!! note "Auto-removal"
Entries that are removed from the `MODS` or `PLUGINS` list will be automatically removed from the `mods` or `plugins` directory. This is useful for removing mods/plugins that are no longer needed. An empty `MODS` or `PLUGINS` list will remove all mods/plugins.
!!! note "Disable processing"
To temporarily disable processing of the `MODS` or `PLUGINS` list, then comment out the `MODS` or `PLUGINS` environment variable.
## Mod/Plugin URL Listing File
As an alternative to `MODS`/`PLUGINS`, the variable `MODS_FILE` or `PLUGINS_FILE` can be set with the container path or URL of a text file listing a mod/plugin URLs on each line. For example, the following
-e MODS_FILE=/extras/mods.txt
would load from a file mounted into the container at `/extras/mods.txt`. That file might look like:
```text
https://edge.forgecdn.net/files/2965/233/Bookshelf-1.15.2-5.6.40.jar
https://edge.forgecdn.net/files/2926/27/ProgressiveBosses-2.1.5-mc1.15.2.jar
# This and next line are ignored
#https://edge.forgecdn.net/files/3248/905/goblintraders-1.3.1-1.15.2.jar
https://edge.forgecdn.net/files/3272/32/jei-1.15.2-6.0.3.16.jar
https://edge.forgecdn.net/files/2871/647/ToastControl-1.15.2-3.0.1.jar
```
!!! note
Blank lines and lines that start with a `#` will be ignored
[This compose file](https://github.com/itzg/docker-minecraft-server/blob/master/examples/mods-file/docker-compose.yml) shows another example of using this feature.
## Remove old mods/plugins
When the `MODPACK` option above is specified you can also instruct script to delete old mods/plugins prior to installing new ones. This behaviour is desirable in case you want to upgrade mods/plugins from downloaded zip file.
To use this option pass the environment variable `REMOVE_OLD_MODS=TRUE`, such as
```shell
docker run -d -e REMOVE_OLD_MODS=TRUE -e MODPACK=http://www.example.com/mods/modpack.zip ...
```
!!! danger
All content of the `mods` or `plugins` directory will be deleted before unpacking new content from the MODPACK or MODS.

View File

@@ -0,0 +1,118 @@
# Auto-download from Modrinth
[Modrinth](https://modrinth.com/) is an open source modding platform with a clean, easy to use website for finding [Fabric, Forge, etc mods](https://modrinth.com/mods) and [Paper, etc plugins](https://modrinth.com/plugins), and [datapacks](https://modrinth.com/datapacks). At startup, the container will automatically locate and download the newest versions of mod/plugin files that correspond to the `TYPE` and `VERSION` in use. Older file versions downloaded previously will automatically be cleaned up.
## Usage
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 (such as "Oa9ZDzZq") or number (such as "2.21.2"). When omitted, the latest release version will be selected. Using version ID will override Minecraft and loader compatibility checks.
- **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"
The project ID can be copied to the clipboard from the project page menu:
![Modrinth copy project ID](../img/modrinth-copy-project-id.png)
!!! tip "Project Slug"
The project slug is the part of the URL that follows `/mod/`, `/plugin/`, or `/datapack/`. For example, this one is "essentialsx".
![](../img/modrinth-plugin-project-slug.png)
!!! tip "Version number and ID"
The version number and ID are located in the metadata panel on a version specific page, such as <https://modrinth.com/plugin/essentialsx/version/2.21.2>
![Version ID](../img/modrinth-version-id.drawio.png)
### Examples
| Description | Example projects entry |
|---------------------------------|-------------------------------------------------------|
| Select latest version | `fabric-api` |
| Select specific version | `fabric-api:bQZpGIz0`<br/>`fabric-api:0.119.2+1.21.4` |
| Select latest beta version | `fabric-api:beta` |
| 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`<br/>`fabric:fabric-api:bQZpGIz0` |
| Projects Listing File | `@/path/to/modrinth-mods.txt` |
### Notes
!!! info "More about listing files"
Each line in the listing file is processed as one of the references above; however, blank lines and comments that start with `#` are ignored.
Make sure to place the listing file in a mounted directory/volume or declare an appropriate mount for it.
For example, `MODRINTH_PROJECTS` can be set to "@/extras/modrinth-mods.txt", assuming "/extras" has been added to `volumes` section, where the container file `/extras/modrinth-mods.txt` contains
```text
# This comment is ignored
fabric-api
# This and previous blank line are ignore
cloth-config
datapack:terralith
```
!!! note "Auto-removal"
Entries that are removed from the `MODRINTH_PROJECTS` list will be automatically removed from the `mods` or `plugins` directory. This is useful for removing mods/plugins that are no longer needed. An empty `MODRINTH_PROJECTS` list will remove all mods/plugins.
!!! note "Disable processing"
To temporarily disable processing of the `MODRINTH_PROJECTS` list, then comment out the `MODRINTH_PROJECTS` environment variable.
## 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`.
!!! example
Given the environment variables
```yaml
MODRINTH_PROJECTS: |
viaversion
viabackwards
griefprevention
discordsrv
VERSION_FROM_MODRINTH_PROJECTS: true
```
Let's say all are supported on Minecraft up to 1.21.8 except griefprevention, which is only supported up to 1.21.7. In that case, `VERSION` will be automatically set to 1.21.7.
## Extra options
`MODRINTH_DOWNLOAD_DEPENDENCIES`
: Can be set to `none` (the default), `required`, or `optional` to download required and/or optional dependencies.
`MODRINTH_PROJECTS_DEFAULT_VERSION_TYPE`
: The version type is used to determine the newest version to use from each project. The allowed values are `release` (default), `beta`, `alpha`. Setting to `beta` will pick up both release and beta versions. Setting to `alpha` will pick up release, beta, and alpha versions.
`MODRINTH_LOADER`
: When using a custom server, set this to specify which loader type will be requested during lookups

View File

@@ -0,0 +1,18 @@
# Packwiz Modpacks
[packwiz](https://packwiz.infra.link/) is a CLI tool for maintaining and providing modpack definitions, with support for both CurseForge and Modrinth as sources. See the [packwiz tutorial](https://packwiz.infra.link/tutorials/getting-started/) for more information.
To configure server mods using a packwiz modpack, set the `PACKWIZ_URL` environment variable to the location of your `pack.toml` modpack definition:
```
docker run -d --pull=always \
-v /path/on/host:/data -e TYPE=FABRIC \
-e "PACKWIZ_URL=https://example.com/modpack/pack.toml" \
itzg/minecraft-server
```
packwiz modpack definitions are processed before other mod definitions (`MODPACK`, `MODS`, etc.) to allow for additional processing/overrides you may want to perform (in case of mods not available via Modrinth/CurseForge, or you do not maintain the pack).
!!! note
packwiz is pre-configured to only download server mods. If client-side mods are downloaded and cause issues, check your pack.toml configuration, and make sure any client-only mods are not set to `"both"`, but rather `"client"` for the side configuration item.

View File

@@ -0,0 +1,19 @@
# Auto-download using Spiget
The `SPIGET_RESOURCES` variable can be set with a comma-separated list of SpigotMC resource IDs to automatically download [Spigot/Bukkit/Paper plugins](https://www.spigotmc.org/resources/) using [the spiget API](https://spiget.org/). Resources that are zip files will be expanded into the plugins directory and resources that are simply jar files will be moved there.
!!! important "SPIGET not SPIGOT"
The variable is purposely spelled SPIG**E**T with an "E"
The **resource ID** can be located from the numerical part of the URL after the shortname/slug and a dot. For example, the ID is **28140** from
https://www.spigotmc.org/resources/luckperms.28140/
=====
For example, the following will auto-download the [LuckPerms](https://www.spigotmc.org/resources/luckperms.28140/) and [Vault](https://www.spigotmc.org/resources/vault.34315/) plugins:
-e SPIGET_RESOURCES=28140,34315
!!! note
Some plugins, such as EssentialsX (resource ID 9089), do not permit automated downloads via Spiget. Instead, you will need to pre-download the desired file and supply it to the container, such as using the `/plugins` mount point, described [in the main section](index.md).

25
docs/requirements.txt Normal file
View File

@@ -0,0 +1,25 @@
click==8.3.1
colorama==0.4.6
deepmerge==2.0
ghp-import==2.1.0
griffe==1.15.0
Jinja2==3.1.6
Markdown==3.10.1
MarkupSafe==3.0.3
mergedeep==1.3.4
mkdocs==1.6.1
mkdocs-autorefs==1.4.3
mkdocs-get-deps==0.2.0
mkdocstrings==1.0.2
mkdocstrings-python==2.0.1
packaging==26.0
pathspec==1.0.4
platformdirs==4.5.1
Pygments==2.19.2
pymdown-extensions==10.20.1
python-dateutil==2.9.0.post0
PyYAML==6.0.3
pyyaml_env_tag==1.1
six==1.17.0
watchdog==6.0.0
# zensical @ file:///

View File

@@ -0,0 +1,69 @@
---
title: With Docker
---
[RCON](http://wiki.vg/RCON) is enabled by default, so you can `exec` into the container to
access the Minecraft server console:
```
docker exec -i mc rcon-cli
```
Note: The `-i` is required for interactive use of rcon-cli.
To run a simple, one-shot command, such as stopping a Minecraft server, pass the command as arguments to `rcon-cli`, such as:
```
docker exec mc rcon-cli stop
```
_The `-i` is not needed in this case._
## When RCON is disabled
If rcon is disabled you can send commands by passing them as arguments to the packaged `mc-send-to-console` script after setting the env var `CREATE_CONSOLE_IN_PIPE` to "true". For example, a player can be op'ed in the container `mc` with:
```shell
docker exec --user 1000 mc mc-send-to-console op player
| |
+- container name +- Minecraft commands start here
```
## Enabling interactive console
In order to attach and interact with the Minecraft server make sure to enable TTY and keep stdin open.
!!! example
With `docker run` use the `-it` arguments:
```shell
docker run -d -it -p 25565:25565 --name mc itzg/minecraft-server
```
or with a compose file:
```yaml
services:
minecraft:
stdin_open: true
tty: true
```
With that you can attach and interact at any time using the following, replacing the `{...}` placeholders.
...when container is created with `docker run`
```
docker attach {container name or ID}
```
...or when declared using a compose file
```
docker compose attach {service name}
```
and then Control-p Control-q to **detach**.
!!! info "RCON is required for fully interactive, color console"
RCON must be enabled, which is the default, in order to use a fully interactive console with auto-completion and colorized log output.

View File

@@ -0,0 +1,70 @@
---
title: Over SSH
---
The container can host an SSH console. It is enabled by setting `ENABLE_SSH` to `true`.
The SSH server only supports password based authentication. The password is the same as the RCON password.
!!! question
See [the RCON password](../configuration/server-properties.md/#rcon-password) section under configuration/server-properties for more information on how to set an RCON password.
The SSH server runs on port `2222` inside the container.
??? tip "Tip: Exposing the SSH port"
!!! warning "Security Implications"
By default, publishing ports in Docker binds them to all network interfaces (`0.0.0.0`), making the SSH console accessible to any device that can reach your host machine.
Since the SSH console grants **full administrative access** to your server, it is critical to use a strong [RCON password](../configuration/server-properties.md/#rcon-password).
If you wish to restrict access to the local machine only, refer to the [Docker documentation](https://docs.docker.com/engine/network/port-publishing/#publishing-ports) on binding to specific IP addresses (e.g., `127.0.0.1:2222:2222`).
If SSH access is only intended for inter-container connections, consider **NOT** forwarding the port to the host machine, and putting the containers in a shared [Docker network](https://docs.docker.com/engine/network/#user-defined-networks).
```yaml title="compose.yaml"
services:
mc:
ports:
- '25565:25565'
- '2222:2222'
```
## Connecting
Connecting should be as simple as running
```bash
ssh anyuser@127.0.0.1 -p 2222
```
and typing in the RCON password.
## Environment variables
| Environment Variable | Usage | Default |
| -------------------- | ------------------------- | ------- |
| `ENABLE_SSH` | Enable remote SSH console | `false` |
## Example
```yaml title="compose.yaml"
services:
mc:
image: itzg/minecraft-server:latest
pull_policy: daily
tty: true
stdin_open: true
ports:
- "25565:25565"
- "2222:2222"
environment:
EULA: "TRUE"
ENABLE_SSH: true
RCON_PASSWORD_FILE: /run/secrets/rcon_pass
volumes:
# attach the relative directory 'data' to the container's /data path
- ./data:/data
secrets:
rcon_pass:
file: ./rcon_password
```

View File

@@ -0,0 +1,90 @@
---
title: With WebSocket
---
With `WEBSOCKET_CONSOLE` set to `true`, logs can be streamed, and commands sent, over a WebSocket connection.
The API is available on `/console`.
## Password
A password must be supplied using the `Sec-WebSocket-Protocol` header. This is done by putting `mc-server-runner-ws-v1` in the first slot, and the password in the second. The password can be set with `RCON_PASSWORD` or `WEBSOCKET_PASSWORD`. The latter overwrites the former. Authentication can be disabled with `WEBSOCKET_DISABLE_AUTHENTICATION`.
??? Example "Examples"
```js title="JavaScript example"
let socket = new WebSocket("http://localhost:80/websocket", ["mc-server-runner-ws-v1", "rcon-password"]);
```
## Allowed origins
A list of comma-separated allowed origins should be supplied with `WEBSOCKET_ALLOWED_ORIGINS`. Origin checking can be disabled with `WEBSOCKET_DISABLE_ORIGIN_CHECK`.
## Listen address
The listen address and port can be set with `WEBSOCKET_ADDRESS` (defaults to `0.0.0.0:80`), but it's recommended to listen on all interfaces when running in Docker.
## Log history
When a connection is established, the last 50 (by default, configurable with `WEBSOCKET_LOG_BUFFER_SIZE`) log lines are sent with a `logHistory` type message.
??? tip "Tip: Remember to forward the WebSocket port on the host"
!!! warning "Security Implications"
By default, publishing ports in Docker binds them to all network interfaces (`0.0.0.0`), making the WebSocket console accessible to any device that can reach your host machine.
Since the WebSocket console grants **full administrative access** to your server, it is critical to use a strong [WebSocket password](#password) or [RCON password](../configuration/server-properties.md/#rcon-password).
If you wish to restrict access to the local machine only, refer to the [Docker documentation](https://docs.docker.com/engine/network/port-publishing/#publishing-ports) on binding to specific IP addresses (e.g., `127.0.0.1:80:80`).
If WebSocket access is only intended for inter-container connections, consider **NOT** forwarding the port to the host machine, and putting the containers in a shared [Docker network](https://docs.docker.com/engine/network/#user-defined-networks).
```yaml title="compose.yaml"
services:
mc:
ports:
- '25565:25565'
- '80:80'
```
## Environment variables
| Environment Variable | Usage | Default |
| ---------------------------------- | ---------------------------------------------------------- | ------------ |
| `WEBSOCKET_CONSOLE` | Allow remote shell over WebSocket | `false` |
| `WEBSOCKET_ADDRESS` | Bind address for WebSocket server | `0.0.0.0:80` |
| `WEBSOCKET_DISABLE_ORIGIN_CHECK` | Disable checking if origin is trusted | `false` |
| `WEBSOCKET_ALLOWED_ORIGINS` | Comma-separated list of trusted origins | ` ` |
| `WEBSOCKET_PASSWORD` | Password will be the same as RCON_PASSWORD if unset | ` ` |
| `WEBSOCKET_DISABLE_AUTHENTICATION` | Disable WebSocket authentication | `false` |
| `WEBSOCKET_LOG_BUFFER_SIZE` | Number of log lines to save and send to connecting clients | `50` |
## API Schema
```ts title="API Schema"
interface StdinMessage {
type: "stdin";
data: string;
}
interface StdoutMessage {
type: "stdout";
data: string;
}
interface StderrMessage {
type: "stderr";
data: string;
}
interface LogHistoryMessage {
type: "logHistory";
lines: string[];
}
interface AuthFailureMessage {
type: "authFailure";
reason: string;
}
// Messages sent from Client -> Server
export type ClientMessage = StdinMessage;
// Messages sent from Server -> Client
export type ServerMessage =
| StdoutMessage
| StderrMessage
| LogHistoryMessage
| AuthFailureMessage;
```

Binary file not shown.

Before

Width:  |  Height:  |  Size: 34 KiB

View File

@@ -0,0 +1,14 @@
# Server Types and Modpack Platforms
Server types can be selected by setting the `TYPE` environment variable to one of the types described in these sections.
The default server type is [the official software provided by Mojang](https://www.minecraft.net/en-us/download/server), which can be explicitly selected by setting `TYPE` to "VANILLA".
**From the sections to the left...**
The **modpack platforms** take a modpack identifier, file, etc and use that to select and download the appropriate version of a mod loader, such as Forge or Fabric, downloading declared mods/plugins, and apply any additional files. The modpack platforms are selected by setting `MODPACK_PLATFORM`; however, for ease of use and backward compatibility, the selection can be set in `TYPE` or `MOD_PLATFORM`.
The individual **server types** allow for selecting the mod loader / server type and specific versions of those.
!!! important
For all the server types, the `VERSION` environment variable is used to declare the Minecraft version itself, such as 1.19.4. Each server type will have specific variables for qualifying their version in addition to the Minecraft version.

View File

@@ -0,0 +1,339 @@
# Auto CurseForge
To manage a CurseForge modpack automatically with upgrade support, pinned or latest version tracking, set `MODPACK_PLATFORM`, `MOD_PLATFORM` or `TYPE` to "AUTO_CURSEFORGE". The appropriate mod loader (Forge / Fabric) version will be automatically installed as declared by the modpack. This mode will also take care of cleaning up unused files installed by previous versions of the modpack, but world data is never auto-removed.
## API Key
!!! warning "CurseForge API key usage"
A CurseForge API key is **required** to use this feature. Go to their [developer console](https://console.curseforge.com/), generate an API key, and set the environment variable `CF_API_KEY`.
When entering your API Key in a docker compose file you will need to escape any `$` character with a second `$`. Refer to [this compose file reference section](https://docs.docker.com/compose/compose-file/compose-file-v3/#variable-substitution) for more information.
Example if your key is `$11$22$33aaaaaaaaaaaaaaaaaaaaaaaaaa`:
```yaml title="compose.yaml"
environment:
CF_API_KEY: '$$11$$22$$33aaaaaaaaaaaaaaaaaaaaaaaaaa'
```
If you use `docker run` you will need to make sure to use single quotes:
```shell
docker run ... -e CF_API_KEY='$11$22$33aaaaaaaaaaaaaaaaaaaaaaaaaa'
```
To avoid exposing the API key, it is highly recommended to use a `.env` file, which is [loaded automatically by docker compose](https://docs.docker.com/compose/environment-variables/set-environment-variables/#substitute-with-an-env-file). You **do not** need to escape `$`'s with a second `$` in the `.env` file **as long as the key is wrapped in single quotes**.
```title=".env"
CF_API_KEY='$11$22$33aaaaaaaaaaaaaaaaaaaaaaaaaa'
```
The variable should to be referenced from the compose file, such as:
```yaml title="compose.yaml"
environment:
CF_API_KEY: ${CF_API_KEY}
```
The .env file should be placed in the same directory as your compose file like so:
```
minecraft-server/
├── .env
├── compose.yaml
├── data/
```
To use the equivalent with `docker run` you need to specify the `.env` file explicitly:
```shell
docker run --env-file=.env itzg/minecraft-server
```
Alternately you can use [docker secrets](https://docs.docker.com/compose/how-tos/use-secrets/) with a `CF_API_KEY_FILE` environment variable:
```yaml title="compose.yaml"
service:
environment:
CF_API_KEY_FILE: /run/secrets/cf_api_key
secrets:
- cf_api_key
secrets:
cf_api_key:
file: cf_api_key.secret
```
!!! note
Be sure to use the appropriate [image tag for the Java version compatible with the modpack](../../versions/java.md).
Most modpacks require a good amount of memory, so it best to set `MEMORY` to at least "4G" since the default is only 1 GB.
## Usage
Use one of the following to specify the modpack to install:
Pass a page URL to the modpack or a specific file with `CF_PAGE_URL` such as the modpack page "https://www.curseforge.com/minecraft/modpacks/all-the-mods-8" or a specific file "https://www.curseforge.com/minecraft/modpacks/all-the-mods-8/files/4248390".
!!! example "Using CF_PAGE_URL"
```yaml title="Using compose.yaml"
environment:
# ...
MODPACK_PLATFORM: AUTO_CURSEFORGE
# allocate from https://console.curseforge.com/ and set in .env file
CF_API_KEY: ${CF_API_KEY}
CF_PAGE_URL: https://www.curseforge.com/minecraft/modpacks/all-the-mods-8
```
```title="Using docker run"
docker run -e CF_API_KEY=${CF_API_KEY} -e TYPE=AUTO_CURSEFORGE -e CF_PAGE_URL=https://www.curseforge.com/minecraft/modpacks/all-the-mods-8
```
Instead of a URL, the modpack slug can be provided as `CF_SLUG`. The slug is the short identifier visible in the URL after "/modpacks/", such as
![cf-slug](../../img/cf-slug.png)
!!! example "Using CF_SLUG"
```yaml title="Using compose.yaml"
environment:
# ...
MODPACK_PLATFORM: AUTO_CURSEFORGE
# allocate from https://console.curseforge.com/ and set in .env file
CF_API_KEY: ${CF_API_KEY}
CF_SLUG: all-the-mods-8
```
```title="Using docker run"
docker run -e CF_API_KEY=${CF_API_KEY} -e TYPE=AUTO_CURSEFORGE -e CF_SLUG=all-the-mods-8
```
### 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
- Set `CF_FILE_ID` to the numerical file ID
- Specify a substring 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:
![cf-file-id](../../img/cf-file-id.png)
The following examples all refer to version 1.0.7 of ATM8:
```yaml
CF_PAGE_URL: https://www.curseforge.com/minecraft/modpacks/all-the-mods-8/files/4248390
```
```yaml
CF_SLUG: all-the-mods-8
CF_FILE_ID: "4248390"
```
```yaml
CF_SLUG: all-the-mods-8
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.
### Custom modloader versions
By default, AUTO_CURSEFORGE will use the exact modloader version declared by the modpack. However, you can override the modloader version by setting the following environment variable:
- `CF_MOD_LOADER_VERSION`: Override the mod loader version (e.g., `43.4.22`)
!!! example "Override mod loader version"
```yaml
environment:
MODPACK_PLATFORM: AUTO_CURSEFORGE
CF_API_KEY: ${CF_API_KEY}
CF_SLUG: all-the-mods-8
CF_MOD_LOADER_VERSION: "43.4.22"
```
```title="Using docker run"
docker run -e CF_MOD_LOADER_VERSION=43.4.22 -e CF_SLUG=my-fabric-pack ...
```
!!! warning "Compatibility"
Using a custom modloader version that differs significantly from what the modpack was designed for may cause compatibility issues. Use this feature carefully and test thoroughly.
## 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.
!!! warning "Download using a browser"
It's important to use a browser to download the files listed for manual download. If your Docker host is running without a graphical interface, then you can use `scp` or similar to transfer the files to it.
!!! example
Assuming Docker compose is being used:
1. Create a directory next to the `compose.yaml` file. The name doesn't matter, but "downloads" is the common convention
2. From the "Mods Need Download" output, visit the download page of each, click on the file download and save that file into the directory created in the previous step
3. Add a host directory mount to the volumes section where the container path **must be** `/downloads`. The snippet below shows how that will look
4. Re-run `docker compose up -d` to apply the changes
```yaml
volumes:
./downloads:/downloads
```
## Unpublished Modpacks
If you wish to use an unpublished modpack zip, set the container path to the file in `CF_MODPACK_ZIP`. Similarly, the container path to a modpack manifest JSON can be passed to `CF_MODPACK_MANIFEST`. In either case, **the modpack slug or page URL must still be provided**.
!!! example
```yaml
services:
mc:
image: itzg/minecraft-server:latest
pull_policy: daily
environment:
EULA: true
MODPACK_PLATFORM: AUTO_CURSEFORGE
# allocate from https://console.curseforge.com/ and set in .env file
CF_API_KEY: ${CF_API_KEY}
CF_MODPACK_MANIFEST: /manifests/manifest.json
CF_SLUG: "custom"
volumes:
- ./manifests:/manifests:ro
```
where an exported manifest file should look like:
```json
{
"minecraft": {
"version": "1.20.4",
"modLoaders": [
{
"id": "fabric-0.15.3",
"primary": true
}
]
},
"manifestType": "minecraftModpack",
"manifestVersion": 1,
"name": "Custom",
"author": "",
"files": [
{
"projectID": 351725,
"fileID": 4973035,
"required": true
},
{
"projectID": 306612,
"fileID": 5010374,
"required": true
}
],
"overrides": "overrides"
}
```
## Exclude client mods
Quite often there are mods that need to be excluded, such as ones that did not properly declare as a client mod via the file's game versions. Similarly, there are some mods that are incorrectly tagged as client only. The following describes some options to exclude/include mods:
Mods can be excluded by passing a comma or space delimited list of **project** slugs or IDs via `CF_EXCLUDE_MODS`. Similarly, there are some mods that are incorrectly tagged as client only. For those, pass the **project** slugs or IDs via `CF_FORCE_INCLUDE_MODS`. These lists will be combined with the content of the exclude/include file, if given. Alternatively, all mods can be excluded by setting `CF_EXCLUDE_ALL_MODS` to `true`
!!! note
`CF_FORCE_INCLUDE_MODS` will not download additional mods.
For additional mods, refer to [the `CURSEFORGE_FILES` variable](../../mods-and-plugins/curseforge-files.md).
A mod's project ID can be obtained from the right hand side of the project page:
![cf-project-id](../../img/cf-project-id.png)
For more complex scenarios, global and per modpack exclusions can be declared in a container-accessible JSON file and referenced with `CF_EXCLUDE_INCLUDE_FILE`. By default, [the file bundled with the image](https://raw.githubusercontent.com/itzg/docker-minecraft-server/master/files/cf-exclude-include.json) will be used, but can be disabled by setting this to an empty string. The schema of this file [is documented here](https://github.com/itzg/mc-image-helper#excludeinclude-file-schema).
If needing to iterate on the options above, set `CF_FORCE_SYNCHRONIZE` to "true" to ensure the exclude/includes are re-evaluated.
!!! important
These options are provided to empower you to get your server up and running quickly. Please help out by reporting an issue with the respective mod project. Ideally mod developers should [use correct registrations for one-sided client mods](https://docs.minecraftforge.net/en/latest/concepts/sides/#writing-one-sided-mods). Understandably, those code changes may be non-trivial, so mod authors can also add "Client" to the game versions when publishing.
!!! tip "Embedded comments"
Comments can be embedded in the list using the `#` character.
```yaml
CF_EXCLUDE_MODS: |
# Exclude client-side mods not published correctly
creative-core
default-options
```
## Excluding Overrides Files
Modpack zip files typically include an `overrides` subdirectory that may contain config files, world data, and extra mod files. All of those files will be extracted into the `/data` path of the container. If any of those files, such as incompatible mods, need to be excluded from extraction, then the `CF_OVERRIDES_EXCLUSIONS` variable can be set with a comma or newline delimited list of ant-style paths ([see below](#ant-style-paths)) to exclude, relative to the overrides (or `/data`) directory.
### Ant-style paths
Ant-style paths can include the following globbing/wildcard symbols:
| Symbol | Behavior |
|--------|---------------------------------------------------------|
| `*` | Matches zero, one, or many characters except a slash |
| `**` | Matches zero, one, or many characters including slashes |
| `?` | Matches one character |
!!! example
The following compose `environment` entries show how to exclude Iris and Sodium mods from the overrides
```yaml
CF_OVERRIDES_EXCLUSIONS: mods/iris*.jar,mods/sodium*.jar
```
or using newline delimiter, which improves maintainability
```yaml
CF_OVERRIDES_EXCLUSIONS: |
mods/iris*.jar
mods/sodium*.jar
```
## World/Level Data
Some modpacks come with world/save data via a worlds file and/or the overrides provided with the modpack. Either approach can be selected to set the `LEVEL` to the resulting saves directory by setting `CF_SET_LEVEL_FROM` to either:
- `WORLD_FILE`
- `OVERRIDES`
## Ignore missing files
Some mods use temporary files from the modpack and delete them when finished. Others will patch themselves and "disable" the original mod jar, such as gregtech. In order to avoid the installer from detecting the absent file(s) and re-installing, those files can be ignored by passing a comma, newline delimited list, or a file globbing pattern to `CF_IGNORE_MISSING_FILES`.
!!! hint
A warning log will indicate what files were found to be missing from the previous installation run, such as
```
Re-installing due to missing files from modpack: [mods/gregtech-2.6.2-beta.jar]
```
!!! example
In a Compose file
```yaml
environment:
CF_IGNORE_MISSING_FILES: |
mods/gregtech-2.6.2-beta.jar
mods/*.jar
```
## Extra options
Other configuration available:
- `CF_PARALLEL_DOWNLOADS` (default is 4): specify how many parallel mod downloads to perform
- `CF_OVERRIDES_SKIP_EXISTING` (default is false): if set, files in the overrides that already exist in the data directory are skipped. **NOTE** world data is always skipped, if present.
- `CF_FORCE_REINSTALL_MODLOADER` (default is false): this can be set to `true` to force the modpack's declared modloader, such as Forge, to be reinstalled. This is useful if some of the modloader's files become corrupted.

View File

@@ -0,0 +1,46 @@
# Manual CurseForge server packs
!!! warning "Deprecated"
This mod platform type is deprecated. Please use [AUTO_CURSEFORGE](auto-curseforge.md) for new deployments.
Enable this server mode by setting `MODPACK_PLATFORM`, `MOD_PLATFORM` or `TYPE` to "CURSEFORGE" along with the following specific variables.
You need to specify a modpack to run, using the `CF_SERVER_MOD` environment
variable. A CurseForge server modpack is available together with its respective
client modpack at <https://www.curseforge.com/minecraft/modpacks> .
Now you can add a `-e CF_SERVER_MOD=name_of_modpack.zip` to your command-line.
```shell
docker run -d --pull=always -v /path/on/host:/data -e TYPE=CURSEFORGE \
-e CF_SERVER_MOD=SkyFactory_4_Server_4.1.0.zip \
-p 25565:25565 -e EULA=TRUE --name mc itzg/minecraft-server
```
If you want to keep the pre-download modpacks separate from your data directory,
then you can attach another volume at a path of your choosing and reference that.
The following example uses `/modpacks` as the container path as the pre-download area:
```shell
docker run -d --pull=always -v /path/on/host:/data \
-v /path/to/modpacks:/modpacks -e TYPE=CURSEFORGE \
-e CF_SERVER_MOD=/modpacks/SkyFactory_4_Server_4.1.0.zip \
-p 25565:25565 -e EULA=TRUE --name mc itzg/minecraft-server
```
### Modpack data directory
By default, CurseForge modpacks are expanded into the sub-directory `/data/FeedTheBeast` and executed from there. (The default location was chosen for legacy reasons, when Curse and FTB were maintained together.)
The directory can be changed by setting `CF_BASE_DIR`, such as `-e CF_BASE_DIR=/data`.
### Buggy start scripts
Some modpacks have buggy or overly complex start scripts. You can avoid using the bundled start script and use this image's standard server-starting logic by adding `-e USE_MODPACK_START_SCRIPT=false`.
### Fixing "unable to launch forgemodloader"
If your server's modpack fails to load with an error [like this](https://support.feed-the-beast.com/t/cant-start-crashlanding-server-unable-to-launch-forgemodloader/6028/2):
unable to launch forgemodloader
then you apply a workaround by adding this to the run invocation:
-e FTB_LEGACYJAVAFIXER=true

View File

@@ -0,0 +1,37 @@
# Feed the Beast
!!! note
Requires one of the Ubuntu with Hotspot images listed in [the Java versions section](../../versions/java.md).
[Feed the Beast application](https://www.feed-the-beast.com/) modpacks are supported by setting `MODPACK_PLATFORM`, `MOD_PLATFORM` or `TYPE` to "FTBA"
!!! note
The "A" at the end of "FTBA" is important. The value "FTB" used to be an alias for "CURSEFORGE".
This mod platform type will automatically take care of downloading and installing the modpack and appropriate version of Forge, so the `VERSION` does not need to be specified.
### Environment Variables:
- `FTB_MODPACK_ID`: **required**, the numerical ID of the modpack to install. The ID can be located by [finding the modpack](https://www.feed-the-beast.com/modpack) and locating the ID in this part of the URL:
```
https://www.feed-the-beast.com/modpacks/23-ftb-infinity-evolved-17
^^
```
- `FTB_MODPACK_VERSION_ID`: optional, the numerical ID of the version to install. If not specified, the latest version will be installed. The "Version ID" can be obtained by hovering over a server file entry and grabbing [this ID in the URL](../../img/ftba-version-id-popup.png).
- `FTB_FORCE_REINSTALL`: if the files become inconsistent, such as when accidentally removing them, the FTB can be forced to re-run by setting this to "true"
### Upgrading
If a specific `FTB_MODPACK_VERSION_ID` was not specified, simply restart the container to pick up the newest modpack version. If using a specific version ID, recreate the container with the new version ID.
### Example
The following example runs the latest version of [FTB Presents Direwolf20 1.12](https://ftb.neptunepowered.org/pack/ftb-presents-direwolf20-1-12/):
``` shell
docker run -d --pull=always -v /path/on/host:/data \
-e EULA=TRUE -e TYPE=FTBA \
-e FTB_MODPACK_ID=31 -p 25565:25565 \
itzg/minecraft-server:java8-multiarch
```

View File

@@ -0,0 +1,54 @@
# Auto-setup GTNH server
[GT New Horizons (GTNH)](https://www.gtnewhorizons.com/) is a Minecraft 1.7.10 modpack maintained and supported by dedicated community members! With over 10 years in development, GTNH offers a carefully balanced and immersive experience to challenge players as they climb through the 15 tiers of technology. The ultimate goal of GTNH is to build the Stargate, an interdimensional teleporter and the symbol for absolute prestige, aptitude, and determination.
As GTNH is a complex modpack with some specifics it has its own `TYPE` to simplify the deployment and update process. To use it set the environment variable `TYPE` to "GTNH".
Configuration options with defaults:
- `GTNH_PACK_VERSION`=latest
- `GTNH_DELETE_BACKUPS`=false
- `SKIP_GTNH_UPDATE_CHECK`=false
## Set Modpack version
As GTNH is a Minecraft 1.7.10 modpack, when using it your minecraft version is set to 1.7.10 by default. The [modpack version](https://www.gtnewhorizons.com/downloads/) can be selected by setting `GTNH_PACK_VERSION` to `latest`, `latest-dev` or any specific version number. `latest` will automatically select the latest full release version available and deploy the server with it (Note: this will also automatically update the server on startup). `latest-dev` does the same but selects the latest version marked as beta or RC (it won't select a full release version even if a newer exist). The third (and recommended) option is setting the server to a specific version like `2.8.1` to manage updates manually.
> To actively prevent an update from happening you can set the environment variable `SKIP_GTNH_UPDATE_CHECK` to true this will prevent any update check from running, but will also prevent the server install from running, so just set it after the initial setup.
## Resource requirements
**Recommended Minimum:**
- 2-4 cpu cores
- 6GB of RAM +0.5GB per extra player (early game)
- 6GB of RAM +1GB per extra player (~UV tier+)
- 20GB+ storage. HDD is feasible, SSD is preferred
For more details regarding the server setup consult the [modpack wiki](https://wiki.gtnewhorizons.com/wiki/Server_Setup).
## Java Version
GTNH supports java 8 and 17+ (java 17+ is always recommended for maximum performance). The server will only start when a supported version of itzg/docker-minecraft-server is used.
For optimal performance choose java25 with GTNH 2.8.0 and later.
## Config backups
During version upgrade, the server will replace all config files to make sure all new features are setup as intended. The old config files are stored in a backup folder in the data directory, for you to use as reference for manual reapplication of your changed settings. Set the environment variable `GTNH_DELETE_BACKUPS` to true to delete all backup folders at startup.
## server.properties defaults
To deliver the intended GTNH by default, when running a GTNH server, the following options are set in `server.properties`. It is recommended to leave them as is, but if you know what you are doing feel free to play around with them.
- `LEVEL_TYPE=rwg`
- `DIFFICULTY=hard`
- `ALLOW_FLIGHT=true`
- `ENABLE_COMMAND_BLOCK=true`
- `MOTD=Greg Tech New Horizon <current-pack-version>`
## Java args
With java 17+ the server starts with `-Dfml.readTimeout=180 @java9args.txt -jar lwjgl3ify-forgePatches.jar`.
With java 8 the server stars with `-XX:+UseStringDeduplication -XX:+UseCompressedOops -XX:+UseCodeCacheFlushing -Dfml.readTimeout=180 -jar forge-1.7.10-10.13.4.1614-1.7.10-universal.jar`

View File

@@ -0,0 +1,110 @@
# Modrinth Modpacks
[Modrinth Modpacks](https://modrinth.com/modpacks) can automatically be installed along with the required mod loader (Forge or Fabric) by setting `MODPACK_PLATFORM`, `MOD_PLATFORM` or `TYPE` to "MODRINTH". Upgrading (and downgrading) takes care of cleaning up old files and upgrading (and downgrading) the mod loader.
## Modpack project
The desired modpack project is specified with the `MODRINTH_MODPACK` environment variable and must be one of:
- The project "slug", which is located in the URL shown here:
![](../../img/modrinth-project-slug.drawio.png)
- The project ID, which is located in the bottom of the left panel, shown here
![](../../img/modrinth-project-id.drawio.png)
- The project page URL, such as <https://modrinth.com/modpack/cobblemon-fabric>. As described below, this can further be the page URL of a modpack's version page.
- A custom URL of a hosted [mrpack file](https://support.modrinth.com/en/articles/8802351-modrinth-modpack-format-mrpack)
- The container path to a local [mrpack file](https://support.modrinth.com/en/articles/8802351-modrinth-modpack-format-mrpack)
## Modpack version
The automatic modpack version resolving can be narrowed in a few ways:
The latest release or beta version, respectively, of the Modrinth modpack is selected when `VERSION` is "LATEST" or "SNAPSHOT". That can be overridden by setting `MODRINTH_MODPACK_VERSION_TYPE` to "release", "beta", or "alpha".
The resolved modpack version can be narrowed by setting `VERSION` to a specific Minecraft version, such as "1.19.2".
The selected version can also be narrowed to a particular mod loader by setting `MODRINTH_LOADER` to either "forge", "fabric", or "quilt".
Instead of auto resolving, a specific version of modpack file can be specified by passing the version's page URL to `MODRINTH_MODPACK`, such as <https://modrinth.com/modpack/cobblemon-fabric/version/1.3.2> or by setting `MODRINTH_VERSION` to the version ID or number located in the Metadata section, as shown here
![](../../img/modrinth-version-id.drawio.png)
## Ignore missing files
Some mods, such as [MCInstance Loader](https://modrinth.com/mod/mcinstance-loader), use temporary files from the modpack and delete them when finished. In order to avoid the installer from detecting the absent file(s) and re-installing, those files can be ignored by passing a comma, newline delimited list or, a file globbing pattern to `MODRINTH_IGNORE_MISSING_FILES`.
!!! example
In a Compose file
```yaml
environment:
MODRINTH_IGNORE_MISSING_FILES: |
config/mcinstanceloader/pack.mcinstance
mods/*.jar
```
## Excluding files
To exclude client mods that are incorrectly declared by the modpack as server-compatible, set `MODRINTH_EXCLUDE_FILES` to a comma or newline delimited list of partial file names to exclude. You may need to set `MODRINTH_FORCE_SYNCHRONIZE` to "true" while iterating on a compatible set of mods to use.
!!! example
In a Compose file:
```yaml
MODRINTH_EXCLUDE_FILES: |
notenoughanimations
lambdynamiclights
euphoriapatcher
```
## Force-include files
To force include client mods, set `MODRINTH_FORCE_INCLUDE_FILES` to a comma or newline delimited list of partial file names. You may need to set `MODRINTH_FORCE_SYNCHRONIZE` to "true" while iterating on a compatible set of mods to use.
!!! example
In a Compose file:
```yaml
MODRINTH_FORCE_INCLUDE_FILES: |
yet-another-config-lib
```
## Default exclude/includes
The image comes with a default set of exclude/includes, maintained [in the repo files area](https://github.com/itzg/docker-minecraft-server/blob/master/files/modrinth-exclude-include.json) and uses the same [JSON schema](https://github.com/itzg/mc-image-helper?tab=readme-ov-file#excludeinclude-file-schema) as Auto CurseForge. Those defaults can be disabled by setting the env var `MODRINTH_DEFAULT_EXCLUDE_INCLUDES` to an empty string.
## Excluding Overrides Files
Modrinth mrpack/zip files may include an `overrides` subdirectory that contains config files, world data, and extra mod files. All of those files will be extracted into the `/data` path of the container. If any of those files, such as incompatible mods, need to be excluded from extraction, then the `MODRINTH_OVERRIDES_EXCLUSIONS` variable can be set with a comma or newline delimited list of ant-style paths ([see below](#ant-style-paths)) to exclude, relative to the overrides (or `/data`) directory.
### Ant-style paths
Ant-style paths can include the following globbing/wildcard symbols:
| Symbol | Behavior |
|--------|---------------------------------------------------------|
| `*` | Matches zero, one, or many characters except a slash |
| `**` | Matches zero, one, or many characters including slashes |
| `?` | Matches one character |
!!! example
The following compose `environment` entries show how to exclude Iris and Sodium mods from the overrides
```yaml
MODRINTH_OVERRIDES_EXCLUSIONS: mods/NekosEnchantedBooks-*.jar,mods/citresewn-*.jar
```
or using newline delimiter, which improves maintainability
```yaml
MODRINTH_OVERRIDES_EXCLUSIONS: |
mods/NekosEnchantedBooks-*.jar
mods/citresewn-*.jar
```

View File

@@ -0,0 +1,65 @@
# Bukkit/Spigot
!!! failure "GetBukkit site no longer supports automated downloads"
The downloads provider <https://getbukkit.org> seems to no longer support automated downloads. As such, it is highly recommended to switch to [Paper](paper.md) instead since it is actively maintained and fully compatible with Bukkit/Spigot plugins.
Run a Bukkit/Spigot server type by setting the environment variable `TYPE` to "BUKKIT" or "SPIGOT".
!!! example
Command-line
```
docker run ... -e TYPE=SPIGOT ...
```
Compose
```yaml
environment:
...
TYPE: SPIGOT
```
If the downloaded server jar is corrupted, set `FORCE_REDOWNLOAD` to "true" to force a re-download during next container startup. After successfully re-downloading, you should remove that or set to "false".
If you are hosting your own copy of Bukkit/Spigot you can override the download URLs with:
- -e BUKKIT_DOWNLOAD_URL=<url>
- -e SPIGOT_DOWNLOAD_URL=<url>
!!! note
Some of the `VERSION` values are not as intuitive as you would think, so make sure to click into the version entry to find the **exact** version needed for the download. For example, "1.8" is not sufficient since their download naming expects `1.8-R0.1-SNAPSHOT-latest` exactly.
## Build from source
You can build spigot from source by setting the environment variable `BUILD_FROM_SOURCE` to "true".
## Alternatives
### Canyon
[Canyon](https://github.com/canyonmodded/canyon) is a fork of CraftBukkit for Minecraft Beta 1.7.3. It includes multiple enhancements whilst also retaining compatibility with old Bukkit plugins and mods as much as possible.
-e VERSION=b1.7.3 -e TYPE=CANYON
!!! important
Only `VERSION=b1.7.3` is supported. Since that version pre-dates the health check mechanism used by this image, that will need to be disabled by setting `DISABLE_HEALTHCHECK=true`.
Canyon is on a temporary hiatus, so by default the final build from GitHub will be used; however, a specific build number can be selected in some instances by setting `CANYON_BUILD`, such as
-e CANYON_BUILD=6
-e CANYON_BUILD=26
### Poseidon
[Poseidon](https://github.com/retromcorg/Project-Poseidon) is a fork of CraftBukkit for Minecraft Beta 1.7.3. It includes multiple enhancements whilst also retaining compatibility with old Bukkit plugins.
-e VERSION=b1.7.3 -e TYPE=CANYON
!!! important
Only `VERSION=b1.7.3` is supported. Since that version pre-dates the health check mechanism used by this image, that will need to be disabled by setting `DISABLE_HEALTHCHECK=true`.
### Uberbukkit
[Uberbukkit](https://github.com/Moresteck/uberbukkit) is a fork of CraftBukkit for Minecraft Beta with Multi version support, supports b1.0 - b1.7.3

View File

@@ -0,0 +1,67 @@
A [Fabric server](https://fabricmc.net/) can be automatically downloaded, upgraded, and run by setting the environment variable TYPE to "FABRIC"
!!! example
Using `docker run` command line
```shell
docker run -d --pull=always -e EULA=TRUE -e TYPE=FABRIC -p 25565:25565 itzg/minecraft-server
```
In a compose file service:
```yaml
environment:
EULA: TRUE
TYPE: FABRIC
```
By default, the container will install the latest [fabric server launcher](https://fabricmc.net/use/server/), using the latest [fabric-loader](https://fabricmc.net/wiki/documentation:fabric_loader) against the minecraft version you have defined with `VERSION` (defaulting to the latest vanilla release of the game).
A specific loader or launcher version other than the latest can be requested using `FABRIC_LOADER_VERSION` and `FABRIC_LAUNCHER_VERSION` respectively, such as:
!!! example "Using launcher and loader versions"
With docker run
```shell
docker run -d ... \
-e TYPE=FABRIC \
-e FABRIC_LAUNCHER_VERSION=0.10.2 \
-e FABRIC_LOADER_VERSION=0.13.1
```
In a compose file service:
```yaml
environment:
EULA: TRUE
TYPE: FABRIC
FABRIC_LAUNCHER_VERSION: 0.10.2
FABRIC_LOADER_VERSION: 0.13.1
```
!!! note
See the [Working with mods and plugins](../../mods-and-plugins/index.md) section to set up Fabric mods and configuration.
## Fabric API
As [mentioned on the Fabric download page](https://fabricmc.net/use/installer/), most mods will require the Fabric API mod to be installed. That can be easily done by utilizing [the Modrinth downloads feature](../../mods-and-plugins/modrinth.md), such as adding this to the `environment` of a compose file service:
```yaml
TYPE: FABRIC
MODRINTH_PROJECTS: |
fabric-api
```
## Alternate launcher
If you wish to use an alternative launcher you can:
- Provide the path to a custom launcher jar available to the container with `FABRIC_LAUNCHER`, relative to `/data` (such as `-e FABRIC_LAUNCHER=fabric-server-custom.jar`)
- Provide the URL to a custom launcher jar with `FABRIC_LAUNCHER_URL` (such as `-e FABRIC_LAUNCHER_URL=http://HOST/fabric-server-custom.jar`)
## Force re-install
If the Fabric launcher jar becomes corrupted you can temporarily set FABRIC_FORCE_REINSTALL to "true" to have it re-installed on next startup.

View File

@@ -0,0 +1,90 @@
A [Forge server](http://www.minecraftforge.net/) can be automatically downloaded, upgraded, and run by setting the environment variable `TYPE` to "FORGE".
!!! note "A note from the installer"
> Please do not automate the download and installation of Forge.
Our efforts are supported by ads from the download page.
If you MUST automate this, please consider supporting the project through <https://www.patreon.com/LexManos/>
Since my project also relies on donations, please pass it along and consider contributing to the Patreon above.
!!! example
```shell
docker run -e TYPE=FORGE ...
```
or in a compose file
```yaml
environment:
TYPE: FORGE
```
The overall version is specified by `VERSION`, [as described in the section above](../../versions/minecraft.md) and provides the same benefits of upgrading as new versions are released. By default, the recommended version of Forge for that Minecraft version will be selected. The latest version can be selected instead by setting the environment variable `FORGE_VERSION` to "latest". You can also choose a specific Forge version by setting `FORGE_VERSION` with that version, such as "14.23.5.2854".
!!! example
```shell
docker run -e TYPE=FORGE -e VERSION=1.12.2 -e FORGE_VERSION=14.23.5.2854 ...
```
or in a compose file
```yaml
environment:
TYPE: FORGE
VERSION: "1.12.2"
FORGE_VERSION: "14.23.5.2854"
```
To use a pre-downloaded Forge installer, place it in a location mounted into the container and specify the container path with `FORGE_INSTALLER`. To download a Forge installer from a custom location, such as your own file repository, specify the URL with `FORGE_INSTALLER_URL`.
In both of the cases above, there is no need for the `VERSION` or `FORGE_VERSION` variables.
!!! note
If an error occurred while installing Forge, it might be possible to resolve by temporarily setting `FORGE_FORCE_REINSTALL` to "true". Be sure to remove that variable after successfully starting the server.
URLs configurable via environment variables:
- `FORGE_PROMOTIONS_URL`: default is https://files.minecraftforge.net/net/minecraftforge/forge/promotions_slim.json
- `FORGE_MAVEN_REPO_URL`: default is https://maven.minecraftforge.net
## Alternatives
### NeoForge
Support for [NeoForge](https://neoforged.net/) is also provided. A NeoForge server can be automatically managed by setting `TYPE` to "NEOFORGE". `VERSION` specifies the Minecraft version and `NEOFORGE_VERSION` can be set to select a specific version, "latest", or "beta". By default, the latest, non-beta NeoForge version available for the requested Minecraft version will be used.
!!! example
```shell
docker run -e TYPE=NEOFORGE -e VERSION=1.20.1 -e NEOFORGE_VERSION=47.1.79 ...
```
or in a compose file
```yaml
environment:
TYPE: NEOFORGE
VERSION: "1.20.4"
NEOFORGE_VERSION: "beta"
```
### Cleanroom
[Cleanroom](https://github.com/CleanroomMC/Cleanroom) isn't fully automated, but can be utilized by...
1. choose the desired release at https://github.com/CleanroomMC/Cleanroom/releases
2. grab the link to the `*-installer.jar` file in that release
3. with `TYPE` set to "FORGE", set `FORGE_INSTALLER_URL` to the installer jar's link
!!! example
In docker compose `environment`
```yaml
TYPE: FORGE
FORGE_INSTALLER_URL: https://github.com/CleanroomMC/Cleanroom/releases/download/0.2.4-alpha/cleanroom-0.2.4-alpha-installer.jar
```
[Full example](https://github.com/itzg/docker-minecraft-server/tree/master/examples/cleanroom)

View File

@@ -0,0 +1,85 @@
### Magma
A [Magma](https://magmafoundation.org/) server, which is a combination of Forge and PaperMC, can be used with
-e TYPE=MAGMA
!!! note
The Magma project has been terminated ([original link died](https://git.magmafoundation.org/magmafoundation/magma-1-20-x/-/commit/4e7abe37403c47d09b74b77bcfc26a19b18f5891), [alternate statement on their discord](https://discord.com/channels/612695539729039411/647287352833605662/1174412642962649198) ). Please use Magma Maintained for 1.12.2, 1.18.2 and 1.19.3, or Ketting for 1.20.1+.
There are limited base versions supported, so you will also need to set `VERSION`, such as "1.12.2", "1.16.5", etc.
### Magma Maintained
A [Magma Maintained](https://github.com/magmamaintained/) server, which is a alternative project of Magma, can be used with
-e TYPE=MAGMA_MAINTAINED
!!! note
There are limited base versions supported, so you will also need to set `VERSION`, such as "1.12.2", "1.18.2", "1.19.3", or "1.20.1".
In addition, `FORGE_VERSION` and `MAGMA_MAINTAINED_TAG` must be specified. You can find the supported `FORGE_VERSION` and `MAGMA_MAINTAINED_TAG` in a releases page for each repositories.
### Ketting
A [Ketting](https://github.com/kettingpowered/Ketting-1-20-x) server, which is an alternative project of Magma 1.20.1+, can be used with
-e TYPE=KETTING
There are limited base versions supported, so you will also need to set `VERSION`, such as "1.20.1" or later.
`FORGE_VERSION` and `KETTING_VERSION` may be specified; however, they will be defaulted by the [Ketting launcher](https://github.com/kettingpowered/kettinglauncher) otherwise.
Available Ketting Versions may be found at [https://reposilite.c0d3m4513r.com/#/Ketting-Server-Releases/org/kettingpowered/server/forge](https://reposilite.c0d3m4513r.com/#/Ketting-Server-Releases/org/kettingpowered/server/forge).
The Version structure is `MinecraftVersion-ForgeVersion-KettingVersion` (e.g. `1.20.1-47.2.20-0.1.4` is for Minecraft `1.20.1`, Forge `47.2.20` and Ketting `0.1.4`).
### Mohist
A [Mohist](https://github.com/MohistMC/Mohist) server can be used with
-e TYPE=MOHIST
!!! note
There are limited base versions supported, so you will also need to set `VERSION`, such as "1.12.2"
By default the latest build will be used; however, a specific build number can be selected by setting `MOHIST_BUILD`, such as
-e VERSION=1.16.5 -e MOHIST_BUILD=374
### Youer
A [Youer](https://github.com/MohistMC/Youer) server can be used with
-e TYPE=YOUER
!!! note
There are limited base versions supported, so you will also need to set `VERSION`, such as "1.12.2"
By default the latest build will be used; however, a specific build number can be selected by setting `MOHIST_BUILD`, such as
-e VERSION=1.16.5 -e MOHIST_BUILD=374
### Banner
A [Banner](https://github.com/MohistMC/Banner) server can be used with
-e TYPE=BANNER
!!! note
There are limited base versions supported, so you will also need to set `VERSION`, such as "1.12.2"
By default the latest build will be used; however, a specific build number can be selected by setting `MOHIST_BUILD`, such as
-e VERSION=1.16.5 -e MOHIST_BUILD=374
### Arclight
A [Arclight](https://arclight.izzel.io/) type server can be used with
-e TYPE=ARCLIGHT
-e ARCLIGHT_TYPE=NEOFORGE,FORGE,FABRIC

View File

@@ -0,0 +1,76 @@
## SpongeVanilla
Enable SpongeVanilla server mode by adding a `-e TYPE=SPONGEVANILLA` to your command-line.
By default the container will run the latest `STABLE` version.
If you want to run a specific version, you can add `-e SPONGEVERSION=1.11.2-6.1.0-BETA-19` to your command-line.
Beware that current [Sponge](https://www.spongepowered.org) `STABLE` versions for Minecraft 1.12 require using [the Java 8 tag](../../versions/java.md):
``` shell
docker run -d --pull=always -v /path/on/host:/data -e TYPE=SPONGEVANILLA \
-p 25565:25565 -e EULA=TRUE --name mc itzg/minecraft-server:java8-multiarch
```
You can also choose to use the `EXPERIMENTAL` branch.
Just change it with `SPONGEBRANCH`, such as:
``` shell
$ docker run -d --pull=always -v /path/on/host:/data ... \
-e TYPE=SPONGEVANILLA -e SPONGEBRANCH=EXPERIMENTAL ...
```
## Limbo
A [Limbo](https://github.com/LOOHP/Limbo) server can be run by setting `TYPE` to `LIMBO`.
Configuration options with defaults:
- `LIMBO_BUILD`=LATEST
The `VERSION` will be ignored so locate the appropriate value from [here](https://ci.loohpjames.com/job/Limbo/) to match the version expected by clients.
- `FORCE_REDOWNLOAD`=false
- `LIMBO_SCHEMA_FILENAME`=default.schem
- `LEVEL`="Default;${LIMBO_SCHEMA_NAME}"
!!! note
Instead of using format codes in the MOTD, Limbo requires [JSON chat content](https://minecraft.wiki/w/Raw_JSON_text_format#Java_Edition). If a plain string is provided, which is the default, then it gets converted into the required JSON structure.
## NanoLimbo
A [NanoLimbo](https://github.com/BoomEaro/NanoLimbo) server can be run by setting `TYPE` to `NANOLIMBO`.
Note: it is a fork of the original [NanoLimbo](https://github.com/Nan1t/NanoLimbo) made by Nan1t
An alternate Limbo server
## Crucible
A [Crucible](https://github.com/CrucibleMC/Crucible) server can be run by setting `TYPE` to `CRUCIBLE`.
Configuration options with defaults:
- `CRUCIBLE_RELEASE`=latest
Crucible is only available for 1.7.10, so be sure to set `VERSION=1.7.10`.
## Custom
To use a custom server jar or class files, set `TYPE` to "CUSTOM" and continue with one of the following options:
The custom jar to be used can be set with `CUSTOM_SERVER` as either a URL to download or the path to a file within the container.
Alternatively, the final `-jar` invocation can be replaced by setting `CUSTOM_JAR_EXEC` to "`-cp <classpath> <classname>`" or "`-jar <jar file>`" form, such as
```
-cp worldedit.jar:Carpet-Server.jar net.minecraft.server.MinecraftServer
```
!!! note
When using `docker run` make sure to quote the entire value since it has spaces in it, such as
-e CUSTOM_JAR_EXEC="-cp worldedit.jar:Carpet-Server.jar net.minecraft.server.MinecraftServer"

View File

@@ -0,0 +1,132 @@
A [PaperMC server](https://papermc.io/) can be automatically downloaded, upgraded, and run by setting the environment variable TYPE to "PAPER".
By default, the container will find and download the latest build for the `VERSION` chosen. If `VERSION` is not specified, then the latest Minecraft version released by PaperMC is selected. Along with a specific `VERSION`, a specific Paper build can be selected by setting the environment variable `PAPER_BUILD`.
To allow for the selection of experimental builds, set `PAPER_CHANNEL` to "experimental", otherwise only release/default channel builds are selected.
!!! example
Using `docker run` command line
```shell
docker run ... -e TYPE=PAPER ...
docker run ... -e TYPE=PAPER -e VERSION=1.20.6 ...
docker run ... -e TYPE=PAPER -e VERSION=1.20.6 -e PAPER_BUILD=140 ...
docker run ... -e TYPE=PAPER -e PAPER_CHANNEL=experimental ...
```
Using a compose file:
```yaml
environment:
TYPE: PAPER
```
```yaml
environment:
TYPE: PAPER
VERSION: 1.20.6
PAPER_BUILD: 140
```
```yaml
environment:
TYPE: PAPER
PAPER_CHANNEL: experimental
```
!!! tip
If you see the following error, it likely means you need to set the env var `PAPER_CHANNEL` to "experimental"
```
No build found for version 1.21 with channel 'default'
```
If you are hosting your own copy of Paper you can override the download URL with `PAPER_DOWNLOAD_URL=<url>`.
If you have attached a host directory to the `/data` volume, then you can install plugins via the `plugins` subdirectory. You can also [attach a `/plugins` volume](../../mods-and-plugins/index.md#optional-plugins-mods-and-config-attach-points). If you add plugins while the container is running, you'll need to restart it to pick those up.
[You can also auto-download plugins using `SPIGET_RESOURCES`.](../../mods-and-plugins/spiget.md)
## Alternatives
### Pufferfish
A [Pufferfish](https://github.com/pufferfish-gg/Pufferfish) server, which is "a highly optimized Paper fork designed for large servers requiring both maximum performance, stability, and "enterprise" features."
-e TYPE=PUFFERFISH
!!! note
The `VERSION` variable is used to select branch latest, 1.18, or 1.17. Use PUFFERFISH_BUILD to really select the SERVER VERSION number.
Extra variables:
- `PUFFERFISH_BUILD=lastSuccessfulBuild` : set a specific Pufferfish build to use. Example: selecting build 47 => 1.18.1, or build 50 => 1.18.2 etc
- `FORCE_REDOWNLOAD=false` : set to true to force the located server jar to be re-downloaded
- `USE_FLARE_FLAGS=false` : set to true to add appropriate flags for the built-in [Flare](https://blog.airplane.gg/flare) profiler
### Purpur
A [Purpur](https://purpurmc.org/) server, which is "a drop-in replacement for Paper servers designed for configurability and new, fun, exciting gameplay features."
-e TYPE=PURPUR
!!! note
The `VERSION` variable is used to lookup a build of Purpur to download
Extra variables:
- `PURPUR_BUILD=LATEST` : set a specific Purpur build to use
- `FORCE_REDOWNLOAD=false` : set to true to force the located server jar to be re-downloaded
- `USE_FLARE_FLAGS=false` : set to true to add appropriate flags for the built-in [Flare](https://blog.airplane.gg/flare) profiler
- `PURPUR_DOWNLOAD_URL=<url>` : set URL to download Purpur from custom URL.
### Leaf
A [Leaf server](https://www.leafmc.one/) is a Paper fork focused on performance improvements and low-level optimizations for smoother gameplay.
To use a Leaf server, set the environment variable `TYPE` to `"LEAF"`.
-e TYPE=LEAF
!!! note
The `VERSION` variable is used to select the Minecraft version to run.
To specify a particular Leaf build, use `LEAF_BUILD`.
By default the latest build will be used; however, a specific build number can be selected by setting `LEAF_BUILD`, such as
-e VERSION=1.21.4 -e LEAF_BUILD=441
### Folia
A [Folia server](https://papermc.io/software/folia) can be used by setting the environment variable `TYPE` to "FOLIA".
By default, the container will run the latest experimental build of [Folia server](https://papermc.io/downloads), but you can also choose to run a specific build with `-e FOLIABUILD=26`. The release channel can be changed with the variable `FOLIA_CHANNEL`; however, only experimental builds are available at this time.
!!! example
Using `docker run`
```shell
docker run -d --pull=always \
-v /path/on/host:/data -e TYPE=FOLIA \
-p 25565:25565 -e EULA=TRUE --name mc itzg/minecraft-server
```
If you are hosting your own copy of Folia you can override the download URL with `FOLIA_DOWNLOAD_URL=<url>`.
If you have attached a host directory to the `/data` volume, then you can install plugins via the `plugins` subdirectory. You can also [attach a `/plugins` volume](../../mods-and-plugins/index.md#optional-plugins-mods-and-config-attach-points). If you add plugins while the container is running, you'll need to restart it to pick those up.
[You can also auto-download plugins using `SPIGET_RESOURCES`.](../../mods-and-plugins/spiget.md)
!!! note
The Folia type inherits from the Paper type. Paper's variables will override the Folia ones.
## Extra config
- `SKIP_DOWNLOAD_DEFAULTS`: when set to "true" startup will entirely skip checking for default Paper/Bukkit/Spigot config files to download

View File

@@ -0,0 +1,27 @@
Enable [Quilt server](https://quiltmc.org/) mode by adding a `-e TYPE=QUILT` to your command-line.
```shell
docker run -d --pull=always \
-v /path/on/host:/data -e TYPE=QUILT \
-p 25565:25565 -e EULA=TRUE --name mc itzg/minecraft-server
```
By default, the container will install the latest [quilt server launcher](https://quiltmc.org/install/server/), using the latest [quilt-installer](https://github.com/QuiltMC/quilt-installer) against the minecraft version you have defined with `VERSION` (defaulting to the latest vanilla release of the game).
A specific loader or installer version other than the latest can be requested using `QUILT_LOADER_VERSION` and `QUILT_INSTALLER_VERSION` respectively, such as:
```shell
docker run -d --pull=always \
-v /path/on/host:/data ... -e TYPE=QUILT \
-e QUILT_LOADER_VERSION=0.16.0 \
-e QUILT_INSTALLER_VERSION=0.4.1
```
!!! note
If you wish to use an alternative launcher you can:
- Provide the path to a custom launcher jar available to the container with `QUILT_LAUNCHER`, relative to `/data` (such as `-e QUILT_LAUNCHER=quilt-server-custom.jar`)
- Provide the URL to a custom launcher jar with `QUILT_LAUNCHER_URL` (such as `-e QUILT_LAUNCHER_URL=http://HOST/quilt-server-custom.jar`)
See the [Working with mods and plugins](../../mods-and-plugins/index.md) section to set up Quilt mods and configuration.

Some files were not shown because too many files have changed in this diff Show More