What's new
Panelica Community Forum

Welcome to the official Panelica Community Forum — the central hub for server administrators, developers, and hosting professionals. Register a free account today to access technical discussions, product announcements, feature requests, and direct support from the Panelica team. Be part of the growing community shaping the future of server management.

Complete Guide: Migrating from cPanel to Panelica

admin

Administrator
Staff member
Migrating server panels sounds daunting. But with Panelica's automated migration system, most cPanel accounts migrate in under 30 minutes with zero downtime.

This guide walks you through the entire process.

Prerequisites​


Before starting the migration, ensure:

  • Source server (cPanel):
    • SSH root access (port 22)
    • cPanel WHM API enabled
    • Minimum 100MB free disk space (for migration temp files)
  • Destination server (Panelica):
    • Panelica installed and running (curl -sSL https://latest.panelica.com/install.sh | bash)
    • Valid license (14-day trial works)
    • Enough disk space for migrated data (check cPanel account quotas)
  • DNS management:
    • Access to domain registrar or Cloudflare (for post-migration DNS updates)
    • Lower TTL values 24 hours before migration (recommended: 300 seconds)

What Gets Migrated​


Panelica's cPanel migration pipeline transfers:

Data TypeDetails
DomainsAll primary, addon, and parked domains + subdomains
Filespublic_html, logs, SSL certificates, .htaccess, cron scripts
DatabasesMySQL databases + users (including password hashes)
EmailEmail accounts, mailboxes (Maildir format), forwarders, autoresponders
DNS ZonesAll DNS records (A, AAAA, CNAME, MX, TXT, SRV, NS, CAA)
SSL CertificatesLet's Encrypt + custom certificates (private keys included)
FTP AccountsAdditional FTP users + quotas
Cron JobsAll scheduled tasks with original timing

What doesn't migrate:
  • Email filters (Sieve scripts) — cPanel uses different format
  • cPanel-specific plugins (Softaculous, Installatron)
  • Server-level settings (WHM configs, IP addresses)

Migration Process (Step-by-Step)​


Step 1: Log in to Panelica

Access your Panelica panel at https://YOUR_SERVER_IP:8399 and navigate to:

Migration → New Migration → cPanel

Step 2: Connect to Source Server

Fill in the connection details:

  • Hostname/IP: Your cPanel server IP or hostname
  • SSH Port: 22 (default)
  • SSH Username: root
  • SSH Password: Your cPanel root password
  • WHM Port: 2087 (default)
  • WHM API Token: (optional, generates automatically if left blank)

Click Test Connection. If successful, you'll see:

Code:
 SSH connection successful
 cPanel/WHM detected (v110.0.18)
 15 accounts discovered

Step 3: Select Accounts to Migrate

Panelica lists all cPanel accounts. Select the ones you want to migrate.

Pro tip: Migrate 1-2 test accounts first to verify everything works.

Step 4: Configure Migration Settings

  • Transfer method: rsync (recommended) or SCP
  • Bandwidth limit: 0 = unlimited (use 10MB/s if source server is production)
  • Create users: Yes (creates Linux system users for each account)
  • Skip email: No (leave unchecked to migrate mailboxes)
  • Preserve MySQL passwords: Yes (keeps database passwords unchanged)

Step 5: Start Migration

Click Start Migration. The pipeline begins:

Code:
Phase 1: Discovering accounts (15 found)
Phase 2: Creating system users (user1, user2, user3...)
Phase 3: Creating domains (example.com, domain.net...)
Phase 4: Transferring files (rsync: 4.2GB, ETA 8 minutes)
Phase 5: Importing databases (15 DBs, 1.8GB)
Phase 6: Importing email (342 mailboxes, 2.1GB)
Phase 7: Configuring SSL (Let's Encrypt auto-issue)
Phase 8: Verifying migration (checksums, file counts)
 Migration completed in 27 minutes

Step 6: Verify Migrated Data

Before switching DNS, verify:

  • Files: Check /home/{username}/public_html/ via File Manager
  • Databases: Log in to phpMyAdmin, verify tables exist
  • Email: Log in to Roundcube, check inbox
  • SSL: Visit https://YOUR_SERVER_IP (add /etc/hosts entry if needed)

DNS Update Strategy (Zero-Downtime)​


Option 1: Gradual DNS Switch (Recommended)

1. Lower TTL to 300 seconds (5 minutes) 24 hours before migration
2. Migrate all data to Panelica
3. Update A records to point to new server IP
4. Wait 5 minutes for DNS propagation
5. Monitor traffic (both servers will receive requests during propagation)
6. Disable cPanel sites once traffic drops to zero

Option 2: Instant Switch (Cloudflare)

If using Cloudflare:

1. Migrate data to Panelica
2. In Cloudflare DNS, update A records to new IP
3. Purge Cloudflare cache
4. Traffic switches instantly (Cloudflare proxies to new server)

Post-Migration Checklist​


After DNS propagates:

  • Test all websites (check homepage, login pages, forms)
  • Verify email sending/receiving (mail-tester.com)
  • Check cron jobs (Panelica → Cron Jobs page)
  • Verify SSL certificates (should auto-renew every 90 days)
  • Update WordPress wp-config.php if database passwords changed
  • Test FTP access
  • Review error logs (/var/logs/{domain}/error.log)

Common Issues & Solutions​


Issue 1: "SSH connection failed"

Cause: Firewall blocking port 22 or incorrect SSH credentials.

Solution:
Code:
# On source server, verify SSH is running:
systemctl status sshd

# Test SSH from Panelica server:
ssh root@SOURCE_IP

Issue 2: "rsync stalled at 0%"

Cause: Large files (videos, backups) taking time to transfer.

Solution: Check migration logs (Panelica → Migration → View Logs). rsync shows progress for each file. Wait patiently or increase bandwidth limit.

Issue 3: "WordPress shows database connection error"

Cause: Database password changed during migration.

Solution: Enable Preserve MySQL passwords in migration settings. If already migrated, update wp-config.php:

Code:
define('DB_PASSWORD', 'new_password_here');

Issue 4: "Email not working after migration"

Cause: DNS MX records still pointing to old server.

Solution:
Code:
# Check current MX records:
dig MX example.com

# Update MX to point to new server:
example.com. 300 IN MX 10 mail.example.com.
mail.example.com. 300 IN A NEW_SERVER_IP

Issue 5: "SSL certificate shows 'Not Secure'"

Cause: Let's Encrypt certificate not issued yet (requires DNS propagation).

Solution: Wait 5-10 minutes for DNS to propagate. Then go to Panelica → SSL → Issue Certificate.

Advanced: Checkpoint/Resume for Large Migrations​


If migrating 100GB+ accounts, migration may take hours. Panelica supports checkpoint/resume:

  • If migration is interrupted (network failure, server reboot), restart from the same phase
  • Rsync resumes file transfers (only transfers new/changed files)
  • Database imports skip already-imported databases

To resume:

Code:
Panelica → Migration → View History → Select Migration → Resume

Performance Tips​


  • Compress data: rsync uses -z flag (gzip compression) by default
  • Parallel transfers: Migrate multiple small accounts simultaneously
  • Exclude backups: Don't migrate /home/{user}/backups/ (reduces transfer size)
  • Use local network: If both servers are in same datacenter, transfer is 10x faster

Why Panelica's Migration is Different​


Unlike cPanel → Plesk migration (which requires Plesk Migrator extension on source server), Panelica's migration:

  • No agent installation on source server
  • Works via SSH + WHM API only
  • Preserves MySQL password hashes (apps work without reconfiguration)
  • Supports checkpoint/resume for interrupted migrations
  • Transfers Let's Encrypt certificates (private keys included)
  • Migrates DNS zones (no manual record re-creation)

Need Help?​


If you run into issues:


Most cPanel migrations complete in under 30 minutes. Zero downtime. Zero reconfiguration.

Start your migration today: Get Panelica
 
Last edited:
Back
Top