Detailed Installation Guide

Step-by-step manual installation for all operating systems

Last updated: July 11, 2024

Detailed Installation Guide

This guide provides step-by-step manual installation instructions for all supported operating systems. Use this if the quick installation script doesn’t work for your environment.

System Requirements

Minimum Requirements

Ensure your system meets these requirements before proceeding with installation.

Component Minimum Recommended
RAM 4GB 8GB+
Storage 20GB free 50GB+
CPU 2 cores 4+ cores
OS Ubuntu 20.04, Debian 10, CentOS 8 Latest LTS versions

Prerequisites Installation

Ubuntu/Debian Systems

Update System Packages
sudo apt update && sudo apt upgrade -y
Install Required Packages
sudo apt install -y curl wget git make build-essential

Install Docker

Install Docker
# Add Docker's official GPG key
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

# Add Docker repository
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# Install Docker Engine
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io

# Add user to docker group
sudo usermod -aG docker $USER

Install Docker Compose

Install Docker Compose
# Download Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

# Make executable
sudo chmod +x /usr/local/bin/docker-compose

# Verify installation
docker-compose --version

CentOS/RHEL Systems

Install Prerequisites (CentOS/RHEL)
# Update system
sudo yum update -y

# Install required packages
sudo yum install -y curl wget git make gcc gcc-c++

# Install Docker
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io

# Start and enable Docker
sudo systemctl start docker
sudo systemctl enable docker
sudo usermod -aG docker $USER

macOS Installation

Install Prerequisites (macOS)
# Install Homebrew if not already installed
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# Install required packages
brew install git make

# Install Docker Desktop for Mac
# Download from: https://www.docker.com/products/docker-desktop
# Or install via Homebrew Cask:
brew install --cask docker

Windows Installation

For Windows users, we recommend using WSL2 (Windows Subsystem for Linux):

  1. Enable WSL2:
    wsl --install
    
  2. Install Ubuntu from Microsoft Store

  3. Follow Ubuntu installation steps in the WSL2 environment

Windows Native

While possible to run rengine natively on Windows, we strongly recommend using WSL2 for better compatibility and performance.

rengine Installation

Step 1: Clone Repository

Clone rengine Repository
git clone https://github.com/yogeshojha/rengine.git
cd rengine

Step 2: Environment Configuration

Copy Environment File
cp .env.example .env

Edit the .env file with your preferred settings:

Edit Configuration
nano .env

Key configuration options:

# Database settings
POSTGRES_DB=rengine
POSTGRES_USER=rengine
POSTGRES_PASSWORD=your_secure_password

# Django settings
SECRET_KEY=your_secret_key_here
DEBUG=False

# rengine specific settings
DEFAULT_ENABLE_HTTP_CRAWL=True
DEFAULT_ENABLE_AGGRESSIVE_SCAN=False

Step 3: Build and Start Services

Build Docker Images
make build
Start Services
make up

Step 4: Initialize Database

Run Database Migrations
make migrate

Step 5: Create Superuser

Create Admin User
make superuser

Enter your desired admin credentials when prompted.

Step 6: Load Initial Data

Load Sample Data (Optional)
make load-fixtures

Verification

Check Service Status

Verify All Services
docker-compose ps

All services should show “Up” status:

Name                Command               State           Ports
----------------------------------------------------------------
rengine_web         /app/entrypoint.sh               Up      0.0.0.0:8000->8000/tcp
rengine_celery      celery -A rengine worker         Up
rengine_redis       docker-entrypoint.sh redis      Up      6379/tcp
rengine_postgres    docker-entrypoint.sh postgres   Up      5432/tcp

Access Web Interface

  1. Open browser and navigate to: http://localhost:8000
  2. Log in with your superuser credentials
  3. You should see the rengine dashboard

Test Installation

Run a quick test to ensure everything works:

Test Installation
make test

Troubleshooting

Docker Issues

Docker daemon not running:

Start Docker Service
sudo systemctl start docker
sudo systemctl enable docker

Permission denied errors:

Fix Docker Permissions
# Log out and back in after adding user to docker group
# Or use newgrp to refresh group membership
newgrp docker

Build Failures

Out of disk space:

Clean Docker Images
docker system prune -a --volumes

Network issues during build:

Retry with Clean Build
make clean
make build --no-cache

Port Conflicts

If port 8000 is already in use:

  1. Edit docker-compose.yml
  2. Change the port mapping: "8080:8000"
  3. Restart services: make restart

Performance Optimization

Memory Optimization

For systems with limited RAM, adjust worker processes:

docker-compose.override.yml
version: '3.8'
services:
  celery:
    command: celery -A rengine worker --concurrency=2 --loglevel=info
  celery_beat:
    command: celery -A rengine beat --loglevel=info

Storage Optimization

Configure log rotation and cleanup:

Setup Log Rotation
# Add to crontab
0 2 * * * docker system prune -f
0 3 * * 0 docker volume prune -f

Security Hardening

Change Default Ports

Edit docker-compose.yml to use non-standard ports:

ports:
  - "8443:8000"  # Change from default 8000

Enable HTTPS

For production deployments, configure SSL/TLS:

  1. Obtain SSL certificates
  2. Configure reverse proxy (nginx/Apache)
  3. Update ALLOWED_HOSTS in Django settings

Production Security

Never use default credentials in production. Always use strong passwords, enable HTTPS, and restrict network access.

Next Steps

With rengine successfully installed:

  1. Configure your first scan target →
  2. Set up notifications →
  3. Explore advanced configuration →

Alternative Installation Methods


Need help? Join our community discussions or check the troubleshooting guide.