140 lines
4.1 KiB
YAML
140 lines
4.1 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:
|
|
- "${SERVER_PORT:-25565}:25565"
|
|
- "${RCON_PORT:-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: atmoz/sftp:latest
|
|
container_name: ${CONTAINER_NAME:-minecraft-server}-sftp
|
|
restart: unless-stopped
|
|
|
|
environment:
|
|
SFTP_USERS: ${SFTP_USER:-mcadmin}:${SFTP_PASSWORD:-changeme123}:1000:1000:minecraft
|
|
|
|
ports:
|
|
- "${SFTP_PORT:-2222}:22"
|
|
|
|
volumes:
|
|
- minecraft-data:/home/mcadmin/minecraft
|
|
- sftp-ssh-keys:/home/mcadmin/.ssh
|
|
|
|
networks:
|
|
- minecraft-network
|
|
|
|
labels:
|
|
- "coolify.managed=true"
|
|
- "traefik.enable=true"
|
|
- "traefik.tcp.routers.sftp-${CONTAINER_NAME:-minecraft-server}.rule=HostSNI(`*`)"
|
|
- "traefik.tcp.routers.sftp-${CONTAINER_NAME:-minecraft-server}.entrypoints=sftp"
|
|
- "traefik.tcp.routers.sftp-${CONTAINER_NAME:-minecraft-server}.service=sftp-${CONTAINER_NAME:-minecraft-server}"
|
|
- "traefik.tcp.services.sftp-${CONTAINER_NAME:-minecraft-server}.loadbalancer.server.port=22"
|
|
|
|
depends_on:
|
|
- minecraft
|
|
|
|
volumes:
|
|
minecraft-data:
|
|
name: ${CONTAINER_NAME:-minecraft-server}-data
|
|
driver: local
|
|
labels:
|
|
- "coolify.managed=true"
|
|
sftp-ssh-keys:
|
|
name: ${CONTAINER_NAME:-minecraft-server}-ssh
|
|
driver: local
|
|
labels:
|
|
- "coolify.managed=true"
|
|
|
|
networks:
|
|
minecraft-network:
|
|
driver: bridge
|
|
labels:
|
|
- "coolify.managed=true"
|