minecraft-server/docker-compose.yml
s8n-ru 0dad38e02e Initial commit: racked.ru Minecraft server config snapshot
Captures live config state of nullstone Purpur 1.21.11 server:
- docker-compose.yml (itzg/minecraft-server image, MODRINTH_PROJECTS + PLUGINS lists)
- All plugin configs under live-server/plugins/ (no DBs, no jars, no world data)
- Server core: bukkit.yml, spigot.yml, purpur.yml, paper-global.yml, paper-world-defaults.yml, server.properties

Excluded via .gitignore:
- World data (world/, world_nether/, world_the_end/, auth_limbo/)
- Sensitive: AuthMe DB (password hashes), Lands DB, CoreProtect DB, Essentials userdata
- Jars (auto-fetched), logs, caches, .paper-remapped
2026-04-30 18:33:38 +01:00

91 lines
2.7 KiB
YAML

services:
mc:
image: itzg/minecraft-server:latest
container_name: minecraft-mc
environment:
EULA: "TRUE"
# TYPE=CUSTOM bypasses itzg's auto-loader detection; honors MODRINTH_LOADER override
TYPE: CUSTOM
CUSTOM_SERVER: "https://api.purpurmc.org/v2/purpur/1.21.11/latest/download"
VERSION: "1.21.11"
MEMORY_SIZE: "16G"
JVM_OPTS: "-Xms8192M -Xmx16384M"
DIFFICULTY: hard
GAMEMODE: survival
HARDCORE: "false"
MAX_PLAYERS: "69"
VIEW_DISTANCE: 20
SIMULATION_DISTANCE: 10
ONLINE_MODE: "false"
SPAWN_PROTECTION: 0
MOTD: "racked.ru — experience the game the way it should have always been"
USE_AIKAR_FLAGS: "true"
MAX_TICK_TIME: "-1"
ENABLE_RCON: "true"
RCON_PASSWORD: "*redacted*"
TZ: "Europe/London"
ENABLE_ROLLING_LOGS: "true"
UID: "1000"
GID: "1000"
# Modrinth auto-DL — TYPE=CUSTOM lets MODRINTH_LOADER=paper actually work
MODRINTH_PROJECTS: |
luckperms
placeholderapi
fastasyncworldedit
simple-voice-chat
minimotd
skinsrestorer
vaultunlocked
proantitab
voidworldgenerator
homestead-plugin
# EssentialsX + spark not on Modrinth as paper jars — direct GH/CI URLs
PLUGINS: |
https://github.com/EssentialsX/Essentials/releases/download/2.21.2/EssentialsX-2.21.2.jar
https://ci.lucko.me/job/spark/lastSuccessfulBuild/artifact/spark-bukkit/build/libs/spark-1.10.172-bukkit.jar
https://github.com/HaHaWTH/AuthMeReReloaded/releases/download/b49/AuthMe-5.6.0-FORK-Universal.jar
https://github.com/dmulloy2/ProtocolLib/releases/download/dev-build/ProtocolLib.jar
https://github.com/VoidemLIVE/Help-Command-Plugin/releases/download/v2.9.2/HelpCommand-2.9.2.jar
https://cdn.modrinth.com/data/Lu3KuzdV/versions/HD2IvrxS/CoreProtect-CE-23.1.jar
https://cdn.modrinth.com/data/gG7VFbG0/versions/uWACk3HR/TAB%20v6.0.1.jar
MODRINTH_DOWNLOAD_DEPENDENCIES: none
MODRINTH_PROJECTS_DEFAULT_VERSION_TYPE: release
MODRINTH_LOADER: paper
SPIGET_RESOURCES: ""
REMOVE_OLD_MODS: "true"
REMOVE_OLD_MODS_INCLUDE: "*.jar"
REMOVE_OLD_MODS_EXCLUDE: "RackedLimbo*.jar"
volumes:
- /opt/docker/minecraft:/data
ports:
- "25565:25565/tcp"
- "25575:25575/tcp"
networks:
- proxy
restart: unless-stopped
healthcheck:
test: ["CMD", "mc-health"]
interval: 30s
timeout: 10s
retries: 3
start_period: 240s
deploy:
resources:
limits:
memory: 18G
cpus: '6'
reservations:
memory: 8G
labels:
- "traefik.enable=false"
networks:
proxy:
external: true