Skip to content

How to update rConfig V8 Core

After reading this page, you can update an existing rConfig V8 Core installation to the latest release. You will back up the database, configuration, and storage directory, pull the newest code from GitHub, run database migrations, clear caches, restart services, and verify the upgrade on RHEL-based systems or Ubuntu.

Use this guide when you already have rConfig V8 Core running and want to move it to a newer release for new features, security fixes, or bug fixes. If you are deploying a fresh environment instead, complete the V8 Core installation steps first, then return here for future updates.

rConfig V8 Core follows a continuous release cycle, and updates are distributed through the GitHub repository. Review the GitHub Releases page for the version you are moving to before you start, in case it includes breaking changes or special instructions.

  • A running rConfig V8 Core installation with shell access to the server
  • The database user and password from your .env file (needed for the backup)
  • A backup directory the web user can write to (this guide uses /home/backups)
  • git, composer, mysqldump, and tar available on the host
  • Knowledge of your platform: RHEL-based (CentOS, Rocky, RHEL, Alma) or Ubuntu

Complete all four backup steps before touching the update commands.

Terminal window
# Navigate to a backup directory
cd /home/backups
# Create database backup with timestamp
mysqldump -u rconfig_user -p --no-tablespaces rconfig > rconfig_backup_$(date +%Y%m%d_%H%M%S).sql
# Verify the backup file was created
ls -lh rconfig_backup_*.sql

You are prompted for the database password. Use the same password configured in your .env file.

Terminal window
# Backup .env file
cp /var/www/html/rconfig/.env /home/backups/.env.backup_$(date +%Y%m%d_%H%M%S)
# Backup Apache virtual host configuration
# For CentOS/Rocky/RHEL:
cp /etc/httpd/conf.d/rconfig-vhost.conf /home/backups/rconfig-vhost.conf.backup_$(date +%Y%m%d_%H%M%S)
# For Ubuntu:
cp /etc/apache2/sites-enabled/rconfig-vhost.conf /home/backups/rconfig-vhost.conf.backup_$(date +%Y%m%d_%H%M%S)
Terminal window
# Create compressed backup of storage directory
tar -czf /home/backups/rconfig_storage_backup_$(date +%Y%m%d_%H%M%S).tar.gz /var/www/html/rconfig/storage
# Verify the backup file was created
ls -lh /home/backups/rconfig_storage_backup_*.tar.gz
Terminal window
# List all backup files
ls -lh /home/backups/
# Check database backup file size (should not be 0 bytes)
ls -lh /home/backups/rconfig_backup_*.sql

Once your backups are complete and verified, work through these steps in order.

Terminal window
cd /var/www/html/rconfig
# Check current installed version
php artisan --version
# Check Git status
git status

If you have local modifications that conflict with the update, stash them:

Terminal window
# Stash your local changes
git stash
# You can restore them later with:
# git stash pop
Red Hat Enterprise Linux logoRocky Linux logoAlmaLinux logo
Terminal window
cd /var/www/html/rconfig
# Pull latest changes from GitHub
git pull
# If you encounter conflicts, review them and resolve manually
# or restore from your backup and try again
Terminal window
# Update Composer dependencies
composer install --no-dev
# This may take several minutes
Terminal window
# Run any new database migrations
php artisan migrate
# When prompted, confirm by typing 'yes'
Terminal window
# Sync scheduled tasks with the system
php artisan rconfig:sync-tasks
Terminal window
# Clear all application caches
php artisan rconfig:clear-all
Red Hat Enterprise Linux logoRocky Linux logoAlmaLinux logo
Terminal window
# Restart Apache
systemctl restart httpd
# Verify Apache is running
systemctl status httpd
Terminal window
# Restart Supervisor to reload queue workers
systemctl restart supervisord
# Verify Supervisor is running
systemctl status supervisord

After updating, confirm everything is working.

Terminal window
cd /var/www/html/rconfig
php artisan --version

Open your browser and navigate to your rConfig URL. Verify you can log in, the dashboard loads correctly, and any new features appear as expected.

  • Add or view a device to confirm device management works
  • Run a manual device backup
  • Open an existing configuration to confirm stored configs are accessible
  • Review the logs for errors:
Terminal window
# Check application logs
tail -f /var/www/html/rconfig/storage/logs/laravel.log
Terminal window
# Check Apache status
systemctl status httpd # CentOS/Rocky/RHEL
systemctl status apache2 # Ubuntu
# Check Supervisor status
systemctl status supervisord
# Check queue workers
php artisan queue:work --once

If you hit permission errors, a blank page, or 500 errors, reset ownership and permissions, then clear caches:

Red Hat Enterprise Linux logoRocky Linux logoAlmaLinux logo
Terminal window
cd /var/www/html/rconfig
# Fix ownership
chown -R apache:apache /var/www/html/rconfig
# Fix permissions
chmod -R 755 /var/www/html/rconfig
chmod -R 775 storage bootstrap/cache
# Clear caches
php artisan rconfig:clear-all

If an update causes problems, roll back to your previous version using the backups you took.

Terminal window
# Stop Apache
systemctl stop httpd # CentOS/Rocky/RHEL
systemctl stop apache2 # Ubuntu
# Stop Supervisor
systemctl stop supervisord
Terminal window
# Replace 'YYYYMMDD_HHMMSS' with your backup timestamp
mysql -u rconfig_user -p rconfig < /home/backups/rconfig_backup_YYYYMMDD_HHMMSS.sql
Terminal window
# Restore .env file
cp /home/backups/.env.backup_YYYYMMDD_HHMMSS /var/www/html/rconfig/.env
# Restore storage directory
cd /var/www/html/rconfig
rm -rf storage
tar -xzf /home/backups/rconfig_storage_backup_YYYYMMDD_HHMMSS.tar.gz -C /
Terminal window
cd /var/www/html/rconfig
# View recent commits
git log --oneline -n 10
# Revert to previous commit (replace COMMIT_HASH with the actual hash)
git reset --hard COMMIT_HASH
# Or revert to the last working version
git checkout HEAD~1
Terminal window
# Start Apache
systemctl start httpd # CentOS/Rocky/RHEL
systemctl start apache2 # Ubuntu
# Start Supervisor
systemctl start supervisord

Use these guidelines to plan your update cadence. Always test major versions in a non-production environment first.

Update typeRecommended action
Critical security fixApply the same day
High-severity security fixApply within one week
Medium or low security fixApply during the next maintenance window
Patch release (8.0.x)Low risk, apply during regular maintenance
Minor release (8.x.0)Apply during a scheduled maintenance window
Major release (x.0.0)Plan carefully and test in non-production first

For production systems, run updates during low-usage periods and keep multiple backup versions so you can roll back if needed.

When you need help with an update, gather this information first:

  1. Current rConfig version (php artisan --version)
  2. Operating system and version
  3. Error messages from the logs
  4. Steps you have already tried
  5. Output of git status and git log --oneline -n 5

Then reach out through one of these channels: