Files
mcserver/docker-compose.yaml
2025-12-08 21:29:46 +01:00

129 lines
3.5 KiB
YAML

version: '3.8'
services:
minecraft:
image: itzg/minecraft-server:latest
container_name: ${CONTAINER_NAME:-minecraft-server}
restart: unless-stopped
environment:
# ===== BASIS KONFIGURATION =====
EULA: "TRUE"
# Server Software & Version
TYPE: ${SERVER_TYPE:-PAPER}
VERSION: ${MC_VERSION:-1.21}
# ===== MEMORY EINSTELLUNGEN =====
MEMORY: ${MAX_RAM:-4G}
INIT_MEMORY: ${MIN_RAM:-2G}
USE_AIKAR_FLAGS: "true"
# ===== SERVER EINSTELLUNGEN =====
SERVER_NAME: ${SERVER_NAME:-Minecraft Server}
MOTD: ${MOTD:-§6Minecraft Server §7- §bPowered by Coolify}
MAX_PLAYERS: ${MAX_PLAYERS:-100}
DIFFICULTY: ${DIFFICULTY:-normal}
MODE: ${GAMEMODE:-survival}
PVP: ${PVP:-true}
# ===== WORLD EINSTELLUNGEN =====
LEVEL: ${WORLD_NAME:-world}
SEED: ${WORLD_SEED:-}
MAX_WORLD_SIZE: ${MAX_WORLD_SIZE:-29999984}
VIEW_DISTANCE: ${VIEW_DISTANCE:-10}
SIMULATION_DISTANCE: ${SIMULATION_DISTANCE:-8}
# ===== VELOCITY/BUNGEECORD =====
ONLINE_MODE: ${ONLINE_MODE:-FALSE}
# Für Velocity Modern Forwarding
PAPER_PROXY_SECRET: ${VELOCITY_SECRET:-}
# ===== PERFORMANCE =====
ENABLE_ROLLING_LOGS: "true"
MAX_TICK_TIME: ${MAX_TICK_TIME:-60000}
# ===== PLUGINS/MODS =====
PLUGINS_SYNC_UPDATE: "true"
REMOVE_OLD_MODS: "false"
# ===== FEATURES =====
ENABLE_COMMAND_BLOCK: ${ENABLE_COMMAND_BLOCK:-true}
SPAWN_PROTECTION: ${SPAWN_PROTECTION:-16}
ALLOW_FLIGHT: ${ALLOW_FLIGHT:-false}
ENABLE_WHITELIST: ${ENABLE_WHITELIST:-false}
ENFORCE_WHITELIST: ${ENFORCE_WHITELIST:-false}
# ===== RCON (für Console Zugriff) =====
ENABLE_RCON: "true"
RCON_PASSWORD: ${RCON_PASSWORD:-minecraft}
RCON_PORT: 25575
# ===== TIMEZONE =====
TZ: ${TIMEZONE:-Europe/Berlin}
# ===== OPERATOR =====
OPS: ${OPS:-}
ports:
- "25565:25565"
- "25575:25575"
volumes:
- minecraft-data:/data
networks:
- minecraft-network
labels:
- "coolify.managed=true"
- "traefik.enable=true"
- "traefik.tcp.routers.minecraft-${CONTAINER_NAME:-minecraft-server}.rule=HostSNI(`*`)"
- "traefik.tcp.routers.minecraft-${CONTAINER_NAME:-minecraft-server}.entrypoints=minecraft"
- "traefik.tcp.routers.minecraft-${CONTAINER_NAME:-minecraft-server}.service=minecraft-${CONTAINER_NAME:-minecraft-server}"
- "traefik.tcp.services.minecraft-${CONTAINER_NAME:-minecraft-server}.loadbalancer.server.port=25565"
healthcheck:
test: mc-health
interval: 30s
timeout: 10s
retries: 3
start_period: 180s
# ===== SFTP SERVER FÜR VOLLZUGRIFF AUF MC SERVER =====
sftp:
image: emberstack/sftp:latest
container_name: ${CONTAINER_NAME:-minecraft-server}-sftp
restart: unless-stopped
environment:
SFTP_USERS: mcadmin:${SFTP_PASSWORD:-changeme123}:::minecraft
ports:
- "2222:22"
volumes:
- minecraft-data:/home/mcadmin/minecraft
networks:
- minecraft-network
labels:
- "coolify.managed=true"
depends_on:
- minecraft
volumes:
minecraft-data:
name: ${CONTAINER_NAME:-minecraft-server}-data
driver: local
labels:
- "coolify.managed=true"
networks:
minecraft-network:
driver: bridge
labels:
- "coolify.managed=true"