Operations
FAQ
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?
| Family | Versions | Package manager | Firewall |
|---|---|---|---|
| Debian | 11 / 12 / 13, Raspberry Pi OS | apt | UFW |
| Ubuntu | 20.04 / 22.04 / 24.04 LTS, Mint, Pop!_OS, Kali | apt | UFW |
| RHEL family | 8 / 9, Rocky, AlmaLinux, CentOS Stream, Oracle | dnf | firewalld |
| Fedora | 38+ | dnf | firewalld |
| Amazon Linux | 2023 | dnf | firewalld |
| SUSE | Leap / Tumbleweed, SLES 15 | zypper | firewalld |
| Arch | Arch, Manjaro, EndeavourOS | pacman | UFW / nftables |
| Alpine | 3.19+ (systemd images) | apk | nftables / 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-sqlite3from source automatically);armv7works 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
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.
