Skip to content

Map NetherNet properties and fix healthcheck - #675

Merged
itzg merged 2 commits into
itzg:masterfrom
jon-dez:feat/nethernet-env-ports
Sep 17, 2026
Merged

itzg merged 2 commits into
itzg:masterfrom
jon-dez:feat/nethernet-env-ports

Conversation

@jon-dez

@jon-dez jon-dez commented Sep 17, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Map TRANSPORT, SERVER_UDP_PORTS, and SERVER_IP through property-definitions.json so env vars are written into server.properties like the other BDS keys. Fixes ignored TRANSPORT= / SERVER_UDP_PORTS= on current BDS (see Nethernet and latest version (1.26.51.1) - unable to connect #673).
  • EXPOSE 19132/tcp. Healthcheck is bds-healthcheck: GET /v1/join only when TRANSPORT=nethernet, otherwise the existing mc-monitor RakNet ping.
  • Docs + examples/nethernet/compose.yml. Existing compose/k8s examples are unchanged. TRANSPORT is not defaulted in the Dockerfile so pinned RakNet VERSION= still gets zip defaults.

Open question

Should TRANSPORT default to nethernet for VERSION=LATEST only, or stay opt-in? This PR keeps it opt-in.

Test plan

  • set-property --bulk writes transport and server-udp-ports from env
  • Image build (host arch); tagged locally itzg/minecraft-bedrock-server:nethernet-test
  • TRANSPORT=nethernet: TCP 19132, GET /v1/join 2xx, healthcheck healthy
  • Unset / TRANSPORT=raknet: healthcheck uses mc-monitor (not /v1/join)
  • Advertised SERVER_UDP_PORTS mapping (<reachable-ipv4>:19140-19155:19140-19155) + client Add Server (WAN). Hostname in that field fails (Door); IP literal works.
  • Pinned older VERSION= UDP-only still maps SERVER_PORT; RakNet healthcheck when /v1/join is unused
  • LAN / UDP 7551: not claimed; not tested

TRANSPORT/SERVER_UDP_PORTS/SERVER_IP were ignored; latest BDS also fails the RakNet healthcheck. Leave TRANSPORT unset so pinned RakNet versions keep zip defaults.
@itzg

itzg commented Sep 17, 2026

Copy link
Copy Markdown
Owner

Should TRANSPORT default to nethernet for VERSION=LATEST only, or stay opt-in? This PR keeps it opt-in.

I think it should be opt-in. Only the given environment variables are applied to properties, so normally the bedrock supplied defaults have to be assumed correct. If not, that’s Mojang’s issue to fix.

@itzg itzg left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

Comment thread bin/bds-healthcheck

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would like to enhance mc-monitor to support this; however this wrapper script is needed even for that and this is a good reference implementation.

@itzg itzg linked an issue Sep 17, 2026 that may be closed by this pull request
@itzg itzg added the enhancement New feature or request label Sep 17, 2026
@itzg
itzg merged commit 71fbc30 into itzg:master Sep 17, 2026
1 check passed
@jon-dez

jon-dez commented Sep 17, 2026

Copy link
Copy Markdown
Contributor Author

No problem!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Nethernet and latest version (1.26.51.1) - unable to connect

2 participants