Skip to content

Guide

How to launch a VPN service

Six steps from an empty server to a working service with subscriptions.

  1. Step 1 of 6

    Prepare your server

    Rent a Linux VPS with Docker and a public IP. Point your domain at the server.

    • Minimum: 1 vCPU, 1 GB RAM, Ubuntu or Debian
    • Install Docker 24+ if it isn't there yet
    • Create a DNS A record: panel.example.com → your server IP
    • Open ports 80 and 443 in the firewall
  2. Step 2 of 6

    Install the panel

    Two commands, and the panel is up with automatic SSL.

    • Download the installer with the first command below
    • Then install the panel with the second one
    • Enter your domain: Caddy issues the SSL certificate itself
    • Open https://your-domain/register and create the admin account

    Download the installer

    bash <(curl -fsSL https://raw.githubusercontent.com/v2RayTun/install-panel/main/install.sh)

    Install the panel

    v2raytunsetup install-panel
  3. Step 3 of 6

    Add VPN nodes

    Create nodes for the protocols you need in the panel and deploy them on servers.

    • In the panel: Nodes → Add node → enter IP, port and protocol
    • Supported: VLESS Reality, AmneziaWG and Hysteria2
    • The panel generates docker-compose.yml and the mTLS certificates
    • Copy docker-compose.yml to the node server and start it
    • The node connects to the panel on its own

    On the node server

    docker compose up -d
  4. Step 4 of 6

    Create users

    Add users and put them into squads: that is how access is set.

    • Users → Create → name, traffic limit, expiry
    • Add the user to a squad (Default-Squad already exists)
    • The squad decides which nodes and protocols the user can reach
    • Manage it in the interface or through the REST API, for example from a bot
  5. Step 5 of 6

    Hand out subscriptions

    Every user gets a personal subscription link with all their keys.

    • Subscription link: https://your-domain/api/sub/{shortUuid}
    • It carries keys for every available protocol: VLESS, AWG, Hysteria2
    • The user adds the link to a client: v2rayNG, Hiddify, AmneziaVPN
    • The client picks the protocol that works
  6. Step 6 of 6

    Configure and scale

    Backups, updates and integrations: your service is ready.

    • Schedule backups with cron
    • Connect a Telegram bot through the REST API and webhooks
    • Add nodes as you grow: the panel keeps everything in sync
    • Update with one command

    Backup

    v2raytunsetup backup

    Update

    v2raytunsetup update

Ready to start? The full install is in the docs.

Quick start