job "minecraft-magma" { datacenters = ["aperture"] type = "service" group "fabric-server" { count = 1 network { port "mc" { to = 25565 } port "rcon" { to = 25575 } } service { name = "magma-mc" port = "mc" } service { name = "magma-mc-rcon" port = "rcon" } service { name = "magma-mc-voice" port = "voice" tags = [ "traefik.enable=true", "traefik.tcp.routers.magma-mc-voice.rule=HostSNI(`magma-mc.rb.dcu.ie`)", "traefik.tcp.routers.magma-mc-voice.tls.passthrough=true", "traefik.udp.routers.magma-mc-voice.entrypoints=voice-udp", ] } task "minecraft-magma" { driver = "docker" config { image = "itzg/minecraft-server:java17-alpine" ports = ["mc", "rcon", "voice"] volumes = [ "/storage/nomad/${NOMAD_TASK_NAME}:/data" ] } resources { cpu = 3000 # 3GHz memory = 10240 # 10GB } template { data = <<EOF EULA = "TRUE" TYPE = "FABRIC" VERSION = "1.20.4" ICON = "https://raw.githubusercontent.com/redbrick/design-system/main/assets/logos/logo.png" MEMORY = "8G" USE_AIKAR_FLAGS = true JVM_XX_OPTS = "-XX:+AlwaysPreTouch -XX:+DisableExplicitGC -XX:+ParallelRefProcEnabled -XX:+PerfDisableSharedMem -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:G1HeapRegionSize=8M -XX:G1HeapWastePercent=5 -XX:G1MaxNewSizePercent=40 -XX:G1MixedGCCountTarget=4 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1NewSizePercent=30 -XX:G1RSetUpdatingPauseTimePercent=5 -XX:G1ReservePercent=20 -XX:InitiatingHeapOccupancyPercent=15 -XX:MaxGCPauseMillis=200 -XX:MaxTenuringThreshold=1 -XX:SurvivorRatio=32" ENABLE_RCON=true RCON_PASSWORD = {{{ key "games/mc/magma-mc/rcon/password" }} EOF destination = "local/.env" env = true } } } }