Skip to content

Configuration

yaml
# Gate proxy configuration for Minecraft Java Edition
config:
  # The bind address to listen for Minecraft client connections.
  bind: 0.0.0.0:25565
  # Whether to use the proxy in online (authenticate players with Mojang API) or offline mode (not recommended).
  onlineMode: true
  # Registers servers with the proxy by giving the address of backend server a custom reference name.
  servers:
    # Server name: server address
    server1: localhost:25566
    server2: localhost:25567
    server3: localhost:25568
    server4: localhost:25569
  # The list of servers to try (ordered) to connect a player to
  # upon login or fallback when a player is kicked from a server.
  try:
    - server1
    - server2
    - server3
    - server4
  # Configure the response for server list pings.
  status:
    # The message of the day in legacy '§' format or modern text component '{"text":"...", ...}' json.
    motd: |
      §bA Gate Proxy
      §bVisit ➞ §fgithub.com/minekube/gate
    # The maximum players shown (is not the actual player limit!).
    showMaxPlayers: 1000
    # The server image (optimal 64x64); a path of an image file or the base64 data uri.
    favicon: data:image/png;base64,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
    # Whether to log ping requests in the console.
    logPingRequests: false
    # Whether the proxy should present itself as Forge/FML-compatible server.
    announceForge: false
  # Allows players transferred from other hosts via the
  # Transfer packet (Minecraft 1.20.5) to be received.
  # Default: false
  acceptTransfers: false
  # Whether the proxy should support bungee plugin channels.
  # (Disable this if your backend servers are untrusted.)
  bungeePluginChannelEnabled: true
  # Whether to register builtin commands on proxy start.
  # Default: true
  builtinCommands: true
  # Whether players require permissions to
  # execute a builtin proxy command like /server.
  # Ignore this if `builtinCommands` is set to false.
  # (This should be set to true in production environments.)
  # Default: false
  requireBuiltinCommandPermissions: false
  # Declares the proxy commands to 1.13+ clients.
  # Default: true
  announceProxyCommands: true
  # Should the proxy enforce the new public key
  # security standard added in Minecraft 1.19?
  # Default: true
  forceKeyAuthentication: true
  # The default disconnect reason to kick player on proxy shutdown when no other reason was given.
  # Either in simple legacy '§' format or modern text component '{"text":"...", ...}' json.
  shutdownReason: |
    §cGate proxy is shutting down...
    Please reconnect in a moment!
  # Packet compression settings.
  compression:
    # The minimum size (in bytes) a packet must be before the proxy compresses it.
    # The Minecraft vanilla server uses 256 by default.
    threshold: 256
    # Indicates what zlib compression level Gate should use.
    # It goes from -1 to 9 where zero means no compression and -1 the default.
    level: -1
  # The time Gate waits to connect to a server before timing out.
  connectionTimeout: 5s
  # The time Gate waits to receive data from a server before timing out.
  # If you use Forge, you may need to increase this setting.
  readTimeout: 30s
  # Whether to reconnect the player when disconnected from a server.
  failoverOnUnexpectedServerDisconnect: true
  # Whether to kick existing connected player when an online-mode player with the same name joins.
  # This is useful for scenarios where the real Minecraft account takes precedence over the cracked one.
  # Note that enabling this would allow real Minecraft account players to bully cracked players by
  # taking the cracked player's name and block them from joining the server, while the online player is connected.
  # Default: false
  onlineModeKickExistingPlayers: false
  # Enabled extra debug logging (only for debugging purposes).
  debug: false
  # This allows you to customize how player information such as IPs and UUIDs are forwarded to your server.
  # See the documentation for more information.
  forwarding:
    # Options: legacy, none, bungeeguard, velocity
    mode: legacy
    # The secret used if the mode is velocity.
    #velocitySecret: secret_here
    # The secret used if the mode is bungeeguard.
    #bungeeGuardSecret: secret_here
  # Proxy protocol (HA-Proxy) determines whether Gate should support proxy protocol for players.
  # Do not enable this if you don't know what it is.
  proxyProtocol: false
  # ForcedHosts routes players to specific servers based on the hostname they connect with.
  # This allows you to have multiple domains pointing to the same Gate proxy but route players
  # to different servers based on which domain they used to connect.
  # Available in classic mode only (when lite.enabled: false).
  #
  # Key features:
  # - Hostname-only matching (port is ignored)
  # - Case-insensitive matching
  # - Supports multiple servers per hostname for load balancing
  # - Falls back to 'try' list if no forced host matches
  #
  # Examples:
  # forcedHosts:
  #   "creative.example.com": ["server2"]           # Route creative.example.com to server2
  #   "survival.example.com": ["server1", "server3"] # Route survival.example.com to server1 or server3
  #   "lobby.example.com": ["server1"]              # Route lobby.example.com to server1
  #
  # Note: Players connecting via IP address or unmatched hostnames will use the 'try' list above.
  # For lightweight deployments, see Gate Lite mode which provides similar host-based routing.
  forcedHosts: {}
  # The quota settings allows rate-limiting IP (last block cut off) for certain operations.
  # ops: The allowed operations per second.
  # burst: The maximum operations per second (queue like). One burst unit per seconds is refilled.
  # maxEntries: The maximum IPs to keep track of in cache for rate-limiting (if full, deletes oldest).
  quota:
    # Limit how many new connections can be established by the same IP range.
    connections:
      enabled: true
      ops: 5
      burst: 10
      maxEntries: 1000
    # Limit how many login requests can be made by the same IP range.
    logins:
      enabled: true
      burst: 3
      ops: 0.4
      maxEntries: 1000
  # Whether and how Gate should reply to GameSpy 4 (Minecraft query protocol on UDP) requests.
  query:
    enabled: false
    port: 25577
    showPlugins: false
  auth:
    # Customize the base URL for the Mojang session server to authenticate online mode players using different authentication servers.
    # Defaults to https://sessionserver.mojang.com/session/minecraft/hasJoined
    #sessionServerUrl: https://example.com/mitm/session/minecraft/hasJoined

  # Lite mode is a lightweight reverse proxy mode that acts as thin layer between the client and the backend server.
  # Full documentation: https://gate.minekube.com/guide/lite
  #
  # It efficiently routes client connections based on the virtual host address received in the handshake packet.
  # This allows to protect multiple backend servers behind a single port Gate Lite proxy instance.
  # Player connections (including ping requests and player authentication) is forwarded to the destined backend server.
  # This means Lite mode supports proxy behind proxy setups, but advanced features like server switching or proxy commands are no longer available
  # and have no effect in Lite mode when extensions use higher level Gate APIs and events.
  lite:
    # Enable Lite mode.
    # If disabled, the proxy will act as a full proxy with all features enabled just like BungeeCord/Velocity.
    # If enabled, the proxy will act as a lightweight reverse proxy to support new types of deployment architecture.
    # Default: false
    enabled: false
    # The routes that the proxy redirects player connections to based on matching the virtual host address.
    # The routes are matched in order of appearance.
    # Examples:
    routes:
      # Match the virtual host address to the backend server.
      - host: localhost
        # The backend server to connect to if matched.
        backend: localhost:25566
        # The optional fallback status response when all backends of this route are offline.
        fallback:
          motd: |
            §cLocalhost server is offline.
            §eCheck back later!
          version:
            name: '§cTry again later!'
            protocol: -1
          #players:
          #  online: 0
          #  max: 1000
          # The optional favicon to show in the server list (optimal 64x64).
          # Accepts a path of an image file or the base64 data uri.
          favicon: data:image/png;base64,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
      # You can also use * wildcard to match any subdomain.
      - host: '*.example.com'
        backend: 172.16.0.12:25566
        proxyProtocol: true # Use proxy protocol to connect to backend.
        tcpShieldRealIP: true # Optionally you can also use TCPShield's RealIP protocol.
      # You can also match to multiple hosts to one or multiple backends.
      - host: [127.0.0.1, localhost]
        backend: [172.16.0.12:25566, backend.example.com:25566]
        # Load balancing strategy when multiple backends are available.
        # See https://gate.minekube.com/guide/lite#load-balancing-strategies for detailed guide.
        # Options: random, round-robin, least-connections, lowest-latency
        # Default: random
        strategy: random
        # Ping responses are cached per backend address by default.
        # To disable motd caching set it to -1.
        # Default: 10s
        cachePingTTL: 60s
        # Modifies the virtual host to match the backend address in the handshake request.
        # This is useful when backends require players to connect with a specific domain.
        # Lite will modify the player's handshake packet's virtual host field from `localhost` -> `backend.example.com`
        # before forwarding the connection to the backend.
        # Default: false
        modifyVirtualHost: true
      # Match all as last item routes any other host to a default backend.
      - host: '*'
        backend: 10.0.0.10:25565
        fallback:
          motd: §eNo server available for this host.
          version:
            name: §eTry example.com
            protocol: -1
          #players:
          #  online: 0
          #  max: 1000
          #favicon: server-icon.png

  # Bedrock Edition (mobile, console, Windows) cross-play support.
  # Enables Java and Bedrock players to play together through integrated Geyser and Floodgate.
  # See https://gate.minekube.com/guide/bedrock for detailed setup guide.
  bedrock:
    # Enable Bedrock Edition support for cross-play.
    # Default: false
    enabled: false

    # --- QUICK START ---
    # For most users, this single line enables everything:
    #managed: true

    # --- ADVANCED CONFIGURATION ---
    # If you need more control, use the structure below:

    # Gate ↔ Geyser connection settings
    # TCP address where Gate listens for connections from Geyser Standalone.
    # Default: localhost:25567 (recommended for same-machine setups)
    # Use 0.0.0.0:25567 for Docker Compose or when Geyser runs on a different machine
    #geyserListenAddr: localhost:25567

    # Bedrock player username format to avoid conflicts with Java players.
    # Use %s as placeholder for the original Bedrock username.
    # Examples: ".%s" (prefix dot), "[BE]%s" (prefix tag), "%s_BE" (suffix tag)
    # Default: ".%s"
    #usernameFormat: ".%s"

    # Path to the Floodgate encryption key file (shared between Geyser and Gate).
    # Gate can auto-generate this key in managed mode.
    # Default: "floodgate.pem"
    #floodgateKeyPath: "floodgate.pem"

    # Managed Geyser mode: Gate automatically handles Geyser Standalone process.
    # This is the recommended setup for most users.
    managed:
      # Enable managed mode (Gate downloads, configures, and runs Geyser).
      # Default: false
      enabled: false

      # Download URL for Geyser Standalone JAR file.
      # Leave empty to use the latest official release.
      # Default: https://download.geysermc.org/v2/projects/geyser/versions/latest/builds/latest/downloads/standalone
      #jarUrl: "https://download.geysermc.org/v2/projects/geyser/versions/latest/builds/latest/downloads/standalone"

      # Directory for Geyser data (JAR file, config, logs, etc.).
      # Default: ".geyser"
      #dataDir: ".geyser"

      # Path to Java executable for running Geyser.
      # Default: "java" (from PATH)
      #javaPath: "java"

      # Whether to automatically download JAR updates on startup.
      # Default: true
      #autoUpdate: true

      # Additional JVM arguments for running Geyser.
      # Default: []
      #extraArgs:
      #  - "-Xmx1G"
      #  - "-XX:+UseG1GC"

      # Custom overrides for the auto-generated Geyser config.
      # This allows you to customize the Geyser config.
      # See https://wiki.geysermc.org/geyser/understanding-the-config/ for all options.
      configOverrides:
        # Bedrock client settings
        bedrock:
          # UDP port for Bedrock clients to connect to.
          # Default: 19132
          port: 19132
          # Server list display names
          motd1: 'Gate + Geyser Cross-Play'
          motd2: 'Java & Bedrock Together!'
          # Server name shown in Bedrock client
          server-name: 'My Minecraft Server'
          # Compression level (1-9, higher = more CPU, less bandwidth)
          # Default: 6
          compression-level: 6

        # Performance and debugging
        # Enable debug logging (shows packet details)
        # Default: false
        debug-mode: false
        # Whether to forward player ping to Gate.
        # Default: true
        forward-player-ping: true

        # Bedrock-specific features
        # Show block break cooldown as title/actionbar
        # Options: title, actionbar, false
        # Default: title
        show-cooldown: title
        # Show coordinates in debug info
        # Default: true
        show-coordinates: true
        # Allow custom player skulls from Java Edition
        # Default: true
        allow-custom-skulls: true
        # Maximum visible custom skulls (performance)
        # Default: 128
        max-visible-custom-skulls: 128

        # Xbox and console features
        # Enable Xbox achievements (Xbox players only)
        # Default: false
        xbox-achievements-enabled: false
        # Add non-Bedrock items to Creative inventory
        # Default: true
        add-non-bedrock-items: true

        # Advanced networking (rarely need to change)
        # MTU size for UDP packets
        # Default: 1400
        mtu: 1400
        # Use direct connections when possible
        # Default: true
        use-direct-connection: true

        # Resource pack settings
        # Force resource packs to be applied
        # Default: true
        force-resource-packs: true
        # Enable proxy connections for resource pack downloads
        # Default: false
        enable-proxy-connections: false

        # Floodgate settings (authentication for offline Bedrock players)
        # Custom Floodgate key file path (overrides floodgateKeyPath above)
        #floodgate-key-file: "/custom/path/to/key.pem"

        # For complete list of all Geyser configuration options, see:
        # https://wiki.geysermc.org/geyser/understanding-the-config/
        #
        # Common additional settings include:
        # - passthrough-motd: true/false
        # - passthrough-player-counts: true/false
        # - ping-passthrough-interval: 3
        # - scoreboard-packet-threshold: 20
        # - disable-compression: false
        # - notify-on-new-bedrock-update: true

    # --- MANUAL SETUP (Alternative to Managed Mode) ---
    # If you prefer to run your own Geyser instance instead of using managed mode:
    # 1. Set managed.enabled: false (or omit the managed section)
    # 2. Download and run Geyser Standalone manually
    # 3. Configure Geyser to connect to Gate's geyserListenAddr (default: 25567)
    # 4. Set auth-type: floodgate and use-proxy-protocol: true in Geyser config
    # 5. Share the same floodgateKeyPath between Gate and your backend servers
    #
    # See https://gate.minekube.com/guide/bedrock#manual-setup for detailed instructions.

# Configuration for Connect, a network that organizes all Minecraft servers/proxies
# and makes them universally accessible for all players.
# Among a lot of other features it even allows players to join locally hosted
# Minecraft servers without having an open port or public IP address.
#
# Visit https://connect.minekube.com/
connect:
  # Enabling Connect makes Gate register itself to Connect network.
  # This feature is disabled by default, but you are encouraged to
  # enable it and get empowered by the additional network services
  # and by the growing community in this ecosystem.
  enabled: false
  # The endpoint name is a globally unique identifier of your server.
  # If Connect is enabled, but no name is specified a random name is
  # generated on every restart (only recommended for testing).
  #
  # It is supported to run multiple Gates on the same endpoint name for load balancing
  # (use the same connect.json token file from first Gate instance).
  #name: your-endpoint-name
  # Whether to allow offline mode players to join.
  # Default: false
  allowOfflineModePlayers: true

# Gate HTTP API configuration.
# See https://gate.minekube.com/guide/api for more information.
api:
  # Whether to enable the API for Gate.
  # Default: false
  enabled: false
  # The bind address to listen for API connections.
  # Default: localhost:8080
  bind: localhost:8080

Released under the Apache 2.0 License. (web version: 98cfd604)