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
# 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) @ installAfter installation, manage services with: remnawave, remnanode, or selfsteal commands.
| 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.
Full installer and manager for Remnawave Panel with backup/restore, Caddy proxy, Telegram integration, and subscription page management.
# 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 |
π 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 |
- 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-caddyThe 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_idSupports 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
Built-in backup system in remnawave.sh with version-aware restore, cron scheduling, and Telegram delivery.
remnawave backup # Full system backup (compressed .tar.gz)
remnawave backup --data-only # Database only (.sql.gz)
remnawave backup --no-compress # Uncompressed backupremnawave schedule # Interactive cron schedule setupOptions: daily/weekly/monthly intervals, retention policies, compression settings, Telegram delivery.
remnawave restore --file backup.tar.gz # Full restore (auto safety backup)
remnawave restore --database-only --file database.sql.gz # Database onlyVersion checking: major/minor versions must match for restore; patch differences show warnings but are allowed.
- Create a backup on the source server:
remnawave backup
- Transfer the backup file to the target server (e.g., via
scp) - 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 upInstaller and manager for RemnaNode proxy nodes with Xray-core integration. Multi-architecture support (x86_64, ARM64, ARM32, MIPS).
# 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 | β |
π 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 |
auto-restart |
Configure scheduled auto-restart (enable/disable/status/test) |
- 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_PORTβNODE_PORT,SSL_CERTβSECRET_KEY(auto onupdate) - Dual config β supports both
.envand 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
Deploy Caddy as a Reality traffic masking solution with professional website templates for HTTPS camouflage.
bash <(curl -Ls https://github.com/DigneZzZ/remnawave-scripts/raw/main/selfsteal.sh) @ install| 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 |
8 pre-built website templates: 10gag, converter, downloader, filecloud, games-site, modmanager, speedtest, YouTube.
selfsteal template list # List templates
selfsteal template install converter # Install templateXray 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
| 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
- Services bind to
127.0.0.1by 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 enableremnawave 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.
This repository also includes additional utility scripts for network management and VPN setup.
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-allKey features: WARP (WireGuard), Tor SOCKS5 proxy, XRay routing for .onion domains, connection testing, service monitoring.
π Full documentation: README-warp.md
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) menuKey features: one-liner install, SSH access between peers (--ssh), auto-firewall setup (UFW/firewalld), Ansible-friendly mode.
π Full documentation: README-netbird.md
- Fork β branch β make changes β test β PR
- Follow existing code style, test on multiple distros
- Check existing issues before reporting bugs
MIT License β free for commercial and private use.
β Star this project if you find it useful!
