services: velocity: image: itzg/mc-proxy:java21-2025.1.0 container_name: minecraft_server_velocity 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 SERVER_NAME: Illegal Crime MINECRAFT_VERSION: "1.21.3" 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 MODRINTH_PROJECTS: | dclink:EjvGsLkv huskchat:SZxRjPf7 luckperms:vtXGoeps signedvelocity:Jp1p9BHR velocitab:TTtLPunq bluemap: image: ghcr.io/bluemap-minecraft/bluemap:v5.7 container_name: minecraft_server_bluemap 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 paper: image: itzg/minecraft-server:2025.3.0-java23 container_name: minecraft_server_paper 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.3" 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.20.1/EssentialsX-2.20.1.jar MODRINTH_PROJECTS: | bluemap:NeDjOeW8 chunky:SmZRkQyR freedomchat:NdbpBqOZ luckperms:cfNN7sys multiverse-core:jbQopAkk multiverse-inventories:diNvP5DO multiverse-netherportals:Dkyax1rl signedvelocity:TKC72r9l stfu-velocity:Y3nJXOQT vaultunlocked:fC53e1Vr worldedit:4jRlujfz fabric: image: itzg/minecraft-server:2025.3.0-java23 container_name: minecraft_server_fabric 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.3" 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: | badpackets:hjhT2sMz block-event-separator:R7hmJOUs bluemap:Dr2hvJBc carpet-extra:WDB4578I carpet-tis-addition:znBCTqSr cloth-config:FgXq8Sfo collective:UqTBXnWC capture-playback:YmnYuB3l carpet:ZF8ufR9V fabric-api:Ybg4nYGj fabricproxy-lite:AQhF7kvw fabric-language-kotlin:476dzMG5 g4mespeed:oPV7qsy2 krypton:Acz3ttTp ksyxis:ueN87SNs litematica-server-paster:LttjgeM4 lithium:W0Cc7ZVd luckperms:S8033hpf melius-essentials:VUp9aVl4 mods-command:1F0YwdWN no-chat-reports:Cg7X9iDa no-join-leave-messages:g3jqChgD owo-lib:3Q7oLImc packet-fixer:XBM9PO5r random-dust:O4rsiuG0 redstone-helper:YqT7Ricu redstone-multimeter:kTiP34Lj servercore:PgKTFLEL servux:u85kwLvC signedvelocity:AusZl7xe spark:rExumjPo threadtweak:HV6EY0h3 vanilla-permissions:7awQNHzw worldedit:3TQ8W0Ar luckperms: image: postgres:17.4 container_name: minecraft_server_luckperms 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 # Helper for dumping sqlite databases during backups sqlite_helper: container_name: minecraft_server_sqlite_helper image: grepular/sqlite3:3.51.2 user: 0:0 restart: no network_mode: none volumes: - backups:/backups:rw - velocity_data:/velocity_data:ro - paper_data:/paper_data:ro init: container_name: minecraft_server_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 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: velocity_data: bluemap_data: bluemap_web: bluemap_maps: schematics: paper_data: fabric_data: luckperms_data: backups: