Files
minecraft_server/compose.yml
T
Kappeh fa74a9a1c0
Deploy / Deploy (push) Successful in 2m15s
Add carbon chat
2026-09-09 18:39:06 +01:00

473 lines
12 KiB
YAML
Executable File

services:
velocity:
image: itzg/mc-proxy:java25-2026.9.0
user: 2015:2015 # minecraft_server:minecraft_server
restart: unless-stopped
depends_on:
init:
condition: service_completed_successfully
restart: true
luckperms:
condition: service_healthy
restart: true
fabric:
condition: service_healthy
restart: true
paper:
condition: service_healthy
restart: true
secrets:
- rcon_password
- forwarding_secret
- dclink_token
- luckperms_password
networks:
minecraft_server_network:
ipv4_address: "10.100.1.3"
ports:
- ${VELOCITY_PORT}:25565
volumes:
- velocity_data:/server:rw
- ./velocity/config:/config:ro
environment:
TYPE: VELOCITY
VELOCITY_VERSION: "4.1.1"
SERVER_NAME: Illegal Crime
MINECRAFT_VERSION: "1.21.11"
INIT_MEMORY: 512m
MAX_MEMORY: 1G
REPLACE_ENV_VARIABLES: true
ENV_VARIABLE_PREFIX: CFG_
ENABLE_RCON: true
RCON_PORT: 25575
RCON_PASSWORD_FILE: /run/secrets/rcon_password
CFG_RCON_PASSWORD_FILE: /run/secrets/rcon_password
CFG_DCLINK_GUILD: ${DCLINK_GUILD}
CFG_DCLINK_CHANNEL: ${DCLINK_CHANNEL}
CFG_DCLINK_ROLE: ${DCLINK_ROLE}
CFG_DCLINK_TOKEN_FILE: /run/secrets/dclink_token
CFG_LUCKPERMS_PASSWORD_FILE: /run/secrets/luckperms_password
PLUGINS: |
https://github.com/dbkynd-minecraft/VelocityPlayerList/releases/download/v1.0/PlayerList-1.0.jar
https://github.com/MiniPlaceholders/LuckPerms-Expansion/releases/download/2.1.0/LuckPerms-Expansion-2.1.0.jar
MODRINTH_PROJECTS: |
dclink:czEQjfwR
carbon:yGY2bbis
luckperms:tamnmXad
miniplaceholders:Kpbing8i
signedvelocity:OxMy0xf6
velocitab:aWnzUwbr
labels:
diun.enable: "true"
diun.watch_repo: "true"
diun.include_tags: "stable"
bluemap:
image: ghcr.io/bluemap-minecraft/bluemap:v5.20
user: 2015:2015 # minecraft_server:minecraft_server
restart: unless-stopped
depends_on:
init:
condition: service_completed_successfully
restart: true
fabric:
condition: service_healthy
restart: true
paper:
condition: service_healthy
restart: true
command: -g -w
networks:
minecraft_server_network:
ipv4_address: "10.100.1.6"
ports:
- ${BLUEMAP_PORT}:8100
volumes:
- bluemap_data:/app/data:rw
- bluemap_web:/app/web:rw
- bluemap_maps:/app/web/maps:ro
- ./bluemap/config:/app/config:ro
labels:
diun.enable: "true"
diun.watch_repo: "true"
diun.include_tags: "latest"
paper:
image: itzg/minecraft-server:2026.9.0-java25
restart: unless-stopped
depends_on:
init:
condition: service_completed_successfully
restart: true
luckperms:
condition: service_healthy
restart: true
healthcheck:
test: mc-health
start_period: 5m
interval: 5s
retries: 20
secrets:
- rcon_password
- forwarding_secret
- luckperms_password
networks:
minecraft_server_network:
ipv4_address: "10.100.1.4"
volumes:
- paper_data:/data:rw
- schematics:/data/plugins/WorldEdit/schematics:rw
- bluemap_maps:/data/bluemap/web/maps:rw
- ./paper/config:/config:ro
- ./paper/plugins:/plugins:ro
- ./paper/data/bukkit.yml:/data/bukkit.yml:ro
- ./paper/data/commands.yml:/data/commands.yml:ro
- ./paper/data/spigot.yml:/data/spigot.yml:ro
environment:
UID: 2015 # minecraft_server
GID: 2015 # minecraft_server
EULA: true
TYPE: PAPER
SERVER_NAME: Illegal Crime Paper
MOTD: Best Redstone Server
VERSION: "1.21.11"
INIT_MEMORY: 512m
MAX_MEMORY: 6G
ENABLE_AUTOPAUSE: true
MAX_TICK_TIME: -1
JVM_DD_OPTS: "disable.watchdog:true"
ENFORCE_SECURE_PROFILE: false
SNOOPER_ENABLED: false
ENABLE_QUERY: false
BROADCAST_CONSOLE_TO_OPS: false
BROADCAST_RCON_TO_OPS: false
ONLINE_MODE: false
OP_PERMISSION_LEVEL: 2
MAX_PLAYERS: 50
DIFFICULTY: easy
LEVEL: survival
MODE: creative
LEVEL_TYPE: minecraft:normal
ENABLE_COMMAND_BLOCK: true
GENERATE_STRUCTURES: false
SPAWN_ANIMALS: false
SPAWN_MONSTERS: false
SPAWN_NPCS: false
SPAWN_PROTECTION: 0
USE_AIKAR_FLAGS: true
LOG_TIMESTAMP: true
REPLACE_ENV_IN_PLACE: true
REPLACE_ENV_DURING_SYNC: true
REPLACE_ENV_VARIABLE_PREFIX: CFG_
ENABLE_RCON: true
RCON_PORT: 25575
RCON_PASSWORD_FILE: /run/secrets/rcon_password
CFG_RCON_PASSWORD_FILE: /run/secrets/rcon_password
CFG_FORWARDING_SECRET_FILE: /run/secrets/forwarding_secret
CFG_LUCKPERMS_PASSWORD_FILE: /run/secrets/luckperms_password
PLUGINS: |
https://github.com/EssentialsX/Essentials/releases/download/2.22.0/EssentialsX-2.22.0.jar
MODRINTH_PROJECTS: |
bluemap:Vb2ZE8bR
chunky:P3y2MXnd
freedomchat:NsY1L3hZ
luckperms:b0mk8uS6
multiverse-core:YZ2Ji4IS
multiverse-inventories:BuvLmql9
multiverse-netherportals:RRa80eDI
signedvelocity:rrIsooky
stfu-velocity:Y3nJXOQT
vaultunlocked:cLNipSgw
worldedit:F5ea2ov3
labels:
diun.enable: "false"
diun.watch_repo: "true"
diun.include_tags: "latest"
fabric:
image: itzg/minecraft-server:2026.9.0-java25
restart: unless-stopped
depends_on:
init:
condition: service_completed_successfully
restart: true
luckperms:
condition: service_healthy
restart: true
healthcheck:
test: mc-health
start_period: 5m
interval: 5s
retries: 20
secrets:
- rcon_password
- forwarding_secret
- luckperms_password
networks:
minecraft_server_network:
ipv4_address: "10.100.1.5"
volumes:
- fabric_data:/data:rw
- schematics:/data/config/worldedit/schematics:rw
- bluemap_maps:/data/bluemap/web/maps:rw
- ./fabric/config:/config:ro
environment:
UID: 2015 # minecraft_server
GID: 2015 # minecraft_server
EULA: true
TYPE: FABRIC
SERVER_NAME: Illegal Crime Fabric
MOTD: Best Redstone Server
VERSION: "1.21.11"
INIT_MEMORY: 512m
MAX_MEMORY: 4G
ENABLE_AUTOPAUSE: true
MAX_TICK_TIME: -1
ENFORCE_SECURE_PROFILE: false
SNOOPER_ENABLED: false
ENABLE_QUERY: false
BROADCAST_CONSOLE_TO_OPS: false
BROADCAST_RCON_TO_OPS: false
ONLINE_MODE: false
OP_PERMISSION_LEVEL: 2
MAX_PLAYERS: 50
DIFFICULTY: easy
LEVEL: world
MODE: creative
LEVEL_TYPE: minecraft:flat
ENABLE_COMMAND_BLOCK: true
GENERATE_STRUCTURES: false
SPAWN_ANIMALS: false
SPAWN_MONSTERS: false
SPAWN_NPCS: false
SPAWN_PROTECTION: 0
USE_AIKAR_FLAGS: true
LOG_TIMESTAMP: true
REPLACE_ENV_IN_PLACE: true
REPLACE_ENV_DURING_SYNC: true
REPLACE_ENV_VARIABLE_PREFIX: CFG_
ENABLE_RCON: true
RCON_PORT: 25575
RCON_PASSWORD_FILE: /run/secrets/rcon_password
CFG_RCON_PASSWORD_FILE: /run/secrets/rcon_password
CFG_FORWARDING_SECRET_FILE: /run/secrets/forwarding_secret
CFG_LUCKPERMS_PASSWORD_FILE: /run/secrets/luckperms_password
MODRINTH_PROJECTS: |
adventure-platform-mod:kuv2yi7X
axiom:SAOZ8jry
badpackets:SZTlaMHp
block-event-separator:sqitifh7
bluemap:TROfpX7m
carpet-extra:aQr1yD5l
carpet-tis-addition:pCFzPqgG
cloth-config:xuX40TN5
collective:e4SDY5SX
capture-playback:x6HoAPQ6
carpet:HzPcczDK
fabric-api:6qAuTtLR
fabricproxy-lite:nR8AIdvx
fabric-language-kotlin:eRRZzGMc
g4mespeed:aOjO3CsD
krypton:O9LmWYR7
ksyxis:kL32PN9Q
litematica-server-paster:NxXeWjl7
lithium:Ow7wA0kG
luckperms:CzCJJMuo
melius-essentials:kVtUvNhZ
mods-command:kr5sf0TO
no-chat-reports:rhykGstm
no-join-leave-messages:OM515qUi
owo-lib:33Ei8Thm
packet-fixer:XsMMpmvW
random-dust:AbuWUjFU
redstone-multimeter:9s5DeFH4
servercore:zg8VIycZ
servux:9041JwWA
signedvelocity:oX5sjplv
spark:gonLOAU1
threadtweak:9t60vZ1h
vanilla-permissions:hA27RLKS
worldedit:oY3E2pzA
labels:
diun.enable: "true"
diun.watch_repo: "true"
diun.include_tags: "latest"
luckperms:
image: postgres:17.4
user: 2015:2015 # minecraft_server:minecraft_server
restart: unless-stopped
depends_on:
init:
condition: service_completed_successfully
restart: true
healthcheck:
test: ["CMD-SHELL", "pg_isready -U luckperms -d luckperms"]
interval: 10s
retries: 5
start_period: 30s
timeout: 10s
secrets:
- luckperms_password
networks:
minecraft_server_network:
ipv4_address: "10.100.1.2"
ports:
- ${LUCKPERMS_PORT}:5432
volumes:
- luckperms_data:/var/lib/postgresql/data:rw
- backups:/backups:rw
- /etc/passwd:/etc/passwd:ro
environment:
POSTGRES_PASSWORD_FILE: /run/secrets/luckperms_password
POSTGRES_USER: luckperms
POSTGRES_DB: luckperms
PGDATA: /var/lib/postgresql/data/pgdata
labels:
diun.enable: "false"
diun.watch_repo: "true"
diun.include_tags: "latest"
schematics:
image: registry.leaf.home.kappeh.org/kappeh/minecraft_schematics_web:latest
user: 2015:2015 # minecraft_server:minecraft_server
restart: unless-stopped
environment:
ADDRESS: 0.0.0.0
PORT: 80
SCHEM_DIR: /schematics
volumes:
- schematics:/schematics:rw
networks:
minecraft_server_network:
ipv4_address: "10.100.1.7"
ports:
- 25585:80
labels:
diun.enable: "false"
diun.watch_repo: "true"
diun.include_tags: "latest"
duplicati:
image: duplicati/duplicati:2.3.0.0
user: 2015:2015 # minecraft_server:minecraft_server
restart: unless-stopped
depends_on:
init:
condition: service_completed_successfully
restart: true
env_file: ./.env
networks:
minecraft_server_network:
ipv4_address: "10.100.1.8"
ports:
- 8201:8200 # Web UI
volumes:
- duplicati_data:/data:rw
- backups:/source:ro
- /mnt/minecraft_server/backups:/dest:rw
labels:
diun.enable: "true"
diun.watch_repo: "true"
diun.include_tags: "latest"
# Helper for dumping sqlite databases during backups
sqlite_helper:
image: grepular/sqlite3:3.53.0
user: 0:0
restart: no
network_mode: none
volumes:
- backups:/backups:rw
- velocity_data:/velocity_data:ro
- paper_data:/paper_data:ro
labels:
diun.enable: "true"
diun.watch_repo: "true"
diun.include_tags: "latest"
init:
image: busybox:1.37.0
user: root:root
command: /init.sh
restart: no
network_mode: none
volumes:
- ./scripts/init.sh:/init.sh:ro
- backups:/backups:rw
# Used for resolving user and group names within the init script
- /etc/passwd:/etc/passwd:ro
- /etc/group:/etc/group:ro
# Mount all named volumes so they can be initialised
- velocity_data:/velocity_data:rw
- bluemap_data:/bluemap_data:rw
- bluemap_web:/bluemap_web:rw
- bluemap_maps:/bluemap_maps:rw
- schematics:/schematics:rw
- paper_data:/paper_data:rw
- fabric_data:/fabric_data:rw
- luckperms_data:/luckperms_data:rw
- duplicati_data:/duplicati_data:rw
labels:
diun.enable: "true"
diun.watch_repo: "true"
diun.include_tags: "latest"
networks:
minecraft_server_network:
name: minecraft_server_network
driver: bridge
ipam:
driver: default
config:
- subnet: "10.100.1.0/24"
gateway: "10.100.1.1"
secrets:
rcon_password:
environment: RCON_PASSWORD
forwarding_secret:
environment: FORWARDING_SECRET
dclink_token:
environment: DCLINK_TOKEN
luckperms_password:
environment: LUCKPERMS_PASSWORD
volumes:
backups:
bluemap_data:
bluemap_maps:
bluemap_web:
fabric_data:
luckperms_data:
paper_data:
schematics:
velocity_data:
duplicati_data: