Collection of automation scripts and utilities for RemnaWave project. Features deployment tools, configuration management, and workflow automation scripts to streamline development and operations https://gig.ovh
  • Shell 58.2%
  • JavaScript 37.2%
  • CSS 4%
  • HTML 0.6%
Find a file
Alexey 49dd4cac93 Set default subpage app name; remove healthcheck
Add a default APP_NAME value for the install-subpage-standalone command (remnasub) to avoid missing app name during that install path. Invoke install_remnawave_script during install to place the CLI script in /usr/local/bin before pulling the container. Remove the subscription-page service healthcheck block from the generated docker-compose to simplify startup behavior.
2026-03-03 19:11:10 +03:00
.github docs: add Git workflow and PR creation instructions for Copilot 2026-02-15 23:49:01 +03:00
docs Add tdl docs; improve wtm error handling 2026-02-04 01:48:19 +03:00
sni-templates fixed downloads 2025-06-20 23:23:12 +03:00
.gitignore chore: idea directory removed from git indexing 2026-01-11 20:51:58 +03:00
AWESOME.MD Update AWESOME.MD 2025-07-06 22:55:55 +03:00
netbird.sh Bump script to v1.4.2 and fix set flags 2026-02-04 18:35:48 +03:00
news.md Create news.md 2025-07-06 22:56:14 +03:00
README-netbird.md Enforce README sync; update netbird and wtm docs 2026-02-04 02:01:46 +03:00
README-selfsteal.md Add force install mode and manual SSL support 2026-01-31 00:46:07 +03:00
README-warp.md Enforce README sync; update netbird and wtm docs 2026-02-04 02:01:46 +03:00
README.md Add NET_ADMIN migration & compose audit 2026-02-25 00:37:33 +03:00
README_RU.md Add NET_ADMIN migration & compose audit 2026-02-25 00:37:33 +03:00
remnanode-xray-update.sh Improve docker-compose volume update logic 2025-08-19 18:40:42 +03:00
remnanode.sh Bump to 4.2.1; preserve commented volumes 2026-02-25 00:48:18 +03:00
remnawave-api-v222.yaml Add env var migration and update RemnaNode to v3.3.0 2025-10-26 18:07:44 +03:00
remnawave-backup.sh Update remnawave-backup.sh 2025-07-06 19:50:34 +03:00
remnawave-script.webp обновление 2025-07-05 01:49:25 +03:00
remnawave.sh Set default subpage app name; remove healthcheck 2026-03-03 19:11:10 +03:00
restore.sh Update restore.sh 2025-05-22 18:35:59 +03:00
selfsteal.sh Add ACME TLS-ALPN iptables redirect support 2026-02-08 13:59:57 +03:00
wtm-news.md Add WTM news, improve install and diagnostics 2025-07-07 11:19:40 +03:00
wtm.sh Add tdl docs; improve wtm error handling 2026-02-04 01:48:19 +03:00

Remnawave Scripts

License: MIT Shell Version Localization

remnawave-script

TL;DR: One-liner scripts to deploy and manage Remnawave Panel, RemnaNode, and Reality traffic masking via Docker. Includes backup/restore, Telegram notifications, Caddy reverse proxy, and bilingual CLI (EN/RU).

📖 Readme на русском · 💬 Support


🚀 Quick Start

# Remnawave Panel
bash <(curl -Ls https://github.com/DigneZzZ/remnawave-scripts/raw/main/remnawave.sh) @ install

# RemnaNode
bash <(curl -Ls https://github.com/DigneZzZ/remnawave-scripts/raw/main/remnanode.sh) @ install

# Caddy Selfsteal (Reality masking)
bash <(curl -Ls https://github.com/DigneZzZ/remnawave-scripts/raw/main/selfsteal.sh) @ install

After installation, manage services with: remnawave, remnanode, or selfsteal commands.


📦 What's Included

Script Purpose Install Command
remnawave.sh Panel installer & manager remnawave <command>
remnanode.sh Node installer & manager remnanode <command>
selfsteal.sh Reality traffic masking selfsteal <command>
wtm.sh WARP & Tor Manager wtm <command>
netbird.sh NetBird VPN installer netbird.sh <command>

Key features across all scripts: auto-updates, interactive menus, bilingual interface (EN/RU), Docker Compose v2, idempotent operations.


🚀 Remnawave Panel

Full installer and manager for Remnawave Panel with backup/restore, Caddy proxy, Telegram integration, and subscription page management.

Installation

# Standard install
bash <(curl -Ls https://github.com/DigneZzZ/remnawave-scripts/raw/main/remnawave.sh) @ install

# With options
bash <(curl -Ls https://github.com/DigneZzZ/remnawave-scripts/raw/main/remnawave.sh) @ install --name panel-prod --dev
Flag Description
--name NAME Custom installation directory name
--dev Install development version

Commands

📋 All Panel Commands
Command Description
install Install Remnawave Panel
install-script Install management script only
update Update script and containers
uninstall Remove panel completely
up / down / restart Service lifecycle
status Show service status
logs View container logs (--follow)
edit Edit docker-compose.yml
edit-env Edit .env file
console Access panel CLI console
backup Create backup (--data-only, --no-compress)
restore Restore from backup (--file FILE, --database-only)
schedule Manage scheduled backups
subpage Subscription page settings
subpage-token Configure API token
subpage-restart Restart subscription-page
install-subpage Install subscription-page only
install-subpage-standalone Install subpage on separate server (--with-caddy)
caddy / caddy up / caddy down Caddy management
caddy logs / caddy edit Caddy logs & config
caddy restart / caddy uninstall Caddy lifecycle
caddy reset-user Reset Caddy admin password

Highlights

  • Auto-generation of .env, secrets, ports, docker-compose.yml
  • Admin auto-creation — credentials saved to admin-credentials.txt
  • Caddy Reverse Proxy — Simple mode (auto SSL) or Secure mode (auth portal + MFA)
  • Backup system — full/DB-only backups, cron scheduling, Telegram delivery, version-aware restore → see 💾 Backup, Restore & Migration
  • Variable migration — deprecated env vars auto-removed on update (v2.2.0+)
🌐 Standalone Subscription-Page

Install subscription-page on a separate server connecting to your main panel via API:

bash <(curl -Ls https://github.com/DigneZzZ/remnawave-scripts/raw/main/remnawave.sh) @ install-subpage-standalone --with-caddy

The installer asks for panel URL, API token, and subscription domain, then generates a minimal docker-compose without DB dependencies.

📱 Telegram Integration

Configure in .env:

IS_TELEGRAM_NOTIFICATIONS_ENABLED=true
TELEGRAM_BOT_TOKEN=your_bot_token
TELEGRAM_NOTIFY_USERS_CHAT_ID=your_chat_id
TELEGRAM_NOTIFY_NODES_CHAT_ID=your_chat_id

Supports backup notifications, large file delivery (>50MB chunked), and thread-based group chats.

🔄 Variable Migration (v2.2.0+)

On remnawave update, deprecated env vars (OAuth, Branding) are auto-removed from .env with backup. Configure them in Panel UI instead:

  • Settings → Authentication → Login Methods (OAuth)
  • Settings → Branding (Logo, title)
📂 File Structure
/opt/remnawave/
├── .env, .env.subscription
├── docker-compose.yml
├── app-config.json, backup-config.json
├── backup-scheduler.sh
├── backups/              # Backup storage
└── logs/                 # Operation logs

/opt/caddy-remnawave/     # Caddy (if installed)
├── docker-compose.yml, Caddyfile, .env
└── data/                 # SSL certs

/usr/local/bin/remnawave  # CLI command

💾 Backup, Restore & Migration

Built-in backup system in remnawave.sh with version-aware restore, cron scheduling, and Telegram delivery.

Backup

remnawave backup                    # Full system backup (compressed .tar.gz)
remnawave backup --data-only        # Database only (.sql.gz)
remnawave backup --no-compress      # Uncompressed backup

Scheduled Backups

remnawave schedule                  # Interactive cron schedule setup

Options: daily/weekly/monthly intervals, retention policies, compression settings, Telegram delivery.

Restore

remnawave restore --file backup.tar.gz                  # Full restore (auto safety backup)
remnawave restore --database-only --file database.sql.gz # Database only

Version checking: major/minor versions must match for restore; patch differences show warnings but are allowed.

Migration to Another Server

  1. Create a backup on the source server:
    remnawave backup
    
  2. Transfer the backup file to the target server (e.g., via scp)
  3. On the target server, install and restore:
    bash <(curl -Ls https://github.com/DigneZzZ/remnawave-scripts/raw/main/remnawave.sh) @ install --name remnawave
    remnawave restore --file backup.tar.gz
    
🛠 Manual Restore (if automatic fails)
# Option A: New installation
sudo bash remnawave.sh @ install --name remnawave
sudo remnawave down
tar -xzf backup.tar.gz
cat backup_folder/database.sql | docker exec -i -e PGPASSWORD="password" remnawave-db psql -U postgres -d postgres
sudo remnawave up

# Option B: Existing installation
sudo remnawave down
cat database.sql | docker exec -i -e PGPASSWORD="password" remnawave-db psql -U postgres -d postgres
sudo remnawave up

🛰 RemnaNode

Installer and manager for RemnaNode proxy nodes with Xray-core integration. Multi-architecture support (x86_64, ARM64, ARM32, MIPS).

Installation

# Interactive
bash <(curl -Ls https://github.com/DigneZzZ/remnawave-scripts/raw/main/remnanode.sh) @ install

# Non-interactive (force mode)
bash <(curl -Ls https://github.com/DigneZzZ/remnawave-scripts/raw/main/remnanode.sh) @ install \
    --force --secret-key="KEY" --port=3001 --xray
Flag Description Default
--force, -f Skip all confirmations
--secret-key=KEY SECRET_KEY from Panel (required in force mode)
--port=PORT NODE_PORT 3000
--xtls-port=PORT XTLS_API_PORT 61000
--xray / --no-xray Install Xray-core not installed in force mode
--name NAME Directory name remnanode
--dev Development image

Commands

📋 All Node Commands
Command Description
install Install RemnaNode
install-script Install script only
update Update script and container
uninstall Remove node
up / down / restart Service lifecycle
status / logs Status & logs
core-update Update Xray-core binary
edit / edit-env Edit configs
setup-logs Configure log rotation
xray_log_out / xray_log_err Xray real-time logs

Highlights

  • Xray-core — auto-detection, interactive version selection, pre-release support
  • NET_ADMIN capability (v4.2.0+) — auto-added for IP Management features (view/drop user connections). Auto-migrated on update
  • Log rotation — 50MB max, 5 files, compressed, no downtime
  • Config migration (v2.2.2+) — APP_PORTNODE_PORT, SSL_CERTSECRET_KEY (auto on update)
  • Dual config — supports both .env and inline docker-compose variables
📂 File Structure
/opt/remnanode/
├── .env
└── docker-compose.yml

/var/lib/remnanode/       # Xray binary & logs
/usr/local/bin/remnanode  # CLI command
/etc/logrotate.d/remnanode

🎭 Caddy Selfsteal (Reality Masking)

Deploy Caddy as a Reality traffic masking solution with professional website templates for HTTPS camouflage.

Installation

bash <(curl -Ls https://github.com/DigneZzZ/remnawave-scripts/raw/main/selfsteal.sh) @ install

Commands

Command Description
install / uninstall Install or remove
up / down / restart Service lifecycle
status / logs Status & logs
template Manage website templates
edit Edit Caddyfile
guide Reality integration guide
update Update script

Templates

8 pre-built website templates: 10gag, converter, downloader, filecloud, games-site, modmanager, speedtest, YouTube.

selfsteal template list              # List templates
selfsteal template install converter # Install template

Xray Reality config:

{ "realitySettings": { "dest": "127.0.0.1:9443", "serverNames": ["your-domain.com"] } }
📂 File Structure
/opt/caddy/
├── .env, docker-compose.yml, Caddyfile
├── logs/
└── html/           # Template content
    ├── index.html, 404.html
    └── assets/

/usr/local/bin/selfsteal

⚙️ System Requirements

Minimum Recommended
CPU 1 core 2+ cores
RAM 512 MB 2 GB+
Storage 2 GB 10 GB+ SSD
Network Stable 100 Mbps+

OS: Ubuntu 18.04+, Debian 10+, CentOS 7+, AlmaLinux 8+, Fedora 32+, Arch, openSUSE 15+

Dependencies (auto-installed): Docker Engine, Docker Compose V2, curl, openssl, jq, tar/gzip


🔐 Security

  • Services bind to 127.0.0.1 by default
  • Auto-generated DB credentials, JWT secrets, API tokens
  • UFW/firewalld guidance during setup
  • SSL/TLS via Caddy with DNS validation
🔒 Production Hardening
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow ssh
sudo ufw allow from trusted_ip to any port panel_port
sudo ufw enable

📊 Monitoring & Logs

remnawave status && remnanode status && selfsteal status  # Service status
remnawave logs --follow    # Real-time logs
docker stats               # Resource usage
📋 Log Locations
Component Path
Panel /opt/remnawave/logs/
Node (Xray) /var/lib/remnanode/
Caddy /opt/caddy/logs/

Log rotation: 50MB max, 5 files kept, compressed automatically.


🧩 Other Scripts

This repository also includes additional utility scripts for network management and VPN setup.

🌐 WTM — WARP & Tor Manager

Professional tool for managing Cloudflare WARP and Tor on Linux servers. Includes XRay integration, interactive menus, and auto-updates.

# Install as global command
sudo bash <(curl -Ls https://github.com/DigneZzZ/remnawave-scripts/raw/main/wtm.sh) @ install-script

# Or run directly
bash <(curl -Ls https://github.com/DigneZzZ/remnawave-scripts/raw/main/wtm.sh)

# Install both WARP and Tor
sudo wtm install-all

Key features: WARP (WireGuard), Tor SOCKS5 proxy, XRay routing for .onion domains, connection testing, service monitoring.

📖 Full documentation: README-warp.md

🐦 NetBird — VPN Installer

Quick installer for NetBird mesh VPN. Supports CLI, cloud-init, interactive menu, and Ansible modes.

# CLI installation
bash <(curl -Ls https://github.com/DigneZzZ/remnawave-scripts/raw/main/netbird.sh) install --key YOUR-SETUP-KEY

# Auto-install for cloud-init / provisioning
bash <(curl -Ls https://github.com/DigneZzZ/remnawave-scripts/raw/main/netbird.sh) init --key YOUR-SETUP-KEY

# Interactive menu
bash <(curl -Ls https://github.com/DigneZzZ/remnawave-scripts/raw/main/netbird.sh) menu

Key features: one-liner install, SSH access between peers (--ssh), auto-firewall setup (UFW/firewalld), Ansible-friendly mode.

📖 Full documentation: README-netbird.md


🤝 Contributing

  1. Fork → branch → make changes → test → PR
  2. Follow existing code style, test on multiple distros
  3. Check existing issues before reporting bugs

📜 License

MIT License — free for commercial and private use.


Star this project if you find it useful!

Report Bug · Request Feature · Community: gig.ovh