Skip to content

rConfig - Vector CM Manual Offline Installation

15 mins V7 Pro

rConfig Vector Central Manager (VCM) is a centralized management system for rConfig. It provides a centralized dashboard for managing multiple rConfig instances. This guide will walk you through the manual installation of rConfig Vector Central Manager. This guide should be followed as part of an onboarding session with rConfig support, and is primarily used by internal teams for review and internal server preperation.

OS Setup

  1. Check OS Version for Offline installation is CentOS, RHEL, or Rocky Linux 8.0 or later

  2. Disable SELinux & reboot the system (advanced users can skip this step)

  3. Recommend updating the system to the latest version and packages

  4. Install the following packages:

    • yum-utils
    • vim
    • telnet
    • zip
    • unzip
    • wget
    • curl
    • openssl-devel openssl mod_ssl
    • supervisord
    • Redis
    • apache 2.4+
    • mariadb 11++/ Mysql5.7+
    • php 8.3+
    • Rabbit MQ 4+
    • Following PHP extensions:
    • 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

    Note: the addition for php-snmp from V7.3.0

  5. chown -R apache:apache /var/www/html

  6. Start and enable the following services:

    • httpd
    • mariadb
    • redis
    • supervisord
  7. If Firewall is enabled, open the following ports:

    • 80
    • 443
  8. Verify that the following services are running and versions are correct;

    • httpd 2.4+
    • mariadb 11++/ Mysql5.7+
    • redis 5.0+
    • php 8.3+
    • supervisord
    • Rabbit MQ 4+
  9. Run the Mysql secure installation script:

    • mysql_secure_installation
    • configure your mysql root password

Manually Install rConfig

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 vector_cm_customername_release.zip -d '{"api_token":"APITOKEN"}' -H "Content-Type: application/json" -X POST https://dl.rconfig.com/api/download-vector-cm-customername?=$(date +%s)
  2. Create the following directories:

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

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

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

    Terminal window
    cd /var/www/html/
    rm -f download-vector-cm-customername.zip
  6. Create a symlink to the current release directory

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

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

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

    Terminal window
    mysql -u root -p
    create database rconfig;
    exit
  10. change to current directory

    Terminal window
    cd /var/www/html/rconfigcm/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_HOSTNAME=SERVER.YOUHOSTNAME.COM
    ENVOY_APP_DEBUG=false
    ENVOY_APP_URL=https://YOUHOSTNAME.COM
    ENVOY_DBHOST=localhost (if local)
    ENVOY_DBPORT=3306
    ENVOY_DBNAME=rconfig
    ENVOY_DBUSER=
    ENVOY_DBPASS=
    ENVOY_RCONFIG_API_TOKEN=
    RABBITMQ_HOST="servername.rconfig.com"
    RABBITMQ_PORT="5672"
    RABBITMQ_USER="guest"
    RABBITMQ_PASS="guest"
    RABBITMQ_VHOST="/"
  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/rconfigcm/persistentData/horizon_supervisor.ini
    ENVOY_ARTISAN = /var/www/html/rconfigcm/current/artisan
    ENVOY_STORAGE = /var/www/html/rconfigcm/current/storage
  13. Link the supervisor config file to the supervisor config directory

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

    Terminal window
    cp /var/www/html/rconfigcm/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/rconfigcm/
  16. Add the laravel Cron Job

    Terminal window
    crontab -e
    * * * * * php /var/www/html/rconfigcm/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/rconfigcm
    chmod -R 775 /var/www/html/rconfigcm/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/rconfigcm/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:clear-all
    php artisan nova:user
    chown -R apache:apache /var/www/html/rconfigcm
    chmod -R 775 /var/www/html/rconfigcm/current/storage
  20. Restart the following services:

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

    • httpd 2.4+
    • mariadb 10.3+/ Mysql5.7+
    • redis 5.0+
    • php 8.1+
    • supervisord 4.0+
    • Rabbit MQ 4+
  22. Verify that the following ports are open:

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

Manually Update rConfig

To manually update rConfig, follow the steps 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 vector_cm_customername_release.zip -d '{"api_token":"APITOKEN"}' -H "Content-Type: application/json" -X POST https://dl.rconfig.com/api/vector_cm_customername_release?=$(date +%s)
  2. Create the following directories:

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

    Terminal window
    unzip vector_cm_customername_release.zip -d /var/www/html/rconfigcm/releases/$currentReleaseDir/
    cd /var/www/html/rconfigcm/releases/$currentReleaseDir/
    mv customername-vector-cm-main/{,.[^.]}* .
  4. Unlink the current symlink

    Terminal window
    cd /var/www/html/rconfigcm
    unlink /var/www/html/rconfigcm/current
  5. Create a symlink to the current release directory

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

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

    Terminal window
    ln -s /var/www/html/rconfigcm/persistentData/.env /var/www/html/rconfigcm/current/.env
  8. Change to current directory

    Terminal window
    cd /var/www/html/rconfigcm/current
  9. Restart apache, MariaDB, Redis, and supervisord

    Terminal window
    systemctl restart httpd
    systemctl restart mariadb
    systemctl restart redis
    systemctl restart supervisord.
    chown -R apache:apache /var/www/html/rconfigcm
    chmod -R 775 /var/www/html/rconfigcm/current/storage