services: empostor: build: context: . dockerfile: Dockerfile container_name: empostor-server restart: unless-stopped ports: # HTTP API / admin panel (TCP) - "22023:22023/tcp" # Delta UDP port pool. With DeltaPortStart/End enabled, the server does # NOT bind a static UDP port at startup — each player gets a unique port # from this range, and when only one port is left it is shared by all # new players (IP-based matching). Adjust to match config.json. - "22024-42024:22024-42024/udp" # Uncomment to expose admin HTTP panel: # - "80:80/tcp" volumes: # Server config (can be read-only if you only edit via file) - ./config.json:/app/config.json:ro # Writable runtime data - empostor_plugins:/app/plugins - empostor_libraries:/app/libraries - empostor_languages:/app/Languages - ./Log:/app/Log - ./Data:/app/Data - ./marketplace:/app/marketplace # Per-component configs (writable from admin panel) - ./discord_webhook.json:/app/discord_webhook.json environment: - ASPNETCORE_URLS=http://0.0.0.0:80 - EMPOSTOR_Server__PublicIp=0.0.0.0 volumes: empostor_plugins: empostor_libraries: empostor_languages: