rConfig V8 Core Docker Deployment
rConfig V8 Core Docker Deployment
Section titled “rConfig V8 Core Docker Deployment”Overview
Section titled “Overview”rConfig V8 Core is the open-source edition of rConfig’s Network Configuration Management platform. This guide provides complete Docker deployment procedures for rapid, consistent installations.
Prerequisites
Section titled “Prerequisites”- Docker Engine 20.10+
- Docker Compose 2.0+
- Git
- Minimum 2GB RAM
- Port 8080 available (or configure alternative)
Quick Installation
Section titled “Quick Installation”1. Clone Repository
Section titled “1. Clone Repository”git clone https://github.com/rconfig/rconfig8coredocker.gitcd rconfig8coredocker2. Configure Environment (Optional)
Section titled “2. Configure Environment (Optional)”Default configuration works for most cases. To customize:
# Create/edit .env filecat > .env << EOFAPP_URL=http://localhost:8080DB_DATABASE=rconfigDB_USERNAME=rconfig_userDB_PASSWORD=rconfig_passMYSQL_ROOT_PASSWORD=root_passwordEOF3. Build and Start
Section titled “3. Build and Start”# Build containers (first time: 5-10 minutes)docker compose build
# Start all servicesdocker compose up -d
# Verify statusdocker compose ps4. Run Installation
Section titled “4. Run Installation”# Execute installation wizarddocker compose exec app php artisan v8core:install
# When prompted:# - "Add a cron entry for task scheduling?" → yes5. Access Application
Section titled “5. Access Application”Navigate to: http://localhost:8080
Default credentials:
- Username:
admin@domain.com - Password:
admin
Post-Installation
Section titled “Post-Installation”Verify Services
Section titled “Verify Services”# Check all services runningdocker compose exec app supervisorctl status
# Expected output:# apache2 RUNNING# horizon RUNNING# redis-server RUNNING# schedule-run_00 RUNNINGAccess Horizon Dashboard
Section titled “Access Horizon Dashboard”Monitor queues at: http://localhost:8080/horizon
Fix Mail Configuration Errors (If Needed)
Section titled “Fix Mail Configuration Errors (If Needed)”# For testing/development environmentsdocker compose exec app bash -c "cat >> /var/www/html/rconfig/.env << 'EOF'MAIL_MAILER=logMAIL_FROM_ADDRESS=noreply@rconfig.localMAIL_FROM_NAME=rConfigEOF"
docker compose exec app php artisan config:cleardocker compose restart appCommon Operations
Section titled “Common Operations”View Logs
Section titled “View Logs”# Application logsdocker compose logs -f app
# Laravel logsdocker compose exec app tail -f /var/www/html/rconfig/storage/logs/laravel.logExecute Artisan Commands
Section titled “Execute Artisan Commands”docker compose exec app php artisan [command]
# Examples:docker compose exec app php artisan config:cleardocker compose exec app php artisan cache:cleardocker compose exec app php artisan horizon:statusRestart Services
Section titled “Restart Services”# Restart all containersdocker compose restart
# Restart specific servicedocker compose exec app supervisorctl restart horizonDatabase Management
Section titled “Database Management”Backup
Section titled “Backup”# Create backup with timestampdocker compose exec -T db mysqldump -u root -proot_password rconfig > rconfig-backup-$(date +%Y%m%d-%H%M%S).sqlRestore
Section titled “Restore”docker compose stop appdocker compose exec -T db mysql -u root -proot_password rconfig < rconfig-backup-20251222.sqldocker compose start appdocker compose exec app php artisan config:clearAccess Database
Section titled “Access Database”docker compose exec db mysql -u root -proot_password rconfigUpdates
Section titled “Updates”Automated Update
Section titled “Automated Update”chmod +x update.sh./update.shThe script handles: backup → rebuild → migrate → cache clear
Manual Update
Section titled “Manual Update”# Backupdocker compose exec -T db mysqldump -u root -proot_password rconfig > backup.sql
# Rebuild with latest codedocker compose downdocker compose build --no-cachedocker compose up -d
# Migrate and clear cachesdocker compose exec app php artisan migrate --forcedocker compose exec app php artisan cache:cleardocker compose exec app php artisan config:cleardocker compose exec app php artisan horizon:terminateUpdate to Specific Version
Section titled “Update to Specific Version”# Edit Dockerfile, change: ARG RCONFIG_VERSION=main# To: ARG RCONFIG_VERSION=v8.1.0
docker compose build --no-cache --build-arg RCONFIG_VERSION=v8.1.0docker compose up -dTroubleshooting
Section titled “Troubleshooting”Container Won’t Start
Section titled “Container Won’t Start”# Check logsdocker compose logs app
# Check port conflictsnetstat -tulpn | grep 8080
# Fix permissionsdocker compose exec app chown -R www-data:www-data /var/www/html/rconfig/storagedocker compose exec app chmod -R 775 /var/www/html/rconfig/storageDatabase Connection Errors
Section titled “Database Connection Errors”# Check database healthdocker compose ps db
# Wait for initialization (first startup)sleep 30 && docker compose restart app
# Recreate databasedocker compose downdocker compose up -d dbsleep 30docker compose up -d appPermission Errors (500)
Section titled “Permission Errors (500)”docker compose exec app chown -R www-data:www-data /var/www/html/rconfig/storage /var/www/html/rconfig/bootstrap/cachedocker compose exec app chmod -R 775 /var/www/html/rconfig/storage /var/www/html/rconfig/bootstrap/cachedocker compose exec app php artisan config:cleardocker compose exec app php artisan cache:clearHorizon Not Processing
Section titled “Horizon Not Processing”# Check statusdocker compose exec app php artisan horizon:status
# Restartdocker compose exec app supervisorctl restart horizon# ORdocker compose exec app php artisan horizon:terminateApplication Slow
Section titled “Application Slow”# Clear cachesdocker compose exec app php artisan optimize:clear
# Optimizedocker compose exec app php artisan optimize
# Restartdocker compose restart appSecurity Hardening
Section titled “Security Hardening”Change Ports
Section titled “Change Ports”Edit docker-compose.yml:
services: app: ports: - "9443:80" # External port db: ports: - "127.0.0.1:3306:3306" # Localhost onlyFirewall Rules
Section titled “Firewall Rules”# Allow specific IPs onlysudo ufw allow from 10.0.0.0/8 to any port 8080Secure Files
Section titled “Secure Files”chmod 600 .envecho ".env" >> .gitignorePerformance Optimization
Section titled “Performance Optimization”# Cache configurationdocker compose exec app php artisan config:cachedocker compose exec app php artisan route:cachedocker compose exec app php artisan view:cachedocker compose exec app composer dump-autoload --optimizeMigration from Traditional Install
Section titled “Migration from Traditional Install”# 1. Backup existingmysqldump -u root -p rconfig > migration-backup.sqltar -czf storage-backup.tar.gz /path/to/rconfig/storage
# 2. Deploy Docker (follow installation above)
# 3. Restore databasedocker compose exec -T db mysql -u root -proot_password rconfig < migration-backup.sql
# 4. Restore storagetar -xzf storage-backup.tar.gzdocker cp storage/. rconfig_app:/var/www/html/rconfig/storage/docker compose exec app chown -R www-data:www-data /var/www/html/rconfig/storage
# 5. Clear cachesdocker compose exec app php artisan config:cleardocker compose restart appMultiple instances on same server?
Clone to different directories, change ports in docker-compose.yml.
Change database password after install?
docker compose exec db mysql -u root -proot_password -e "ALTER USER 'rconfig_user'@'%' IDENTIFIED BY 'new_password';"docker compose exec app sed -i 's/DB_PASSWORD=.*/DB_PASSWORD=new_password/' /var/www/html/rconfig/.envdocker compose exec app php artisan config:cleardocker compose restart appUse external database?
Remove db service from docker-compose.yml, update .env with external credentials.
Enable HTTPS/SSL? See SSL Configuration Documentation.
Resources
Section titled “Resources”- GitHub: https://github.com/rconfig/rconfig
- Docker Repo: https://github.com/rconfig/rconfig8coredocker
- Docs: https://v8coredocs.rconfig.com
- Support: https://github.com/rconfig/rconfig/issues
- YouTube: https://www.youtube.com/channel/rconfigv8Core