Skip to content

rConfig - Manual Offline Installation

15 mins V8 Pro

While rConfig can be installed quickly using our automated scripts, some environments require a fully offline setup for security reasons. This guide provides step-by-step instructions to manually install rConfig on CentOS, RHEL, AWS, or Rocky Linux 8.0 and later. Note that package management and locations are your responsibility; the script serves as a reference to help you complete the installation securely and efficiently.

System Requirements

RequirementSupported Versions
Operating SystemCentOS/RHEL/AWS/Rocky Linux 8.0+
Web ServerApache 2.4+
Database Server

MariaDB 11+ • MySQL 5.7+ • PostgreSQL 13+ (Enterprise only)

PHP Version8.4+ (strictly required)
Redis6.0+

Note: Package management and locations are your responsibility. Ensure all packages are available in your offline environment before proceeding.

📋 System Preparation
  • Check OS Version: CentOS, RHEL, AWS, or Rocky Linux 8.0+
  • Disable SELinux & reboot (advanced users can skip)
  • Update system to latest packages
📦 Package Installation
  • Core tools: yum-utils, vim, zip, unzip, wget, curl
  • Security: openssl-devel, openssl, mod_ssl
  • Services: supervisord, redis, apache 2.4+, mariadb 11++/mysql5.7+/postgresql 13+
  • PHP 8.4+: php, php-cli, php-gd, php-curl, php-mysql, php-ldap, php-zip, php-fileinfo, php-pear, php-mbstring, php-common, php-pdo, php-ldap, php-gmp, php-snmp
⚙️ Service Configuration
  • Set permissions: chown -R apache:apache /var/www/html
  • Start services: httpd, mariadb, redis, supervisord
  • Open firewall ports: 80, 443
  • Verify versions match requirements above
  • Run MySQL secure installation

Beginners: Disable SELinux by editing /etc/selinux/config → set SELINUX=disabled → reboot
Advanced users: Configure SELinux policies for rConfig and Apache


Make sure to follow the installation steps for new installations ONLY. Updates, see the update section below.

  1. Download the latest rConfig Zip file from the rConfig website (replace APITOKEN with your API token)

    Terminal window
    curl -sw '%{http_code}' -o rconfig8-vectorserver.zip -d '{"api_token":"APITOKEN"}' -H "Content-Type: application/json" -X POST https://dl.rconfig.com/api/download-vector-server8?=$(date +%s)
  2. Create the following directories:

    Terminal window
    currentReleaseDir=$(date '+%Y%m%d%H%M%S')
    mkdir /var/www/html/rconfig8
    mkdir /var/www/html/rconfig8/releases
    mkdir /var/www/html/rconfig8/releases/$currentReleaseDir
    mkdir /var/www/html/rconfig8/persistentData
  3. If required, copy the previously downloaded zip file to the offline server. Unzip the file to /var/www/html/rconfig8/releases/$currentReleaseDir

    Terminal window
    unzip rconfig8-vectorserver.zip -d /var/www/html/rconfig8/releases/$currentReleaseDir/
    cd /var/www/html/rconfig8/releases/$currentReleaseDir/
    mv rconfig8/{,.[^.]}* .
  4. From the newly created releases directory copy the following files:

    Terminal window
    cp /var/www/html/rconfig8/releases/$currentReleaseDir/.env.example /var/www/html/rconfig8/persistentData/.env
    cp /var/www/html/rconfig8/releases/$currentReleaseDir/horizon_supervisor.ini /var/www/html/rconfig8/persistentData/horizon_supervisor.ini
    cp /var/www/html/rconfig8/releases/$currentReleaseDir/rconfig-vhost.conf /var/www/html/rconfig8/persistentData/rconfig-vhost.conf
    cp -r /var/www/html/rconfig8/releases/$currentReleaseDir/storage /var/www/html/rconfig8/persistentData/storage
    mv /var/www/html/rconfig8/releases/$currentReleaseDir/storage /var/www/html/rconfig8/releases/$currentReleaseDir/storage_old
  5. Delete the zip file

    Terminal window
    cd /var/www/html/
    rm -f rconfig8-vectorserver.zip
  6. Create a symlink to the current release directory

    Terminal window
    ln -s /var/www/html/rconfig8/releases/$currentReleaseDir /var/www/html/rconfig8/current
  7. Create a symlink to the persistentData directory. This command creates a symbolic link (soft link) named storage inside the /var/www/html/rconfig8/current/ directory that points to the directory /var/www/html/rconfig8/persistentData

    Terminal window
    ln -s /var/www/html/rconfig8/persistentData/storage /var/www/html/rconfig8/current/storage
  8. Create symlink for .env file

    Terminal window
    ln -s /var/www/html/rconfig8/persistentData/.env /var/www/html/rconfig8/current/.env
  9. Create a new database in mysql

    Terminal window
    mysql -u root -p
    create database rconfig;
    exit

    Create a user and password for your database. An example is provided below, but be sure to update the username and password to something more secure and unique. The grant statement below does create the user and grant them privileges in one go.

    Terminal window
    GRANT ALL PRIVILEGES ON rconfig.* TO 'user1'@localhost IDENTIFIED BY 'password1';
    FLUSH PRIVILEGES;
    quit;
  10. change to current directory

    Terminal window
    cd /var/www/html/rconfig8/current
  11. Edit the .env file and replace the follow placeholder text with the correct values for each of the following:

    Terminal window
    vim .env
    ENVOY_APP_DEBUG=false
    ENVOY_APP_URL=https://YOUHOSTNAME.COM
    ENVOY_DBHOST=localhost (if local)
    ENVOY_DBPORT=3306
    ENVOY_DBNAME=rconfig
    ENVOY_DBUSER=your_db_user
    ENVOY_DBPASS=your_db_password
    ENVOY_RCONFIG_API_TOKEN=your_api_token
    # Set to true to use hard links for duplicate files
    HARD_LINK=true
  12. Edit the supervisor config file (persistentData/horizon_supervisor.ini) and replace the follow placeholder text with the correct values for each of the following:

    Terminal window
    vi /var/www/html/rconfig8/persistentData/horizon_supervisor.ini
    ENVOY_ARTISAN = /var/www/html/rconfig8/current/artisan
    ENVOY_STORAGE = /var/www/html/rconfig8/current/storage
  13. Link the supervisor config file to the supervisor config directory

    Terminal window
    ln -s /var/www/html/rconfig8/persistentData/horizon_supervisor.ini /etc/supervisord.d/horizon_supervisor.ini
  14. Setup apache to use the rconfig.conf file

    Terminal window
    cp /var/www/html/rconfig8/persistentData/rconfig-vhost.conf /etc/httpd/conf.d/rconfig-vhost.conf
  15. Edit the apache config file (rconfig-vhost.conf) and replace the follow placeholder text with the correct values for each of the following:

    Terminal window
    vim /etc/httpd/conf.d/rconfig-vhost.conf
    ENVOY_SERVERNAME=YOUHOSTNAME.COM
    ENVOY_SERVERALIAS=YOUHOSTNAME.COM
    ENVOY_DOCROOT= /var/www/html/rconfig8
  16. Add the laravel Cron Job

    Terminal window
    crontab -e
    * * * * * php /var/www/html/rconfig8/current/artisan schedule:run >> /dev/null 2>&1
    # save and exit
    # verify cron with 'crontab -l'
  17. Reset dir permissions

    Terminal window
    chown -R apache:apache /var/www/html/rconfig8
    chmod -R 775 /var/www/html/rconfig8/current/storage
  18. Migrate the DB files. If any errors here, check your DB credentials in the .env file

    Terminal window
    cd /var/www/html/rconfig8/current
    php artisan migrate
  19. Run the following setup commands for laravel horizon

    Terminal window
    php artisan config:clear
    php artisan key:generate
    php artisan passport:install
    php artisan rconfig:sync-tasks
    php artisan rconfig:sync-search
    php artisan rconfig:clear-all
    chown -R apache:apache /var/www/html/rconfig8
    chmod -R 775 /var/www/html/rconfig8/current/storage
  20. Reset RBAC permissions

    Terminal window
    cd /var/www/html/rconfig8/current && php artisan rconfig:update-rbac-data
  21. Run post updated commands

    Terminal window
    php artisan rconfig:config-summaries-sync
    php artisan rconfig:append-compliance-report-data
  22. Restart the following services:

    • httpd
    • mariadb
    • supervisord
  23. Verify that the following services are running and versions are correct;

    • httpd 2.4+
    • mariadb 10.3+/ Mysql5.7+
    • redis 5.0+
    • php 8.4+
    • supervisord 4.0+
  24. Verify that the following ports are open:

    • 80
    • 443
  25. Check the install has completed, by open the rConfig web interface in a browser and login with the default credentials: