Skip to content

How Nexora works ​

Nexora has two parts: one Panel that decides everything, and any number of nodes that carry your users' traffic. This section explains how they work inside, for when you want to know why something behaves as it does. You do not need it to run a service; the Use the panel section covers that.

How the pieces fit together
Customers’ apps
v2rayNG, Hiddify, Streisand…
Node
frankfurt-01
Node
tokyo-01
Node
toronto-01
The internet
Panel
one place for everything
You, in a browser
Addons
Shop, notifier, your own
users’ trafficconfiguration and statistics, over mutual TLSevents and APIsubscription download

The control plane: the panel ​

The panel is one program with a web interface. It holds four things:

  • The database, the single source of truth. Every admin, user, plan, inbound, template, node, tunnel, certificate and setting lives there, on SQLite or PostgreSQL. Nodes keep no copy of their own; if the two disagree, the panel is right and the node is changed to match.
  • The scheduler. The panel does its periodic work itself, on a fixed rhythm (below).
  • The API. The web interface, your scripts and addons all use the same API, each with its own permissions.
  • The subscription service. Users' apps fetch their configuration from their Subscription address. It can run on its own domains, apart from the address you administer the panel at.

The panel's rhythm ​

EveryThe panel
10 secondsmerges the addresses each node saw and pushes the per-user address table back where it changed
15 secondschecks every node (the heartbeat) and re-sends the configuration to a node that is not serving it
30 secondscollects traffic counters from every node
minuteenforces quotas, expiry dates, reset cycles and node limits; checks addons' health
5 minutessamples each node's disk, memory and load
10 minutescompares route, DNS and rule sets on every node with what it should run
hourrefreshes rule sets that are due, prunes old records, compacts health history, re-reads addon manifests
6 hoursrenews certificates that are due

The data plane: nodes ​

A node is a server that carries traffic. It is stateless:

  • It has no database. Inbounds, outbounds, endpoints, routing, users and limits all arrive from the panel and are held in memory.
  • On disk it keeps only its own TLS identity and a cache of files that can be fetched again, such as rule sets the panel pushed.
  • After a restart it serves nothing until the panel sends its configuration again, which the next heartbeat does within seconds.
  • It serves only while its panel reaches it. Cut off from the panel for about three minutes, it stops serving. See A node and its panel.

What a node serves is its Template: the inbounds, outbounds, endpoints, rule sets and routing in it, plus the users who belong to that template.

How they talk ​

The panel connects to each node over HTTPS on the node's control port (62050 by default), with mutual TLS:

  • The node accepts only the panel's client certificate, which it received when it was installed.
  • The panel records the node's own certificate on the first connection and from then on accepts only that one. This is trust on first use: a different certificate at the same address is refused.

Once a node is installed, the panel always calls the node, never the other way round. Over that link the panel sends configuration and changes, and reads back state, counters, warnings and host figures. A change is sent as only that change, without restarting the node; see Changes without restarts.

Users touch only nodes and the subscription address ​

Your customers never reach the panel. Their app fetches its configuration from the subscription address, then connects to the nodes' link addresses. The panel's own address, its login page and its API need not be known to anyone but you and your staff.

Addons sit beside the panel ​

An addon, such as Nexora Shop or the notifier, is a separate program with its own process, database and interface. It works with the panel over the network only: an API token with the permissions you approved, and a webhook that receives the events it asked for. The panel never runs an addon's code. See The addon platform and The event bus.

The pages in this section ​

PageWhat it explains
The path of a packetone connection through a node, stage by stage
Changes without restartshow a change reaches nodes without restarts
A node and its paneltrust, sessions, heartbeats, and what a node does without its panel
Inside a tunnelrelays, origins and the session pool inside a tunnel
From a template to a linkhow a user's links are built from templates, addresses and fronts
Traffic, quotas and limitstraffic counting, quotas, limits and resellers' allowances
The event busthe event bus and how deliveries are retried
The addon platformregistration, consent, grants and updates of addons
Certificates, issued and renewedwho issues certificates, and how they renew and reload
Security modelthe security model, from mutual TLS to roles and audit
Monitoring and metricshealth history, live connections and the metrics endpoint

Text and images under CC BY 4.0.