Skip to content

feat(nodes): the node's country flag before its name - #96

Merged
hiddify-com merged 1 commit into
hiddify:devfrom
Hiddify-Official:feat/node-flags
Oct 23, 2026
Merged

hiddify-com merged 1 commit into
hiddify:devfrom
Hiddify-Official:feat/node-flags

Conversation

@Hiddify-Official

Copy link
Copy Markdown
Contributor

Problem

On the Nodes page, nothing showed where a node's server is. With several nodes, an admin had to remember which server is in which country.

Change

  • API (nodes_api.py):
    • each node row gains country (ISO code), from the node's address and the panel's own MaxMind data;
    • a host name is resolved first, IPv4 preferred;
    • no outside service is called;
    • the result is kept in redis for a day, or an hour when unknown.
  • Card (NodesView.vue): the flag emoji before the node's name, with the country's name (Intl.DisplayNames) on hover.

Screenshots

The "after" shots come from the test servers, which run this PR together with the Nodes "Show more" (#94) and "Ping" (#95) PRs, so they also show those buttons. This PR adds only the flag.

Before After
before after
before after
before after
before after

Tested

  • On main (a parent with two nodes, panel restart): both nodes got the right country from their address, one by an IPv4 name and one by an IPv6 name.
  • Shown on desktop, dark, mobile and Persian RTL.

Review

  • Confidence: High (>90%) — one read-only field; the lookup is local and cached.
  • Complexity: Simple — one API field and the card's title.
  • Note: Windows has no flag emoji, so its browsers show the two letters (e.g. "ES") in place of the flag.

🤖 Generated with Claude Code

The Nodes API gives each node's country (ISO code), from its address and
the panel's own MaxMind data (a name is resolved first), kept a day. The
card shows the flag before the node's name, the country's name on hover.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@hiddify-com
hiddify-com merged commit b41669c into hiddify:dev Oct 23, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants