rConfig - Manual Offline Installation
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.
OS Setup
Section titled “OS Setup”🎯 Quick Requirements Check
Section titled “🎯 Quick Requirements Check”System Requirements
Requirement | Supported Versions |
---|---|
Operating System | CentOS/RHEL/AWS/Rocky Linux 8.0+ |
Web Server | Apache 2.4+ |
Database Server | MariaDB 11+ • MySQL 5.7+ • PostgreSQL 13+ (Enterprise only) |
PHP Version | 8.4+ (strictly required) |
Redis | 6.0+ |
📋 Manual Setup Steps
Section titled “📋 Manual Setup Steps”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
⚠️ SELinux Notice
Section titled “⚠️ SELinux Notice”Beginners: Disable SELinux by editing /etc/selinux/config
→ set SELINUX=disabled
→ reboot
Advanced users: Configure SELinux policies for rConfig and Apache
rConfig Installation & Updates
Section titled “rConfig Installation & Updates”Manually Install rConfig
Section titled “Manually Install rConfig”Make sure to follow the installation steps for new installations ONLY. Updates, see the update section below.
-
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) -
Create the following directories:
Terminal window currentReleaseDir=$(date '+%Y%m%d%H%M%S')mkdir /var/www/html/rconfig8mkdir /var/www/html/rconfig8/releasesmkdir /var/www/html/rconfig8/releases/$currentReleaseDirmkdir /var/www/html/rconfig8/persistentData -
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/{,.[^.]}* . -
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/.envcp /var/www/html/rconfig8/releases/$currentReleaseDir/horizon_supervisor.ini /var/www/html/rconfig8/persistentData/horizon_supervisor.inicp /var/www/html/rconfig8/releases/$currentReleaseDir/rconfig-vhost.conf /var/www/html/rconfig8/persistentData/rconfig-vhost.confcp -r /var/www/html/rconfig8/releases/$currentReleaseDir/storage /var/www/html/rconfig8/persistentData/storagemv /var/www/html/rconfig8/releases/$currentReleaseDir/storage /var/www/html/rconfig8/releases/$currentReleaseDir/storage_old -
Delete the zip file
Terminal window cd /var/www/html/rm -f rconfig8-vectorserver.zip -
Create a symlink to the current release directory
Terminal window ln -s /var/www/html/rconfig8/releases/$currentReleaseDir /var/www/html/rconfig8/current -
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 -
Create symlink for .env file
Terminal window ln -s /var/www/html/rconfig8/persistentData/.env /var/www/html/rconfig8/current/.env -
Create a new database in mysql
Terminal window mysql -u root -pcreate database rconfig;exitCreate 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; -
change to current directory
Terminal window cd /var/www/html/rconfig8/current -
Edit the .env file and replace the follow placeholder text with the correct values for each of the following:
Terminal window vim .envENVOY_APP_DEBUG=falseENVOY_APP_URL=https://YOUHOSTNAME.COMENVOY_DBHOST=localhost (if local)ENVOY_DBPORT=3306ENVOY_DBNAME=rconfigENVOY_DBUSER=your_db_userENVOY_DBPASS=your_db_passwordENVOY_RCONFIG_API_TOKEN=your_api_token# Set to true to use hard links for duplicate filesHARD_LINK=true -
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.iniENVOY_ARTISAN = /var/www/html/rconfig8/current/artisanENVOY_STORAGE = /var/www/html/rconfig8/current/storage -
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 -
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 -
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.confENVOY_SERVERNAME=YOUHOSTNAME.COMENVOY_SERVERALIAS=YOUHOSTNAME.COMENVOY_DOCROOT= /var/www/html/rconfig8 -
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' -
Reset dir permissions
Terminal window chown -R apache:apache /var/www/html/rconfig8chmod -R 775 /var/www/html/rconfig8/current/storage -
Migrate the DB files. If any errors here, check your DB credentials in the .env file
Terminal window cd /var/www/html/rconfig8/currentphp artisan migrate -
Run the following setup commands for laravel horizon
Terminal window php artisan config:clearphp artisan key:generatephp artisan passport:installphp artisan rconfig:sync-tasksphp artisan rconfig:sync-searchphp artisan rconfig:clear-allchown -R apache:apache /var/www/html/rconfig8chmod -R 775 /var/www/html/rconfig8/current/storage -
Reset RBAC permissions
Terminal window cd /var/www/html/rconfig8/current && php artisan rconfig:update-rbac-data -
Run post updated commands
Terminal window php artisan rconfig:config-summaries-syncphp artisan rconfig:append-compliance-report-data -
Restart the following services:
- httpd
- mariadb
- supervisord
-
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+
-
Verify that the following ports are open:
- 80
- 443
-
Check the install has completed, by open the rConfig web interface in a browser and login with the default credentials:
- Username: [email protected]
- Password: admin
Manually Update rConfig
Section titled “Manually Update rConfig”-
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) -
Create the following directories:
Terminal window currentReleaseDir=$(date '+%Y%m%d%H%M%S')mkdir /var/www/html/rconfig8/releases/$currentReleaseDir -
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/{,.[^.]}* . -
Unlink the current symlink
Terminal window cd /var/www/html/rconfig8unlink /var/www/html/rconfig8/current -
Create a symlink to the current release directory
Terminal window ln -s /var/www/html/rconfig8/releases/$currentReleaseDir /var/www/html/rconfig8/current -
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 -
Create symlink for .env file
Terminal window ln -s /var/www/html/rconfig8/persistentData/.env /var/www/html/rconfig8/current/.env -
Change to current directory
Terminal window cd /var/www/html/rconfig8/current -
Restart apache, MariaDB, Redis, and supervisord
Terminal window systemctl restart httpdsystemctl restart mariadbsystemctl restart redissystemctl restart supervisord -
Run post updated commands
Terminal window php artisan rconfig:config-summaries-syncphp artisan rconfig:append-compliance-report-data