Skip to content

Releases: eGamesAPI/remnawave-reverse-proxy

v3.0.0

01 Apr 08:17
4f4df89

Choose a tag to compare

REMNAWAVE REVERSE PROXY

๐Ÿš€ Major Changes

๐Ÿ“ฆ ะœะพะดัƒะปัŒะฝะฐั ะฐั€ั…ะธั‚ะตะบั‚ัƒั€ะฐ ัะบั€ะธะฟั‚ะฐ

  • ะกะบั€ะธะฟั‚ ะฟะพะปะฝะพัั‚ัŒัŽ ั€ะตะพั€ะณะฐะฝะธะทะพะฒะฐะฝ ะฒ ะผะพะดัƒะปัŒะฝัƒัŽ ัั‚ั€ัƒะบั‚ัƒั€ัƒ ะดะปั ัƒะดะพะฑัั‚ะฒะฐ ะฟะพะดะดะตั€ะถะบะธ ะธ ั€ะฐััˆะธั€ะตะฝะธั
  • ะœะพะดัƒะปะธ ั€ะฐะทะดะตะปะตะฝั‹ ะฟะพ ะบะฐั‚ะตะณะพั€ะธัะผ:
    • src/nginx/*.sh โ€” ัƒัั‚ะฐะฝะพะฒะบะฐ ั ะฒะตะฑ-ัะตั€ะฒะตั€ะพะผ Nginx
    • src/caddy/*.sh โ€” ัƒัั‚ะฐะฝะพะฒะบะฐ ั ะฒะตะฑ-ัะตั€ะฒะตั€ะพะผ Caddy
    • src/modules/*.sh โ€” ะพะฑั‰ะธะต ะผะพะดัƒะปะธ (add_node, warp, ipv6, manage_panel)
    • src/api/remnawave_api.sh โ€” API ั„ัƒะฝะบั†ะธะธ ะดะปั ั€ะฐะฑะพั‚ั‹ ั ะฟะฐะฝะตะปัŒัŽ
    • src/lang/*.sh โ€” ัะทั‹ะบะพะฒั‹ะต ั„ะฐะนะปั‹ (en, ru)
  • ะะฒั‚ะพะผะฐั‚ะธั‡ะตัะบะฐั ะทะฐะณั€ัƒะทะบะฐ ะธ ะพะฑะฝะพะฒะปะตะฝะธะต ะผะพะดัƒะปะตะน ะฟั€ะธ ะพะฑะฝะพะฒะปะตะฝะธะธ ัะบั€ะธะฟั‚ะฐ

๐ŸŒ ะะพะฒั‹ะน ะฒะตะฑ-ัะตั€ะฒะตั€ Caddy

  • ะ”ะพะฑะฐะฒะปะตะฝะฐ ะฟะพะดะดะตั€ะถะบะฐ Caddy 2.11.2 ะฒ ะบะฐั‡ะตัั‚ะฒะต ะฐะปัŒั‚ะตั€ะฝะฐั‚ะธะฒั‹ Nginx
  • ะ ะฐะฑะพั‚ะฐะตั‚ ั‡ะตั€ะตะท Unix-ัะพะบะตั‚ (/dev/shm/nginx.sock) ะฐะฝะฐะปะพะณะธั‡ะฝะพ Nginx
  • ะะฒั‚ะพะผะฐั‚ะธั‡ะตัะบะพะต ะฟะพะปัƒั‡ะตะฝะธะต ะธ ะฟั€ะพะดะปะตะฝะธะต SSL-ัะตั€ั‚ะธั„ะธะบะฐั‚ะพะฒ (ะฒัั‚ั€ะพะตะฝะฝั‹ะน ACME)
  • ะ”ะพัั‚ัƒะฟะตะฝ ะดะปั ะฒัะตั… ั€ะตะถะธะผะพะฒ ัƒัั‚ะฐะฝะพะฒะบะธ: ะฟะฐะฝะตะปัŒ+ะฝะพะดะฐ, ั‚ะพะปัŒะบะพ ะฟะฐะฝะตะปัŒ, ั‚ะพะปัŒะบะพ ะฝะพะดะฐ

๐Ÿ” OAuth2 Telegram ะฐะฒั‚ะพั€ะธะทะฐั†ะธั

  • ะ”ะพะฑะฐะฒะปะตะฝะฐ ะฟะพะดะดะตั€ะถะบะฐ Telegram OAuth ะดะปั ะฒั…ะพะดะฐ ะฒ ะฟะฐะฝะตะปัŒ

Nginx ะบะพะฝั„ะธะณัƒั€ะฐั†ะธั (ะดะพะฑะฐะฒะปัะตั‚ัั ะฒ ะฑะปะพะบ server ะฟะฐะฝะตะปะธ):

# OAuth2 Telegram login
location ^~ /oauth2/ {
    if ($http_referer !~ "^https://oauth\.telegram\.org/") {
        return 444;
    }

    proxy_http_version 1.1;
    proxy_pass http://remnawave;
    proxy_set_header Host $host;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-Port $server_port;
    proxy_send_timeout 60s;
    proxy_read_timeout 60s;
}

Caddy ะบะพะฝั„ะธะณัƒั€ะฐั†ะธั (ะฐะฒั‚ะพะผะฐั‚ะธั‡ะตัะบะธ ะดะพะฑะฐะฒะปัะตั‚ัั ะฒ Caddyfile):

@oauth2 {
    path /oauth2/*
    header Referer https://oauth.telegram.org/*
}

handle @oauth2 {
    reverse_proxy {BACKEND_URL} {
        header_up Host {host}
    }
}

@oauth2_bad {
    path /oauth2/*
    not header Referer https://oauth.telegram.org/*
}

handle @oauth2_bad {
    abort
}

โš ๏ธ ะ”ะปั ััƒั‰ะตัั‚ะฒัƒัŽั‰ะธั… ัƒัั‚ะฐะฝะพะฒะพะบ: ะ”ะพะฑะฐะฒัŒั‚ะต ะบะพะฝั„ะธะณัƒั€ะฐั†ะธัŽ ะฒั€ัƒั‡ะฝัƒัŽ ะฒ nginx.conf ะธะปะธ Caddyfile


๐Ÿ”ง ะžะฟั‚ะธะผะธะทะฐั†ะธั Docker Compose

  • ะ’ะฝะตะดั€ะตะฝั‹ YAML anchors ะดะปั ัƒะผะตะฝัŒัˆะตะฝะธั ะดัƒะฑะปะธั€ะพะฒะฐะฝะธั ะบะพะฝั„ะธะณัƒั€ะฐั†ะธะธ:
x-common: &common
  ulimits:
    nofile:
      soft: 1048576
      hard: 1048576
  restart: always

x-networks: &networks
  networks:
    - remnawave-network

x-logging: &logging
  logging:
    driver: json-file
    options:
      max-size: 100m
      max-file: 5

x-env: &env
  env_file: .env
  • ะกะตั€ะฒะธัั‹ ะธัะฟะพะปัŒะทัƒัŽั‚ ะบะพะผะฑะธะฝะฐั†ะธะธ anchors: <<: [*common, *logging, *env, *networks]
  • ะฃะฑั€ะฐะฝะพ ะดัƒะฑะปะธั€ะพะฒะฐะฝะธะต ulimits, restart, logging ะดะปั ะบะฐะถะดะพะณะพ ัะตั€ะฒะธัะฐ
  • ะฃะฒะตะปะธั‡ะตะฝ ะปะธะผะธั‚ ะปะพะณะพะฒ ั 30m ะดะพ 100m ะฝะฐ ั„ะฐะนะป
  • ะžะฑะฝะพะฒะปะตะฝั‹ ะฒะตั€ัะธะธ ะพะฑั€ะฐะทะพะฒ:
    • postgres: 18.1 โ†’ 18.3
    • valkey: 9.0.0-alpine โ†’ 9.0.3-alpine
  • ะ”ะพะฑะฐะฒะปะตะฝ volume valkey-socket ะดะปั Unix-ัะพะบะตั‚ะฐ Redis
  • Redis ะฝะฐัั‚ั€ะพะตะฝ ะฝะฐ ั€ะฐะฑะพั‚ัƒ ั‡ะตั€ะตะท Unix-ัะพะบะตั‚ (--unixsocket /var/run/valkey/valkey.sock)
  • ะฃะฑั€ะฐะฝะพ ะถั‘ัั‚ะบะพะต ะทะฐะดะฐะฝะธะต ะฟะพะดัะตั‚ะธ ะดะปั remnawave-network

๐Ÿ”Œ NET_ADMIN ะดะปั ะฝะพะดั‹

  • ะ”ะพะฑะฐะฒะปะตะฝ cap_add: NET_ADMIN ะดะปั ะบะพะฝั‚ะตะนะฝะตั€ะฐ remnanode
  • ะะตะพะฑั…ะพะดะธะผะพ ะดะปั ั€ะฐะฑะพั‚ั‹ ะฟะปะฐะณะธะฝะพะฒ

๐Ÿ“ ะžะฑะฝะพะฒะปะตะฝะธั .env ั„ะฐะนะปะฐ

ะะพะฒั‹ะต ะฟะตั€ะตะผะตะฝะฝั‹ะต:

ะŸะตั€ะตะผะตะฝะฝะฐั ะžะฟะธัะฐะฝะธะต
REDIS_SOCKET ะŸัƒั‚ัŒ ะบ Unix-ัะพะบะตั‚ัƒ ะดะปั ะฟะพะดะบะปัŽั‡ะตะฝะธั ะบ Redis (Valkey): /var/run/valkey/valkey.sock
TELEGRAM_BOT_PROXY ะžะฟั†ะธะพะฝะฐะปัŒะฝั‹ะน ะฟั€ะพะบัะธ ะดะปั Telegram ะฑะพั‚ะฐ (ั„ะพั€ะผะฐั‚: socks5://user:password@host:port)
TELEGRAM_NOTIFY_SERVICE Chat_id ะดะปั ัะตั€ะฒะธัะฝั‹ั… ัƒะฒะตะดะพะผะปะตะฝะธะน
TELEGRAM_NOTIFY_TBLOCKER Chat_id ะดะปั ัƒะฒะตะดะพะผะปะตะฝะธะน ั‚ั€ะฐั„ะธะบ-ะฑะปะพะบะตั€ะฐ
NOT_CONNECTED_USERS_NOTIFICATIONS_ENABLED ะ’ะบะปัŽั‡ะตะฝะธะต ัƒะฒะตะดะพะผะปะตะฝะธะน ะพ ะฝะตะฟะพะดะบะปัŽั‡ั‘ะฝะฝั‹ั… ะฟะพะปัŒะทะพะฒะฐั‚ะตะปัั… (true/false)
NOT_CONNECTED_USERS_NOTIFICATIONS_AFTER_HOURS ะ˜ะฝั‚ะตั€ะฒะฐะปั‹ ะฒ ั‡ะฐัะฐั… ะดะปั ัƒะฒะตะดะพะผะปะตะฝะธะน (ะฝะฐะฟั€ะธะผะตั€: [6, 24, 48])

ะฃะดะฐะปะตะฝั‹ ะฟะตั€ะตะผะตะฝะฝั‹ะต:

  • TELEGRAM_NOTIFY_USERS_THREAD_ID
  • TELEGRAM_NOTIFY_NODES_THREAD_ID
  • TELEGRAM_NOTIFY_CRM_THREAD_ID

ะขะตะฟะตั€ัŒ thread_id ัƒะบะฐะทั‹ะฒะฐะตั‚ัั ะฒ ะพัะฝะพะฒะฝะพะน ะฟะตั€ะตะผะตะฝะฝะพะน ั‡ะตั€ะตะท ะดะฒะพะตั‚ะพั‡ะธะต: "-100123:80"


๐ŸŒ ะžะฑะฝะพะฒะปะตะฝั‹ ะฟะตั€ะตะฒะพะดั‹

  • ะฃะปัƒั‡ัˆะตะฝั‹ ะธ ะฐะบั‚ัƒะฐะปะธะทะธั€ะพะฒะฐะฝั‹ ะฒัะต ั‚ะตะบัั‚ั‹ ัะพะพะฑั‰ะตะฝะธะน ะฒ ั€ัƒััะบะพะผ ะธ ะฐะฝะณะปะธะนัะบะพะผ ัะทั‹ะบะฐั…

v2.3.0

20 Dec 06:35
7595468

Choose a tag to compare

REMNAWAVE REVERSE PROXY

๐Ÿš€ Major Changes

๐Ÿ›ก Gcore Certificate Generation

  • Added new method to generate domain certificates via Gcore

๐ŸŒ Real IP for Subscription Page

  • Added proper proxy headers in nginx.conf for the subscription page server block (panel + node setup):
proxy_set_header X-Real-IP        $proxy_protocol_addr;
proxy_set_header X-Forwarded-For  $proxy_protocol_addr;
  • Subscription page now correctly shows the real client IP when updating subscriptions via your connection client

๐Ÿ”ง Nginx Hash Table Optimization

  • Added server_names_hash_bucket_size 64; to nginx.conf
  • Fixes the error โ€œcould not build the server_names_hashโ€ for long or complex domain names
  • Increases hash bucket size for reliable server_name handling

๐Ÿ”’ Subscription Page Error Handling

  • Changed @redirect from return 404; to return 444; in nginx.conf
  • Improves security and prevents unnecessary 404 logs

๐Ÿ”‘ API Token for Subscription Page

  • Subscription Page now requires an API token
  • On fresh installation (panel only or panel + node), the API token is automatically generated and already added to the configuration
  • On existing (old) installations, you need to manually create an API token in your panel and add the environment variable REMNAWAVE_API_TOKEN=your_token_here in docker-compose.yml under the subscription-page service

โš™๏ธ Subscription Page Configuration

  • New environment variable SUBSCRIPTION_UI_DISPLAY_RAW_KEYS=true
  • When enabled, shows raw vless:// links in the subscription UI
  • By default hidden when HWID binding is active

๐ŸŒ Updated Translations

  • Improved and updated translations across the entire project

v2.2.0

26 Oct 15:49
37f1253

Choose a tag to compare

REMNAWAVE REVERSE PROXY

๐Ÿš€ Major Changes

๐Ÿ”OAuth Provider Detection via API

  • Replaced .env file checking with API-based OAuth provider detection
  • Now uses GET /api/auth/status endpoint to dynamically verify enabled authentication providers:
  • GitHub OAuth2
  • Yandex OAuth2
  • PocketID OAuth2
  • Telegram authentication

๐Ÿ“ฆNode Configuration Simplification

  • Removed .env-node file from node configurations
  • Migrated all node environment variables to docker-compose.yml for easier management. Only two parameters required now:
    NODE_PORT - Port for node communication (default: 2222)
    SECRET_KEY - Contains node certificates
  • Previous parameters APP_PORT and SSL_CERT from .env-node are no longer needed

๐ŸŽจPanel Management Improvements

  • Removed Legiz rule templates
  • Panel rule management is now simplified - all configurations are done directly in Remnawave panel interface

v2.1.9

12 Oct 06:08

Choose a tag to compare

REMNAWAVE REVERSE PROXY

๐Ÿš€ Major Changes

  • Debian 13 Support ๐Ÿง

  • Replaced dynamic IP fetching with a static IP 172.30.0.1 for panel and node configurations.

  • Updated .env and docker-compose.yml for seamless operation.

Domain Uniqueness Check ๐Ÿ”

  • Introduced the check_node_domain function to verify domain availability using the /api/nodes endpoint.
  • Integrated into add_node_to_panel with a loop to prompt for a unique domain if the provided one is already in use.

New Editing Features โœ๏ธ

  • Added an app-config.json editor for streamlined application configuration.
  • Introduced a branding editor for customizing the visual identity.
  • Implemented app deletion functionality for better management.

IPv4 Configuration Update ๐ŸŒ

  • Replaced ForceIPv4 with UseIPv4 for more flexible network handling.

SNI Templates Fix ๐Ÿ› ๏ธ

  • Resolved issues with SNI templates to ensure stability and proper request handling.

v2.1.4

04 Sep 04:55
758544c

Choose a tag to compare

REMNAWAVE REVERSE PROXY

๐Ÿš€ Main Changes

  • add script backup and restore from distillium
  • refactor generate_xray_keys function to use new API endpoint /api/system/tools/x25519/generate

v2.1.0

27 Aug 04:53

Choose a tag to compare

REMNAWAVE REVERSE PROXY

๐Ÿš€ Main Changes

๐Ÿ†•Features

  • Custom Branding for Subscription Page: Added support for configuring custom branding (name, support URL, logo URL) for the subscription page during setup via Legiz extensions. Refer to the configuration reference for details.

  • Updated .env Configuration: Enhanced the .env file structure to support new customization options, improving flexibility for deployment.

๐Ÿ”งFixes

  • Certificate Domain Assignment: Resolved an issue in the installation_panel and installation_node functions for the Cloudflare method (CERT_METHOD=1). Now correctly sets PANEL_CERT_DOMAIN, SUB_CERT_DOMAIN, and NODE_CERT_DOMAIN to their respective base domains, ensuring proper SSL certificate paths in Nginx configurations.

Token Validation in get_panel_token: Fixed token validation issues by:

  • Adding robust validation for API responses, handling 401 Unauthorized errors and invalid JSON.
  • Implementing a final token verification step to ensure only valid tokens are used.
  • Preventing script continuation with invalid tokens, resolving errors like jq: error: Cannot iterate over null.

๐Ÿ—‚Improvements

  • Xray Configuration: Removed QUIC protocol

v2.0.7

14 Aug 06:04

Choose a tag to compare

REMNAWAVE REVERSE PROXY

๐Ÿš€ Main Changes

๐Ÿ”ง Update Check Addition:

  • Introduced a new function to check for available software updates. This ensures users can stay up-to-date with the latest features and security patches seamlessly.

๐Ÿ”ง Notification Updates:

  • Added update notifications in the main menu, enabling users to easily identify and install new software versions for improved usability.

๐Ÿ”ง ACME Certificate Renewal - Port 80 Handling:

  • Implemented the update_current_certificates function to automatically open and close port 80 for ACME-based (HTTP-01 challenge) certificate renewals. This enhances reliability and security by automating certificate updates with minimal manual intervention.
  • Added cron job integration to correctly handle port 80 opening and closing during certificate renewals, ensuring consistent and secure operation.

v2.0.5

01 Aug 16:19
4ac7ac0

Choose a tag to compare

REMNAWAVE REVERSE PROXY

๐Ÿš€ Main Changes

๐Ÿ”งSubpage and Application Features:

  • Introduced Orion subpage for enhanced user navigation
  • Added HWID-only application list for improved security and access control
  • Implemented jsDelivr fallback for reliable subpage downloads
  • Refactored subpage menu for better usability and maintainability

๐Ÿ”งSquad Update Fixes:

  • Updated get_default_squad to return all squad UUIDs instead of a single default squad
  • Modified main script to iterate over all squad UUIDs and call update_squad for each
  • Added robust error handling and logging for squad updates

๐Ÿ—‚Updated get_panel_token function:

  • Added support for new OAuth providers: GitHub, PocketID, and Yandex

๐Ÿ”งFix:

  • manage_warp and view_logs function

Remove:

  • Deletion of existing UFW ports to prevent unintended configuration loss

v2.0.0

29 Jul 16:19
0aa44fe

Choose a tag to compare

REMNAWAVE REVERSE PROXY

๐Ÿš€ Main Changes

๐Ÿ†• New Features and Capabilities

๐Ÿ”ง WARP Native Integration (by distillium)

  • Added a complete WARP Native management module
  • Ability to install and remove WARP Native
  • Integration of WARP configuration into panel nodes

๐Ÿ—‚ Improved Panel/Node Management

  • New unified "Panel/Node Management" menu
  • Real-time container log viewing
  • Centralized management for starting/stopping/updating

๐Ÿ—‘ Script Removal System

  • Safe removal of only the script and local files
  • Full removal including panel/node data
  • Confirmations to prevent accidental deletion

๐ŸŒ API Endpoints

New:

  • /api/config-profiles - configuration profile management
  • /api/internal-squads - internal squads management

Removed:

  • /api/xray - replaced with config-profiles
  • /api/inbounds - replaced with new architecture

๐ŸŽจ Interface Reorganization

  • Unified panel/node management functions
  • Added WARP Native module
  • Added script removal system
  • Optimized navigation

v1.7.5

26 Jul 10:42

Choose a tag to compare

REMNAWAVE REVERSE PROXY

๐Ÿ”ง Docker Images Fixes
Pinned Docker image versions to improve stability:

remnawave/backend: from latest to 1.6.16
remnawave/node: from latest to 1.6.4

๐Ÿ›ก๏ธ Security and Stability Improvements
Added container existence checks before performing template operations:

Check for remnawave container in the function manage_template_upload
Check for remnawave-subscription-page container in the function manage_sub_page_upload

If container is missing, an appropriate error message is shown