-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdocker-compose.yml
175 lines (151 loc) · 5.82 KB
/
docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
version: "3.8"
services:
minecraft:
# cmd: docker-compose exec minecraft rcon-cli
image: itzg/minecraft-server
restart: unless-stopped
tty: true
stdin_open: true
environment:
VERSION: "1.19.3"
SERVER_NAME: "Not This Shit"
MOTD: "Ah shit, here we go again"
# MAX_BUILD_HEIGHT: 256
VIEW_DISTANCE: 16
SIMULATION_DISTANCE: 6
MAX_PLAYERS: 69
# MAX_WORLD_SIZE: 10000
ANNOUNCE_PLAYER_ACHIEVEMENTS: "TRUE"
FORCE_GAMEMODE: "TRUE"
SPAWN_PROTECTION: 0
# https://github.com/itzg/docker-minecraft-server#whitelist-players=
# WHITELIST_FILE: /extra/whitelist.json
ENABLE_WHITELIST: "TRUE"
ENFORCE_WHITELIST: "TRUE"
WHITELIST: "MeerBiene2,mar1juhanna,Huskydog9988"
DIFFICULTY: hard
ONLINE_MODE: "TRUE"
OPS: "Huskydog9988,MeerBiene2"
OVERRIDE_OPS: "TRUE"
ICON: https://i.kym-cdn.com/entries/icons/mobile/000/029/223/cover2.jpg
OVERRIDE_ICON: "TRUE"
# 247 = dynmap
# 8631 = coreprotect
SPIGET_RESOURCES: 81534,60623,27448,19254
MODS_FILE: /extras/plugins.txt
REMOVE_OLD_MODS: "TRUE"
DATAPACKS: /datapacks
REMOVE_OLD_DATAPACKS: "TRUE"
# resource pack for Incendium
# RESOURCE_PACK: https://www.planetminecraft.com/data-pack/incendium-nether-expansion/download/file/15458331/
REMOVE_OLD_MODS_EXCLUDE: "sound-physics-remastered"
MEMORY: 3G
MAX_MEMORY: 6G
EXEC_DIRECTLY: true
USE_SIMD_FLAGS: true
# https://github.com/etil2jz/etil-minecraft-flags
JVM_OPTS: "-XX:+UseG1GC -XX:+ParallelRefProcEnabled -XX:MaxGCPauseMillis=200 -XX:+UnlockExperimentalVMOptions -XX:+UnlockDiagnosticVMOptions -XX:+DisableExplicitGC -XX:+AlwaysPreTouch -XX:G1NewSizePercent=30 -XX:G1MaxNewSizePercent=40 -XX:G1HeapRegionSize=8M -XX:G1ReservePercent=20 -XX:G1HeapWastePercent=5 -XX:G1MixedGCCountTarget=4 -XX:InitiatingHeapOccupancyPercent=15 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:SurvivorRatio=32 -XX:+PerfDisableSharedMem -XX:MaxTenuringThreshold=1 -XX:-UseBiasedLocking -XX:UseAVX=3 -XX:+UseStringDeduplication -XX:+UseFastUnorderedTimeStamps -XX:+UseAES -XX:+UseAESIntrinsics -XX:UseSSE=4 -XX:+UseFMA -XX:AllocatePrefetchStyle=1 -XX:+UseLoopPredicate -XX:+RangeCheckElimination -XX:+EliminateLocks -XX:+DoEscapeAnalysis -XX:+UseCodeCacheFlushing -XX:+SegmentedCodeCache -XX:+UseFastJNIAccessors -XX:+OptimizeStringConcat -XX:+UseCompressedOops -XX:+UseThreadPriorities -XX:+OmitStackTraceInFastThrow -XX:+TrustFinalNonStaticFields -XX:ThreadPriorityPolicy=1 -XX:+UseInlineCaches -XX:+RewriteBytecodes -XX:+RewriteFrequentPairs -XX:+UseNUMA -XX:-DontCompileHugeMethods -XX:+UseFPUForSpilling -XX:+UseFastStosb -XX:+UseNewLongLShift -XX:+UseVectorCmov -XX:+UseXMMForArrayCopy -XX:+UseXmmI2D -XX:+UseXmmI2F -XX:+UseXmmLoadAndClearUpper -XX:+UseXmmRegToRegMoveAll -Dfile.encoding=UTF-8 -Xlog:async -Djava.security.egd=file:/dev/urandom --add-modules=jdk.incubator.vector"
TZ: America/New_York
ENABLE_ROLLING_LOGS: "TRUE"
USE_AIKAR_FLAGS: "TRUE"
VANILLATWEAKS_SHARECODE: p70HvM
COPY_CONFIG_DEST: /data
# enable env variable replacement
REPLACE_ENV_VARIABLES: "TRUE"
REPLACE_ENV_DURING_SYNC: "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: "db"
CFG_DB_PORT: "3306"
CFG_DB_NAME: "dynmap"
CFG_DB_USER: "dynmap"
# found in env file
# CFG_DB_PASSWORD: ""
MODRINTH_PROJECTS: sound-physics-remastered,coreprotect
# TYPE: PAPER
# lets try pufferfish - nope only works till 1.18.2
# TYPE: PUFFERFISH
# lets try purpur - https://purpurmc.org/
# nope paper better
TYPE: PAPER
EULA: "TRUE"
SYNC_SKIP_NEWER_IN_DESTINATION: "FALSE"
# enforce-secure-profile
ENFORECE-SECURE-PROFILE: "FALSE"
ports:
# Java
- "25565:25565"
# Voice Chat
- "24454:24454/udp"
# dynmap
- "8123:8123"
# bedrock
- "19132:19132/udp"
volumes:
# main volume for mc data
- "./mc-data:/data"
# extras
- "./extras:/extras"
# config
- "./config:/config"
# datapacks
- "./datapacks:/datapacks"
- "./data:/data"
networks:
- web
- database
depends_on:
- db
env_file:
- .mariadb.env
labels:
- "traefik.enable=true"
- "traefik.http.routers.minecraft.entrypoints=https"
- "traefik.http.routers.minecraft.tls=true"
- "traefik.http.routers.minecraft.tls.certresolver=le"
- "traefik.http.routers.minecraft.rule=Host(`dynmap.kim.stlf.me`)"
- "traefik.http.services.minecraft.loadbalancer.server.port=8123"
- "traefik.docker.network=web"
# - "traefik.port=8080"
# - "traefik.protocol=http"
backups:
image: itzg/mc-backup
restart: always
environment:
BACKUP_INTERVAL: "8h"
PAUSE_IF_NO_PLAYERS: "FALSE"
PRUNE_BACKUPS_DAYS: "7"
volumes:
# mount the same volume used by server, but read-only
- ./mc-data:/data:ro
# use a host attached directory so that it in turn can be backed up
# to external/cloud storage
- ./mc-backups:/backups
# share network namespace with server to simplify rcon access
network_mode: "service:minecraft"
depends_on:
- minecraft
db:
image: mariadb:10
restart: always
environment:
MARIADB_ROOT_PASSWORD: example
MARIADB_DATABASE: dynmap
MARIADB_USER: dynmap
MARIADB_PASSWORD: example
MARIADB_AUTO_UPGRADE: "TRUE"
volumes:
- mariadata:/var/lib/mysql
env_file:
- .mariadb.env
networks:
- database
volumes:
mcdata:
mariadata:
networks:
database:
web:
external: true
name: web