Skip to content

Subscription page only

Run this command on your server:

root@server: ~
bash <(curl -Ls https://raw.githubusercontent.com/eGamesAPI/remnawave-reverse-proxy/refs/heads/main/install_remnawave.sh)

Use this option when the panel already lives on another server and you want the subscription page on its own server, for example so user traffic does not pass through the panel server.

  1. Checks the server before starting: the subscription page is not installed yet, port 443 is free.
  2. Asks for three things: the subscription domain (validated together with its DNS record), the already installed panel’s domain and the panel’s API token.
  3. Finds out how the panel is protected: cookie, TinyAuth login page or the Caddy portal, and asks for the matching key: the cookie, a login and password, or an API key.
  4. Issues a certificate for the subscription domain (DNS API, ACME or your own) and sets up renewal.
  5. Writes the services into /opt/subscription: the subscription page container and the web server in front of it; files are created root-only.
  6. Starts and verifies: requests https://domain up to 5 times with a 15-second pause until the page answers.
  7. Shows the final screen: the page address, a reminder to set SUB_PUBLIC_DOMAIN in the panel and a warning about the cookie match.
  1. Select Install Remnawave Components

    root@server: ~
    REMNAWAVE REVERSE-PROXY by eGames
    Version: 3.8.4
    Wiki: https://wiki.egam.es/
    
    1.Install Remnawave Components
    2.Reinstall Panel and Components
    3.Manage Panel and Components
    
    4.Node extensions (templates, plugins, core)
    5.Subscriptions: rules and page
    
    6.WARP Native
    7.Backup and restore
    
    8.Xray Checker — subscription monitoring
    9.NetBird: overlay network for nodes and panel
    
    10.Manage IPv6
    11.Manage certificates domain
    
    12.Check for updates script
    13.Remove script
    0.Exit
    - Quick start: remnawave_reverse (or rr)
    
    Select action (0-13):
  2. Then select Install only the subscription page

    root@server: ~
    Install Remnawave Components
    
    1.Install panel and node on one server
    2.Install panel and subscription page
    3.Add node to panel
    4.Install only the node
    5.Install only the panel
    6.Install only the subscription page
    
    0.Exit
    
    Select action (0-6):
  3. Select the web server

    root@server: ~
    Select web server:
    
    1.Nginx
    2.Caddy
    
    0.Exit
    
    Select action (0-2):
  4. Answer the installer’s questions: the subscription domain, the panel domain and the panel’s API token

    root@server: ~
    Enter subscription domain (e.g. sub.example.com): sub.example.com
    Enter panel domain (e.g. panel.example.com): panel.example.com
    Enter the panel API token (created in the panel: Settings -> API tokens):
  5. Select how the panel is protected and enter that method’s key:

    • Cookie protection (default): the script asks for the panel cookie, the same NAME=VALUE pair as in the login link.
    • Login page (TinyAuth): asks for the login page’s username and password.
    • Caddy with MFA (caddy-with-auth): asks for the API key from the panel’s login page.
    root@server: ~
    Panel protection method:
    
    1.Cookie protection (default)
    2.Login page (TinyAuth)
    3.Caddy with MFA (caddy-with-auth)
    
    Select action (1-3):
    root@server: ~
    Enter the panel cookie (format NAME=VALUE, e.g. zIdejKtN=MWbLrRzx — the same pair as in the panel login link auth/login?NAME=VALUE):
  6. Select the certificate generation method for the subscription domain:

    root@server: ~
    Select certificate generation method for all domains:
    
    1.Cloudflare DNS API
        Wildcard, DNS records are created automatically via an API key
    2.Gcore DNS API
        Wildcard, DNS records are created automatically via an API key
    3.Bunny.net DNS API
        Wildcard, DNS records are created automatically via an API key
    
    4.ACME HTTP-01
        No API key, one domain per certificate
    
    5.Install your own certificate
        Upload your own fullchain.pem and privkey.pem
    
    0.Exit
    
    Select action (0-5):
  7. If you chose Let’s Encrypt, enter the email for certificate notifications, or just press Enter to skip

    root@server: ~
    Enter your Let's Encrypt email (or press Enter to skip):
  8. From here the script works on its own: it writes the services into /opt/subscription, starts the containers and checks that the page answers

    root@server: ~
    Installing the subscription page
    Starting the subscription page
    Please wait...
    Checking subscription page availability: sub.example.com...
    Attempt 1 of 5
    
    [ ✓ ] The subscription page is up!
  9. When the installation finishes, the script prints the page address and two reminders

    root@server: ~
    =================================================
    Subscription page installed successfully!
    =================================================
    The subscription page is available at:
    https://sub.example.com
    -------------------------------------------------
    Do not forget to configure the panel: set SUB_PUBLIC_DOMAIN=<subscription page domain> in /opt/remnawave/.env on the panel server and restart the panel container (cd /opt/remnawave && docker compose up -d remnawave).
    The cookie must match the panel's current cookie: if the panel is reinstalled, update EGAMES_COOKIE in /opt/subscription/docker-compose.yml and restart the subscription page container (cd /opt/subscription && docker compose up -d remnawave-subscription-page).
    -------------------------------------------------
    To relaunch the manager, use the following command:
    remnawave_reverse
    =================================================

Make sure the script is up to date before you do anything else with it.

  1. Open the script menu with the remnawave_reverse command (or the short alias rr) and select item 12, Check for updates script. When an update is already found, the item lights up red and reads Update script:

    root@server: ~
    REMNAWAVE REVERSE-PROXY by eGames
    Version: 3.8.4 script update available
    …
    9.NetBird: overlay network for nodes and panel
    13.Update script
    13.Remove script
    
    0.Exit
    
    Select action (0-13):
  2. What changed in each version is on the releases page: