73 lines
2.5 KiB
YAML
73 lines
2.5 KiB
YAML
# NB! since udp routing cannot be made on hostnames, minecraft will have to be accessed as follows:
|
|
# minecraft-bedrock: minecraft.sthome.org:19132
|
|
# minecraft-java: minecraft.sthome.org:25565
|
|
|
|
name: minecraft
|
|
|
|
secrets:
|
|
mcjava_rcon_password:
|
|
file: ${SECRETSDIR}/mcjava_rcon_password
|
|
|
|
networks:
|
|
traefik-net:
|
|
external: true
|
|
|
|
services:
|
|
minecraft-bedrock:
|
|
image: itzg/minecraft-bedrock-server
|
|
hostname: ${MCBEDROCK_APP}
|
|
env_file: .minecraft-bedrock.env
|
|
tty: true
|
|
stdin_open: true
|
|
networks:
|
|
- traefik-net
|
|
volumes:
|
|
- /etc/localtime:/etc/localtime:ro
|
|
- "${DATADIR}/bedrock:/data"
|
|
restart: unless-stopped
|
|
# environment variables specified here overrides env_file
|
|
environment:
|
|
- GAMEMODE=survival
|
|
- DIFFICULTY=peaceful
|
|
#- DIFFICULTY=easy
|
|
labels:
|
|
- traefik.enable=true
|
|
- traefik.docker.network=traefik-net
|
|
- "traefik.udp.services.${MCBEDROCK_APP}-svc.loadbalancer.server.port=${MCBEDROCK_PORT}"
|
|
- "traefik.udp.routers.${MCBEDROCK_APP}-rtr.entrypoints=mc-bedrock"
|
|
- "traefik.udp.routers.${MCBEDROCK_APP}-rtr.service=${MCBEDROCK_APP}-svc"
|
|
|
|
minecraft-java:
|
|
image: itzg/minecraft-server
|
|
hostname: ${MCJAVA_APP}
|
|
env_file: .minecraft-java.env
|
|
tty: true
|
|
stdin_open: true
|
|
networks:
|
|
- traefik-net
|
|
volumes:
|
|
- /etc/localtime:/etc/localtime:ro
|
|
- "${DATADIR}/java:/data"
|
|
restart: unless-stopped
|
|
secrets:
|
|
- mcjava_rcon_password
|
|
# environment variables specified here override env_file
|
|
environment:
|
|
- SERVER_NAME=mc-java
|
|
- MODE=survival
|
|
- DIFFICULTY=easy
|
|
# - ENABLE_RCON=true # uncomment to enable RCON
|
|
labels:
|
|
- traefik.enable=true
|
|
- traefik.docker.network=traefik-net
|
|
# udp entrypoint routed to service port
|
|
- "traefik.udp.services.${MCJAVA_APP}-svc.loadbalancer.server.port=${MCJAVA_PORT}"
|
|
- "traefik.udp.routers.${MCJAVA_APP}-rtr.entrypoints=mc-java"
|
|
- "traefik.udp.routers.${MCJAVA_APP}-rtr.service=${MCJAVA_APP}-svc"
|
|
|
|
# tcp entrypoint routed to rcon port - unencrypted (unsafe, do not port forward router)
|
|
- "traefik.tcp.services.${MCJAVA_APP}-rcon-svc.loadbalancer.server.port=${MCJAVA_RCON_PORT}"
|
|
- "traefik.tcp.routers.${MCJAVA_APP}-rcon-rtr.rule=HostSNI(`*`)" # no matching possible without tls
|
|
- "traefik.tcp.routers.${MCJAVA_APP}-rcon-rtr.entrypoints=mc-java-rcon"
|
|
- "traefik.tcp.routers.${MCJAVA_APP}-rcon-rtr.service=${MCJAVA_APP}-rcon-svc"
|