You need your own public server with a web server and PHP. Put the agent file online, confirm the URL works, then send a join request. You do not give us SSH access or any server passwords.
Leave the token fields empty until you are approved.
Test
Open https://your-domain.example/netstats-node.php?action=health in a browser. You should see JSON with "ok":1.
If you get that JSON, the agent is up. That is what NetStats checks before join.
IPv6 examples for checks later: 2001:db8::1, [2001:db8::1]:443, http://[2001:db8::1]/.
05 Traffic profile and operator responsibility
When your node is approved, the hub may ask it to run short public-target checks submitted by site users. Expect small outbound probes from your server IP:
Ping: a few ICMP echoes
HTTP: one GET, no redirect following, response body capped (~16 KB), short timeout
TCP / UDP: a brief connect or one-byte probe to a chosen port
DNS / path checks: resolver queries, traceroute, or MTR when those features are enabled
Private, loopback, and link-local targets are blocked unless you set ALLOW_PRIVATE_TARGETS = true in the agent (off by default; the hub alone cannot force this).
If you do not want your IP used as a check source, do not join, or filter egress on your firewall. Abuse complaints for probe traffic land with the node operator as well as the hub.
06 Join the network
Submit your public agent URL on the join form. An admin reviews every request. After approval you receive NODE_TOKEN and HUB_HMAC_SECRET by email (when the hub SMTP is configured). Put them into the agent config and keep the agent online.