# Minecraft Server Self-hosted Minecraft server running the **TerraFirmaGreg: Modern** modpack. ## Access - **Host:** `192.168.2.114:25565` (LAN / Tailscale) - **Voice Chat:** `192.168.2.114:24454/udp` No Tailscale sidecar — ports are exposed directly on the host. ## Containers | Container | Image | Role | |---|---|---| | `minecraft` | `itzg/minecraft-server:latest` | Game server | ## Compose File **Path:** `/Minecraft_Server/docker-compose.yaml` > Note: This file lives outside the main `DockerFiles` directory. It is explicitly mounted into the Dockhand container so it can manage it. ```yaml services: mc: image: itzg/minecraft-server:latest container_name: minecraft mem_limit: 12g tty: true stdin_open: true ports: - 25565:25565 - 24454:24454/udp # Voice Chat volumes: - /Minecraft_Server/Minecraft_Server/data:/data - /Minecraft_Server/Minecraft_Server/modpacks:/modpacks:ro - /Minecraft_Server/Minecraft_Server/downloads:/downloads environment: EULA: TRUE TYPE: AUTO_CURSEFORGE VERSION: 1.20.1 CF_API_KEY: CF_PAGE_URL: "https://www.curseforge.com/minecraft/modpacks/terrafirmagreg-modern/files/7665541" CF_BASE_DIR: /data INIT_MEMORY: 8G MAX_MEMORY: 12G ENABLE_AUTOPAUSE: true MAX_TICK_TIME: -1 AUTOPAUSE_TIMEOUT_INIT: 600 # 10 min before pausing on empty server (init) AUTOPAUSE_TIMEOUT_EST: 1800 # 30 min before pausing (established) ENABLE_ROLLING_LOGS: true LOG_TIMESTAMP: true MOTD: "Why does Pingle sound like Pringle. Does Sam own Pringles?" restart: unless-stopped ``` ## Data Layout | Path | Contents | |---|---| | `/Minecraft_Server/Minecraft_Server/data` | World saves, server config, plugins | | `/Minecraft_Server/Minecraft_Server/modpacks` | Modpack files (read-only) | | `/Minecraft_Server/Minecraft_Server/downloads` | CurseForge download cache | ## Notes - Uses `itzg/minecraft-server` with `AUTO_CURSEFORGE` type — it auto-downloads the modpack from CurseForge on startup if not already present - Modpack: **TerraFirmaGreg: Modern** (MC 1.20.1), pinned to a specific file ID (`7665541`) - Memory: 8 GB initial, 12 GB max (hard limit via `mem_limit: 12g`) - **Auto-pause** is enabled — server pauses after 30 minutes with no players, resumes on connection - `MAX_TICK_TIME: -1` disables the watchdog timer (prevents server shutdown if a tick takes too long, common with heavy modpacks)