Skip to main content

Requirements

Source code

Panel — xray-panel/backend · node — xray-panel/node · subscription page — xray-panel/subscription-page

Panel server​

ResourceMinimumComment
CPU2 cores
RAM4 GBruns on 3.8 GB on a test bench
Disk20 GBthe database grows together with traffic history
OSLinux with Docker and Docker Compose

PostgreSQL and Valkey run as containers — you do not need to install them separately. You will also need a domain and a TLS certificate: without a reverse proxy with HTTPS the panel will not start (see Reverse Proxy).

Node server​

ResourceMinimum
CPU1 core
RAM1 GB
Disk1 GB
Dockerrequired

Ports:

  • 2222 (NODE_PORT) — node management. Must be reachable from the panel server. You do not need to open it to the whole internet: a firewall rule for the panel IP is enough.
  • proxy ports — defined by the Xray configuration (inbound). Open to clients.
  • --network host is required in the node container: Xray must listen on ports itself, and port forwarding breaks detection of the real client IP.

Domains​

DomainRequiredPurpose
panel.example.comyespanel and API
sub.example.comnosubscription page

The values go into .env:

PANEL_DOMAIN=https://panel.example.com
FRONT_END_DOMAIN=https://panel.example.com
SUB_PUBLIC_DOMAIN=panel.example.com/api/sub
note

SUB_PUBLIC_DOMAIN is specified without https:// and without a trailing slash: this value is substituted into the profile-web-page-url header and into the links the client receives.

Compatibility​

  • Database migrations are applied automatically when the container starts.
  • When migrating from Remnawave the database is compatible: see Migrating from Remnawave.