services: mc: image: itzg/minecraft-server tty: true stdin_open: true depends_on: restore-backup: condition: service_completed_successfully user: "${UID}:${GID}" ports: - "${SERVER_PORT}:25565" - "${VOICE_CHAT_PORT}:24454/udp" - "${RCON_PORT}:25585" - "${BLUEMAP_PORT}:8080" - "${GEYSER_PORT}:19132/udp" - "${IMAGEFRAME_PORT}:8517" environment: VERSION: "1.21.11" ANNOUNCE_PLAYER_ACHIEVEMENTS: false 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 MODRINTH_PROJECTS: | viaversion simple-voice-chat squaremap packetevents voxy-server-side skinsrestorer vivecraft-spigot-extension login-to imageframe essentialsx-chat-module essentialsx luckperms viabackwards gsit REMOVE_OLD_MODS: false COPY_CONFIG_DEST: "/data" ONLINE_MODE: false RCON_PASSWORD: ${RCON_PASSWORD} RCON_PORT: ${RCON_PORT} MAX_MEMORY: "4G" SPAWN_PROTECTION: 0 ENABLE_WHITELIST: true ENABLE_AUTOPAUSE: false volumes: - ./mc-data:/data - ./mcserver:/config restart: unless-stopped networks: - mc-network monitor: image: itzg/mc-monitor command: export-for-prometheus ports: - "9090:8080" environment: EXPORT_SERVERS: mc DEBUG: "true" depends_on: - mc networks: - mc-network restore-backup: # Same image as mc, but any base image with bash and tar will work image: itzg/mc-backup user: "${UID}:${GID}" restart: "no" entrypoint: restore-rsync-backup volumes: # Must be same mount as mc service, needs to be writable - ./mc-data:/data # Must be same mount as backups service, but can be read-only - ./mc-backups:/backups:ro networks: - mc-network backups: image: itzg/mc-backup user: "${UID}:${GID}" depends_on: mc: condition: service_healthy restart: unless-stopped environment: BACKUP_INTERVAL: "24h" RCON_HOST: mc # since this service waits for mc to be healthy, no initial delay is needed INITIAL_DELAY: 0 PRUNE_BACKUPS_COUNT: 3 RCON_PASSWORD: ${RCON_PASSWORD} RCON_PORT: 25585 BACKUP_METHOD: "rsync" volumes: - ./mc-data:/data:ro - ./mc-backups:/backups networks: - mc-network # broadcaster: ## image: ghcr.io/mcxboxbroadcast/standalone:latest ## user: "${UID}:${GID}" ## depends_on: ## #proxy: ## # condition: service_healthy ## mc: ## condition: service_healthy ## volumes: ## - ./mcxboxbroadcast/config:/opt/data/config ## networks: ## - mc-network ## restart: unless-stopped networks: mc-network: driver: bridge