Upgrading Octeth
This guide walks you through upgrading your Octeth installation to a newer version while preserving your data and configuration.
Before You Begin
Prerequisites
- Root access to your Octeth server
- Active Octeth license
- Recent backup of your database (strongly recommended)
- Maintenance window for potential downtime
Backup Your Data
Critical Step
Always create a complete backup before upgrading. Upgrades modify your database schema and may be difficult to reverse.
If you have the Backup Add-On installed, run a manual backup:
/opt/octeth-backup-tools/bin/octeth-backup.shOtherwise, create a manual database backup:
docker exec oempro_mysql mysqldump -u root -p oempro > octeth-backup-$(date +%Y%m%d).sqlCheck Current Version
Verify your current Octeth version:
cat /opt/octeth/.oempro_env | grep PRODUCT_VERSIONDownload New Version
- Log in to Octeth Client Area
- Download the latest version (e.g.,
oempro-rel-v5.7.2.zip) - Upload to your server at
/opt/
Upgrade Process
Step 1: Stop Octeth Services
Stop all backend processes and email delivery:
/opt/octeth/cli/octeth.sh backend:stop
/opt/octeth/cli/octeth.sh sendengine:scale 0Verify all processes are stopped:
/opt/octeth/cli/octeth.sh backend:statusStep 2: Backup Current Installation
Create a backup of your current Octeth installation directory:
cp -r /opt/octeth /opt/octeth-backup-$(date +%Y%m%d)Step 3: Extract New Version
Extract the new version to a temporary directory:
cd /tmp
unzip /opt/oempro-rel-v5.7.2.zip -d /tmp/octeth-upgradeStep 4: Preserve Configuration Files
Your configuration and data must be preserved. The following files/directories should NOT be overwritten:
Critical Files to Preserve:
/opt/octeth/.oempro_*_env- All environment files/opt/octeth/data/license.dat- License file/opt/octeth/system/.env- Laravel environment/opt/octeth/config/- Custom configuration (if modified)/opt/octeth/_dockerfiles/mysql/- MySQL data/opt/octeth/storage/- Uploaded files and attachments
Step 5: Update Application Files
Copy new files while preserving your configuration:
# Copy new application files
rsync -av --exclude='.oempro_*_env' \
--exclude='data/license.dat' \
--exclude='system/.env' \
--exclude='_dockerfiles/mysql/' \
--exclude='storage/' \
/tmp/octeth-upgrade/ /opt/octeth/Double-Check
Verify your environment files are still present after the copy:
ls -la /opt/octeth/.oempro*_env
cat /opt/octeth/data/license.datStep 6: Update Version Number
Update the version number in your environment file:
vi /opt/octeth/.oempro_env
# Change PRODUCT_VERSION=5.7.2 (or your new version)Step 7: Run Database Migrations
Apply database schema updates for the new version:
/opt/octeth/cli/octeth.sh migrateThis command will:
- Update database tables
- Add new columns and indexes
- Migrate data to new structures
- Update system configuration
Step 8: Update Docker Images
Rebuild Docker images with the new code:
/opt/octeth/cli/octeth.sh docker:down
/opt/octeth/cli/octeth.sh docker:upWait for all containers to start (this may take 2-3 minutes).
Step 9: Install Composer Dependencies
Update PHP dependencies:
/opt/octeth/cli/octeth.sh composer:installStep 10: Clear Caches
Clear all cached data to ensure new code is loaded:
docker exec oempro_app php /var/www/html/cli/cache-clear.phpStep 11: Fix Permissions
Ensure correct file permissions:
/opt/octeth/cli/octeth.sh permissions:fixStep 12: Start Services
Start backend processes and email delivery:
/opt/octeth/cli/octeth.sh backend:start
/opt/octeth/cli/octeth.sh sendengine:startStep 13: Verify Upgrade
Check system health:
/opt/octeth/cli/octeth.sh health:checkAll services should show "✓ OK" status.
Post-Upgrade Verification
Test Core Functionality
- Admin Dashboard: Log in to verify access
- Send Test Campaign: Create and send a test email
- Check Reports: Verify analytics are tracking
- Review Logs: Check for any errors
/opt/octeth/cli/octeth.sh logs:tailVerify Version
Confirm the upgrade was successful:
# Check environment file
cat /opt/octeth/.oempro_env | grep PRODUCT_VERSION
# Check in Admin Dashboard
# Login > Settings > About > VersionMonitor System
Keep an eye on the system for the first few hours after upgrade:
# Watch backend processes
/opt/octeth/cli/octeth.sh backend:status
# Monitor send engine
/opt/octeth/cli/octeth.sh sendengine:status
# Check system health
/opt/octeth/cli/octeth.sh health:checkTroubleshooting Upgrades
Database Migration Fails
Problem: Migration command reports errors
Solution:
- Review migration error messages carefully
- Check database connection:bash
docker exec oempro_mysql mysql -u root -p oempro -e "SELECT 1" - Restore from backup if needed
- Contact support with error details
Services Won't Start After Upgrade
Problem: Backend or send engine fails to start
Solutions:
- Check Docker container status:bash
docker ps -a - Review container logs:bash
docker logs oempro_app - Restart all containers:bash
/opt/octeth/cli/octeth.sh docker:restart - Verify file permissions:bash
/opt/octeth/cli/octeth.sh permissions:fix
Performance Degraded After Upgrade
Problem: System is slower after upgrade
Solutions:
- Clear all caches:bash
docker exec oempro_app php /var/www/html/cli/cache-clear.php - Optimize database tables:bash
docker exec oempro_mysql mysqlcheck -u root -p oempro --optimize - Restart services:bash
/opt/octeth/cli/octeth.sh backend:restart
Rolling Back an Upgrade
If you need to rollback to your previous version:
Step 1: Stop Octeth
/opt/octeth/cli/octeth.sh backend:stop
/opt/octeth/cli/octeth.sh docker:downStep 2: Restore Backup
# Remove new installation
rm -rf /opt/octeth
# Restore backed up version
cp -r /opt/octeth-backup-YYYYMMDD /opt/octethStep 3: Restore Database (if needed)
If database was modified:
# Stop MySQL
docker stop oempro_mysql
# Restore database from backup
docker exec -i oempro_mysql mysql -u root -p oempro < octeth-backup-YYYYMMDD.sql
# Start MySQL
docker start oempro_mysqlStep 4: Restart Services
/opt/octeth/cli/octeth.sh docker:up
/opt/octeth/cli/octeth.sh backend:startUpgrade Best Practices
Test in Staging First
- Create a staging server with a copy of your production data
- Test the upgrade process on staging before production
- Verify all functionality works as expected
Schedule Maintenance Windows
- Upgrade during low-traffic periods
- Allow 1-2 hours for the upgrade process
- Notify users of scheduled maintenance
Keep Backups
- Maintain at least 3 backup copies
- Store backups off-server (cloud storage)
- Test backup restoration periodically
Stay Updated
- Subscribe to Octeth release announcements
- Review changelog before upgrading
- Plan upgrades within 30 days of new releases
Document Everything
- Note any custom configuration changes
- Document third-party integrations
- Keep a log of upgrade steps performed
Version-Specific Upgrade Notes
Upgrading to v5.7.x
- New ClickHouse analytics engine requires initial data migration
- RabbitMQ configuration format has changed
- Review new features in Changelog
Upgrading from v5.5.x to v5.6.x or Later
- Major database schema changes require extended migration time
- Plan for 15-30 minutes of downtime depending on database size
- Backup is absolutely critical for this major version jump
Getting Help
If you encounter issues during the upgrade:
Check Logs:
bash/opt/octeth/cli/octeth.sh logs:snapshotConsult Documentation:
- Review Troubleshooting Guide
- Check version-specific notes in changelog
Contact Support:
- Email: support@octeth.com
- Include your Octeth version (before and after)
- Provide log snapshots
- Describe upgrade steps completed
Keep Your License Active
Ensure your Octeth license is active before upgrading. Expired licenses may prevent successful upgrades. Renew at Octeth Client Area.

Help Portal