Repository navigation
Node Identity
Every URNetwork provider reports a dashboard identity label when it authenticates with the backend. This label appears in your Client Manager as a single human-readable string:
Name @ first.x.x.last [Version]
For example: us-east-1 @ 66.x.x.96 [v3.23.0-fix.30.9]
The label is built by providerDescription() in provider/main.go and is sent at every mint and renewal โ so changes take effect within one auth cycle (~once per day), no restart required.
The provider resolves each component in priority order:
| Priority | Source | Description |
|---|---|---|
| 1 |
URNETWORK_NODE_NAME env var |
Explicit override โ set this for full control |
| 2 |
HOST_HOSTNAME env var |
Docker: pass the host's actual hostname with -e HOST_HOSTNAME=$(hostname)
|
| 3 | OS hostname |
os.Hostname() โ what the container or machine reports |
| 4 | Auto-detect | If the name looks like a 12-char Docker container ID, it's replaced with provider
|
If no name is set and the hostname is a container ID (e.g. a1b2c3d4e5f6), the label shows only the redacted IP or just provider.
| Priority | Source | Description |
|---|---|---|
| 1 |
URNETWORK_PUBLIC_IP env var |
Explicit override โ takes priority over all other methods |
| 2 |
~/.urnetwork/disable_ip_autodetect file |
If this file exists, IP detection is skipped (see below) |
| 3 | Auto-fetch via ip.me
|
The provider fetches its public IPv4 with a 5s timeout |
The IP is always redacted to only show the first and last octets (first.x.x.last). The full IP is never sent to the backend or displayed in the dashboard.
Automatically appended from Go build info.
# Via urnet-tools โ no restart, takes effect on next renewal tick
urnet-tools rename us-east-1
# Or via systemd drop-in for persistence across restarts
echo 'Environment="URNETWORK_NODE_NAME=us-east-1"' >> /etc/systemd/system/urnetwork.service.d/override.conf
# Docker
docker run -e URNETWORK_NODE_NAME="us-east-1" ...# Sets the dashboard identity label on the targeted container
urnet-docker rename us-east-1 --unit my-provider
# Or directly inside the container (does not affect the container's hostname)
docker exec -it <container> urnet-tools rename us-east-1
# Clear the override (reverts to hostname)
urnet-docker rename off --unit my-providerNote: The
renamecommand is a convenience alias forurnet-tools set node-name <name>. Both write to~/.urnetwork/node_name, which the provider re-reads on its next renewal tick. No restart is needed.
Docker startup scripts already set URNETWORK_PUBLIC_IP at container startup. For native/systemd installs where the binary auto-fetches its own IP, you can disable this:
# Disable (provider won't try to fetch public IP)
urnet-tools ip-detect off
# Re-enable (provider will fetch from ip.me at next renewal)
urnet-tools ip-detect on
# Check current status
urnet-tools ip-detect statusThis creates/removes ~/.urnetwork/disable_ip_autodetect โ a marker file the provider checks on every renewal tick, so no restart is needed.
# Useful behind a NAT where ip.me returns the router's IP, not yours
# Use TEST-NET range (192.0.2.0/24, 198.51.100.0/24, 203.0.113.0/24) for examples
export URNETWORK_PUBLIC_IP=192.0.2.5The provider is designed to give you flexibility in how you identify your nodes without compromising privacy:
-
Redacted IP: Only
first.x.x.lastis ever reported โ the full IP is never sent to the backend or shown in the dashboard. -
Custom names: Use
urnet-tools rename <name>to label nodes however you want โ no IP exposure at all. -
Hostname passthrough: Docker users can pass the host's real hostname via
HOST_HOSTNAMEfor fleet-wide consistency. -
Opt out entirely: Run
urnet-tools ip-detect offto report only the node name without any IP.
Besides the redacted IP, you can also have it report either the server's hostname or something entirely custom that you choose โ so there are multiple ways to identify your own nodes without resorting to a full IP address. The provider is designed to give users that flexibility without compromising privacy.
The ENABLE_IP_CHECKER env var is a separate diagnostic that logs your full unredacted IP to container logs at startup โ it is not related to dashboard identity reporting and is off by default.
The Docker startup scripts (start_stable.sh, pelican_panel.sh) set URNETWORK_PUBLIC_IP on container startup via curl -s --max-time 5 ip.me -4. This env var takes priority in the provider, so Docker containers don't rely on the binary's autodetect. If you run the provider binary directly (systemd, bare metal), the binary fetches its own IP.