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. For updates, see the “Manual Update” tab.
-
Download the latest rConfig Zip file from the rConfig website (replace APITOKEN with your API token)
Terminal window curl -sw '%{http_code}' -o rconfig8-full.zip -d '{"api_token":"APITOKEN"}' -H "Content-Type: application/json" -X POST https://dl.rconfig.com/api/download8-full?=$(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-full.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-full.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;exit -
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-full.zip -d '{"api_token":"APITOKEN"}' -H "Content-Type: application/json" -X POST https://dl.rconfig.com/api/download8-full?=$(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-full.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