Operations

FAQ

Short answers to the questions that come up most often. Anything longer lives in the relevant chapter.

What do I need to install the panel?

One clean VPS with a public IP, a hostname pointed at it, and ports 80 and 443 open. The installer handles Nginx, TLS, Xray, SSH-WS, stunnel, the agent, the console, the bot and the CLI in a single command.

Which operating systems are supported?

FamilyVersionsPackage managerFirewall
Debian11 / 12 / 13, Raspberry Pi OSaptUFW
Ubuntu20.04 / 22.04 / 24.04 LTS, Mint, Pop!_OS, KaliaptUFW
RHEL family8 / 9, Rocky, AlmaLinux, CentOS Stream, Oraclednffirewalld
Fedora38+dnffirewalld
Amazon Linux2023dnffirewalld
SUSELeap / Tumbleweed, SLES 15zypperfirewalld
ArchArch, Manjaro, EndeavourOSpacmanUFW / nftables
Alpine3.19+ (systemd images)apknftables / iptables

The installer detects distro, package manager, architecture and hypervisor at runtime and adapts.

Which architectures and hypervisors?

  • x86_64/amd64 and aarch64/arm64 are fully supported (ARM builds better-sqlite3 from source automatically); armv7 works for nodes.
  • KVM/QEMU, Proxmox VE, VMware, Xen, Hyper-V, VirtualBox, bare metal and all mainstream clouds are full support.
  • LXC/LXD needs a privileged container with NET_ADMIN. OpenVZ 7 and Docker are limited — the host kernel blocks tc/BBR, so shaping degrades.

Can I run the panel and a node on the same VPS?

Yes. The panel installs its own local node. Add remote nodes when you need capacity or other regions — the panel itself stays the control plane.

How does a node authenticate?

Every node request is HMAC-SHA256 signed with the node secret and carries x-timestamp and x-signature. On first pairing the panel pins the node's TLS fingerprint, so a swapped certificate is refused until you force a re-pin.

Do nodes update themselves?

No. Remote nodes are updated from the panel's Update action; only the panel's local node updates itself. This keeps the fleet on a version you chose.

What happens to usage while a node is offline?

Counters accumulate on the node and are reported on the next successful heartbeat. Nothing is lost; the dashboard simply lags until the node returns.

Why are there three wallet tracks?

Points, Money/Top-up and Prepaid model three genuinely different things: a loyalty currency, real cash in cents, and a count of prepaid plan units. Each has its own append-only ledger, so history is always reconstructable.

Can a user pay with a mix of tracks?

Yes — the buckets are spent independently, and the Wallet dashboard's FIFO attribution reports how much of a spend came from real cash versus gifted or coupon balance. That split is reporting only; it is not enforced by the backend.

How do top-ups get approved?

A user submits a top-up with proof; it lands in Approvals with a live pending badge. Approving writes a ledger row with the admin actor recorded, so every credit is attributable.

Are prices shown in another currency?

Money is stored and computed in USD cents. A pkrPerUsd setting (default 280) renders a PKR figure on the Referrals page for convenience — it never changes the stored amount.

How do I update the panel?

vortexa update. The CLI installs tagged releases only, so a version that does not move usually means the release is not published yet.

What gets backed up?

Configuration, the database and Xray state. Restore is the same command in reverse — see Backups & restore for the exact flow and what must be stopped first.

Is anything open without authentication?

No. Routes under /api/public/* skip the site session so agents can reach them, but each handler verifies an HMAC signature or admin credentials itself.

GRVPN_ALLOW_INSECURE_DEV

This flag disables HMAC and admin verification. It exists for local development only — setting it on a reachable host opens every admin route to anyone.

Can I host the panel behind Cloudflare?

Yes, but issuance uses HTTP-01, so port 80 must reach the VPS while a certificate is issued or renewed. Disable Always Use HTTPS for that window if issuance fails.