Skip to content

install quick

psyray edited this page Feb 15, 2025 · 3 revisions

Quick Install reNgine-ng on Ubuntu

  1. Clone reNgine-ng

Caution

reNgine-ng must not be cloned under the root user or any folder that need root permissions to be accessed (like /opt), this will create permission issues with the mounted volumes and Celery container will not start

```
git clone https://github.com/Security-Tools-Alliance/rengine-ng && cd rengine-ng
```
  1. Copy the .env-dist file to .env and edit the file using nano .env or vi .env or vim .env.

Important

please make sure to change the password for postgresql POSTGRES_PASSWORD and superuser DJANGO_SUPERUSER_PASSWORD (only if you use non interactive installation)!

And also set the PGUSER value to the same value as POSTGRES_USER to avoid issues with the db container, like FATAL: role "rengine" does not exist"

**Sample .env file**

```
#
# General
#
COMPOSE_PROJECT_NAME=rengine

#
# SSL specific configuration
#
AUTHORITY_NAME=reNgine-ng
AUTHORITY_PASSWORD=nSrmNkwT
COMPANY=reNgine-ng
DOMAIN_NAME=rengine-ng.example.com
COUNTRY_CODE=US
STATE=Georgia
CITY=Atlanta

#
# Database configurations
#
POSTGRES_DB=rengine
POSTGRES_USER=rengine
PGUSER=rengine
POSTGRES_PASSWORD=hE2a5@K&9nEY1fzgA6X
POSTGRES_PORT=5432
POSTGRES_HOST=db

#
# Celery Scaling Configurations
# The number of CONCURRENCY defines how many scans will run in parallel
# Please always keep minimum of 5
#
MIN_CONCURRENCY=5
MAX_CONCURRENCY=30

#
# This section is for non-interactive install only
#
# Rengine install type (prebuilt or source)
INSTALL_TYPE=prebuilt
# Rengine web interface super user
DJANGO_SUPERUSER_USERNAME=rengine
[email protected]
DJANGO_SUPERUSER_PASSWORD=Sm7IJG.IfHAFw9snSKv
```

## .env Explained

* **COMPOSE_PROJECT_NAME**: This will help reNgine-ng name docker containers as rengine_web_1, rengine_celery_1 etc. <small>(Making changes is Optional)</small>

* **AUTHORITY_NAME**: SSL Authority Name
* **AUTHORITY_PASSWORD**: SSL Authority Password
* **COMPANY**: Company Name to generate SSL to
* **DOMAIN_NAME**: Domain where reNgine-ng is going to be installed
* **COUNTRY_CODE, STATE, CITY**: SSL Speciffc

* **POSTGRES_DB**: DB name for Postgres <small>(Making changes is Optional)</small>
* **POSTGRES_USER**: Postgres Username for DB auth purpose <small>(Making changes is Optional)</small>
* **POSTGRES_PASSWORD**: Postgres Password for DB auth purpose <strong>(Please change the default Postgres Password)</strong>
* **POSTGRES_PORT**: Postgres Port <small>(Making changes is Optional)</small>
* **POSTGRES_HOST**: Postgres HOST <small>(Making changes is Optional)</small>

* **MIN_CONCURRENCY**: Minimum number of Concurrency for Celery.
* **MAX_CONCURRENCY**: Maximum number of Concurrency for Celery. This determines how many maximum number of scans to run in parallel.

### Non-interactive section

**This section is for non-interactive install only**
* **INSTALL_TYPE**: Install type, either prebuilt or source
* **DJANGO_SUPERUSER_USERNAME**: Superuser username for the reNgine-ng web interface
* **DJANGO_SUPERUSER_EMAIL**: Superuser email for the reNgine-ng web interface
* **DJANGO_SUPERUSER_PASSWORD**: Superuser password for the reNgine-ng web interface

## Determining CONCURRENCY Values

Here is the ideal value for MIN_CONCURRENCY and MAX_CONCURRENCY depending on the number of RAM your machine has:

* <strong>4GB</strong>: `MAX_CONCURRENCY=10`
* <strong>8GB</strong>: `MAX_CONCURRENCY=30`
* <strong>16GB</strong>: `MAX_CONCURRENCY=50`

This is just an ideal value which developers have tested and tried out and works! But feel free to play around with the values.

Maximum number of scans is determined by various factors, your network bandwith, RAM, number of CPUs available. etc
  1. Run the installation script, Please keep an eye for any prompt, you will also be asked for username and password for reNgine-ng UI.

    sudo ./install.sh
    

    if ./install.sh does not have install permission, please add executable permission, chmod +x install.sh.

    During the install you've been asked to choose the install type, you can choose either prebuilt or source.

    • Prebuilt is the recommended way to install reNgine-ng, it will download the prebuilt docker image from the github releases. On a good Internet connection install duration is around 5 minutes.

    • Source will build the docker image from the source code, this is useful if you want to modify the code or debug the image. On a good Internet connection and a powerful machine, install duration is around 30 minutes. This could be longer depending on your machine specs.

Tip

reNgine-ng install has a non-interactive mode, you can use it by adding -n flag to the install.sh script, this will skip the interactive mode and use the .env file to install reNgine-ng.

You must edit the non-interactive section .env file to set the correct values for the install type, superuser name, email and password.

  1. Installation will continue and dependencies will be installed (CURL, Docker, Docker Compose and make)

Note

Dependencies installation is mandatory to continue

![](/static/install/dependencies.png)
  1. Images are pulled or built, this may take a while depending on your machine specs.

  2. Containers are created and started, this may take a while depending on your machine specs.

  3. You will be asked to create account for reNgine-ng, please choose a strong password.

reNgine-ng can now be accessed from https://127.0.0.1, the local IP address on your network or if you're on the VPS https://your_vps_ip_address

Note

Those IPs are shown at the end of the process.

Getting Started


  • Home - Introduction to reNgine-ng with workflows and features
  • Installation - Install reNgine-ng in different ways
  • Usage - Common usage and best practices
  • Backup-Restore - Backup and restore reNgine-ng easily

Advanced Usage


  • Dependencies - Information about used third-party libraries and tools
  • Security - Security best practices and reporting issues
  • Support - Troubleshooting guide and common issues
  • Changelog - Complete changelog

Community


Clone this wiki locally