Skip to content

Instantly share code, notes, and snippets.

@sm1ky
Created August 4, 2025 02:07
Show Gist options
  • Select an option

  • Save sm1ky/615a7b188a6db1ce3743804de33a46a0 to your computer and use it in GitHub Desktop.

Select an option

Save sm1ky/615a7b188a6db1ce3743804de33a46a0 to your computer and use it in GitHub Desktop.
install remna node
#!/bin/bash
# Remnawave Node Installation Script
set -e
# Colors for output
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color
# Logging function
log() {
echo -e "${BLUE}[$(date +'%Y-%m-%d %H:%M:%S')]${NC} $1"
}
error() {
echo -e "${RED}[ERROR]${NC} $1" >&2
}
success() {
echo -e "${GREEN}[SUCCESS]${NC} $1"
}
warning() {
echo -e "${YELLOW}[WARNING]${NC} $1"
}
# Check if SSL_CERT is provided
if [ -z "$1" ]; then
error "SSL certificate is required!"
echo "Usage: $0 <SSL_CERT>"
exit 1
fi
SSL_CERT="$1"
log "Starting Remnawave Node installation..."
# Update system
log "Updating system packages..."
if ! sudo apt-get update --allow-insecure-repositories --allow-releaseinfo-change -o Acquire::ForceIPv4=true -o Acquire::Check-Valid-Until=false -o Acquire::Max-FutureTime=864000; then
warning "System update failed, continuing anyway..."
fi
# Install required packages
log "Installing required packages..."
sudo apt-get install -y curl ufw
# Install Docker
log "Installing Docker..."
if ! command -v docker &> /dev/null; then
sudo curl -fsSL https://get.docker.com | sh
success "Docker installed successfully"
else
log "Docker is already installed"
fi
# Create remnawave-node directory
log "Creating Remnawave Node directory..."
sudo mkdir -p /opt/remnawave-node
cd /opt/remnawave-node
# Create .env file
log "Creating environment configuration..."
sudo tee .env > /dev/null <<EOF
APP_PORT=2222
SSL_CERT=${SSL_CERT}
EOF
# Create log directory
log "Creating log directory..."
sudo mkdir -p /var/log/remnanode
# Create docker-compose.yml
log "Creating Docker Compose configuration..."
sudo tee docker-compose.yml > /dev/null <<'EOF'
services:
remnanode:
container_name: remnanode
hostname: remnanode
image: remnawave/node:latest
restart: always
network_mode: host
env_file:
- .env
volumes:
- /var/log/remnanode:/var/log/remnanode
EOF
# Start the service
log "Starting Remnawave Node service..."
if sudo docker compose up -d; then
success "Remnawave Node started successfully!"
else
error "Failed to start Remnawave Node"
exit 1
fi
# Wait a moment for the service to start
sleep 5
# Check if container is running
log "Checking service status..."
if sudo docker ps | grep -q "remnanode"; then
success "Remnawave Node is running!"
log "Container status:"
sudo docker ps --filter "name=remnanode" --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
else
error "Remnawave Node is not running. Check logs:"
sudo docker logs remnanode
exit 1
fi
success "Remnawave Node installation completed successfully!"
log "Service is accessible on port 2222"
log "Logs can be viewed with: sudo docker logs remnanode"
log "To stop the service: cd /opt/remnawave-node && sudo docker compose down"
log "To restart the service: cd /opt/remnawave-node && sudo docker compose restart"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment