diff --git a/compose.yaml b/compose.yaml new file mode 100644 index 0000000..60a4204 --- /dev/null +++ b/compose.yaml @@ -0,0 +1,129 @@ +services: + router: + image: itzg/mc-router + container_name: mc-router + restart: unless-stopped + ports: + - "25565:25565" + # bind the API port to only loopback to avoid external exposure + - "127.0.0.1:25564:25564" + networks: + - internal + depends_on: + - omb5 + environment: + TZ: Europe/Amsterdam + API_BINDING: ":25564" + MAPPING: | + omb.marijndoeve.nl=omb5:25565 + harmitcraft.nl=omb5:25565 + 10.0.0.21=omb5:25565 + + omb5: + image: docker.io/itzg/minecraft-server:latest + container_name: mc-omb5 + restart: unless-stopped + tty: true + stdin_open: true + depends_on: + - db + ports: + - "24454:24454/udp" # Voice mod + volumes: + - /srv/omb5/data:/data + - dynmap-data:/data/dynmap/web + networks: + - internal + environment: + # General + USE_AIKAR_FLAGS: "true" + USE_MEOWICE_FLAGS: "true" + TZ: "Europe/Amsterdam" + INIT_MEMORY: 1G + MAX_MEMORY: 6G + + # Server + TYPE: "FABRIC" + EULA: "TRUE" + VERSION: "1.21.10" + MOTD: "Harmitcraft Season 5!" + DIFFICULTY: hard + SEED: "886232264" + + # Resource + # RESOURCE_PACK + + # Whitelist + ENABLE_WHITELIST: "true" + + ENABLE_AUTOPAUSE: true + + MAX_TICK_TIME: -1 + + REMOVE_OLD_DATAPACKS: true + VANILLATWEAKS_SHARECODE: "nJyPNO,RtaUSO" + + MODRINTH_PROJECTS: | + fabric-api + view-distance-fix:beta + lithium + shulkerboxtooltip + dynmap:beta + MODRINTH_DOWNLOAD_DEPENDENCIES: required + + web: + image: gitea.marijndoeve.nl/harmitcraft/dynmap-web:latest + restart: unless-stopped + container_name: mc-web + volumes: + - dynmap-data:/var/www/html:ro + depends_on: + - db + networks: + - web + - internal + labels: + - traefik.enable=true + # omb5 + - traefik.http.routers.ombweb.rule=Host(`omb5.marijndoeve.nl`) + - traefik.http.routers.ombweb.entrypoints=websecure + - traefik.http.routers.ombweb.tls.certresolver=marijndoeve + # harmitcraft + - traefik.http.routers.harmitcraftweb.rule=Host(`harmitcraft.nl`) + - traefik.http.routers.harmitcraftweb.entrypoints=websecure + - traefik.http.routers.harmitcraftweb.tls.certresolver=marijndoeve + + db: + image: postgres:19 + container_name: mc-db + environment: + TZ: Europe/Amsterdam + POSTGRES_PASSWORD: thisissecret + volumes: + - db-data:/var/lib/postgresql/data + restart: unless-stopped + networks: + - internal + + monitor: + image: itzg/mc-monitor + container_name: mc-monitor + command: export-for-prometheus + restart: unless-stopped + environment: + EXPORT_SERVERS: mc-omb5 + depends_on: + - omb5 + networks: + - internal + - web + +networks: + internal: + external: false + web: + external: true + +volumes: + dynmap-data: + db-data: