Memorial Day Sale: 25% OFF! View Plans
Tutorial

Migrating from cPanel to Panelica: A Step-by-Step Walkthrough

May 24, 2026

Back to Blog
Tired of cPanel? See why teams are switching to a modern, security-first panel.
Start free

Shared hosting panels have a dirty secret: migrating away from them is supposed to be hard. Months of manual work, SSH sessions open at 2 AM, databases exported one at a time, emails copied with rsync and a prayer. That friction is not accidental. It is a business model.

Panelica has a built-in Migration wizard that does the heavy lifting for cPanel migrations. This walkthrough covers every step, every form field, and every decision point — with visual mockups of the actual interface so you know exactly what you are looking at before you start. If you are researching a cPanel alternative, this is the most complete picture of how a modern migration works.

Before you click anything: 5-minute pre-flight checklist

A migration that fails halfway through is worse than one that never started. Run through this list on both the source (cPanel) and destination (Panelica) servers before launching the wizard.

On the cPanel source server:

  • Confirm you have root SSH access or a WHM account with API access enabled. The wizard connects over SSH port 22 by default (configurable).
  • Check that rsync is installed: which rsync. If it is missing, yum install rsync or apt install rsync before starting.
  • Note the total disk usage of all accounts you plan to migrate: du -sh /home/*. Your Panelica server needs at least that much free space.
  • Verify MySQL is accessible. The wizard reads password hashes directly from mysql.user — no password resets required.
  • If any sites use Cloudflare, note the API token now. After migration you can re-attach the same Cloudflare zones inside Panelica's Cloudflare integration.

On the Panelica destination server:

  • Make sure you are on a plan that supports migration. The Migration feature requires a Professional plan or higher. The wizard itself shows your current plan limits during the Configure step so you cannot accidentally over-provision.
  • Check available disk: df -h /. Add 10-15% headroom beyond your estimated source size.
  • Confirm the panel version is recent. The migration pipeline was significantly updated in the 1.0.x series. If your panel says it has an available update, apply it first via Settings > Updates.
  • If you are migrating email accounts with live MX records, plan for a short period where both servers receive mail. MX cutover is always the last step.

Where the migration lives in the Panelica sidebar

The Migration wizard is nested under the Backup section in the left sidebar. Below is a representation of the sidebar structure showing exactly where to click:

Panelica Dashboard Hosting Domains Email Databases File Manager Backup v Snapshots Migration Remote Schedule Security

The Migration item appears under Backup in the left sidebar. Click it to launch the 5-step wizard. On a fresh Panelica install the Backup section is collapsed by default — click the Backup row to expand it and reveal the four children: Snapshots, Migration, Remote, and Schedule.

Migration is accessible on Professional and higher plans. If you are on the free trial, Migration is available for the full 14-day trial period.

The 5-step wizard at a glance

Before walking each step in detail, here is the full wizard progress indicator as it appears at the top of every migration screen:

Connect
Discover
Configure
Migrate
Complete

The step indicator sits at the top of every wizard screen. Completed steps turn green with a check mark. The active step glows blue with a subtle ring. Steps you have not reached yet stay gray. You can click a completed step to revisit it — though certain fields lock once the migration itself starts at step 4.

Step 1 — Connect: pointing Panelica at your cPanel server

The first screen asks for three things: the source server's hostname or IP address, a username with SSH access, and the corresponding password or key passphrase. Below is what the connection form looks like:

Source Server Connection

Not Connected

Enter the hostname (or IP) of your cPanel server in the Host field. For username, root works if you have root SSH access. If your server disables root SSH, use a sudo-capable user — the wizard escalates privileges during file transfer.

Click Test Connection. Panelica opens an SSH session to the source server, verifies the credentials, and checks that rsync is available. The connection avatar on the right changes from gray to green on success. If the test fails, the error message tells you exactly what went wrong: wrong port, refused connection, auth failure, or missing rsync binary.

One thing to note: the wizard does not store your cPanel password permanently. It holds the credentials in the active migration session only. They are discarded once the migration completes or is cancelled.

Step 2 — Discover: what Panelica finds, what you select

Once connected, Panelica scans the cPanel server and lists everything it finds. Below is what the Discover step looks like once the scan completes:

47
Sites
31
Databases
89
Emails
18.4 GB
Total Size
🔍
acmecorp.com 3.2 GB Active
shop.acmecorp.com 890 MB Active
dev.acmecorp.com 120 MB Disabled

The counter strip at the top gives you an instant summary of what the scanner found on the source server. Individual site rows each have a checkbox — checked means it will be migrated, unchecked means it will be skipped. The search bar filters the list in real time, which is genuinely useful when the source server has 50+ domains.

The Rescan button re-runs discovery if you made changes on the source server between connection and this step. Show Results lets you preview what would be created before committing — useful to verify the domain list matches your expectations. When you are satisfied with the selection, click Continue.

Step 3 — Configure: choosing how users map across panels

cPanel and Panelica both use user accounts to group domains, databases, and email. Step 3 is where you decide how existing cPanel accounts map to Panelica users. There are three modes:

Auto Create
One user per source account. Best for resellers.
RECOMMENDED
+
Single User
All sites attached to one new user.
Existing User
Assign all sites to a user that already exists. 3 available.
Plan Limits
Domains
30 / 100
Disk
12 GB / 50 GB
Databases
12 / 50
Emails
85 / 100

Auto Create is the right choice for most migrations, especially if you are a reseller who managed multiple cPanel accounts. Panelica creates one new user per source cPanel account and assigns the appropriate sites to each. Users inherit the username from the source where possible.

Single User collapses everything into one new Panelica user. Use this when you are migrating your own cPanel account — you are the only user and you want all your domains under one account.

Existing User lets you pick a user that already exists in Panelica. This is useful if you are doing incremental migrations — you already set up the user manually and want the wizard to populate their sites and databases.

The plan limits banner at the bottom of step 3 is one of the more thoughtful details in the wizard. It shows exactly how many domains, databases, and emails you are about to add against your current plan limits, with color coding: green means plenty of room, yellow means you are close, red means you would exceed the limit. You cannot advance past step 3 if the migration would exceed a hard limit.

What runs in the background: the 11-stage pipeline

Between clicking Start and seeing the completion screen, Panelica runs each selected site through an 11-stage pipeline. Understanding the stages helps you interpret the per-site status badges during step 4.

# Stage What happens
1ConnectSSH session established, lock file written
2Health CheckVerifies rsync, MySQL access, and disk space on source
3Site DiscoveryEnumerates domains, subdomains, document roots
4Credential HarvestReads MySQL user hashes directly (no password resets)
5User CreateCreates Linux user + Panelica user record on destination
6Domain Create9-step domain provisioning: nginx vhost, PHP-FPM pool, SSL placeholder
7File Transferrsync over SSH, preserves ownership, excludes cPanel-specific cruft
8Database Importmysqldump + restore; MySQL user hashes transplanted verbatim
9Email ImportMailboxes copied via rsync, Dovecot indexes rebuilt, DKIM keys re-generated
10SSLLet's Encrypt certificate requested if DNS already points here; skipped otherwise
11VerifyHTTP probe to each migrated domain, site health status recorded

Stage 4 — Credential Harvest — deserves a special mention because it is one of the biggest pain points with manual cPanel migrations. Traditional panels reset all MySQL passwords during import because they cannot read the original hashes. Panelica reads the hash directly from mysql.user on the source server and transplants it to the destination, meaning your WordPress wp-config.php files do not need to be edited. The database username, password, and hash all transfer intact.

The pipeline stores a checkpoint after each stage. If a network hiccup interrupts the migration at stage 7, you can resume from stage 7 — you do not restart from stage 1.

Step 4 — Migrate: live progress, pause, cancel

Step 4 is where the actual data movement happens. The screen updates in real time via WebSocket. Below is what the in-progress view looks like:

Migrating 47 sites · 38 complete · 7 in progress · 2 pending
acmecorp.com Files transfer 78%
shop.acmecorp.com Database import 22%
blog.acmecorp.com Complete ✓ 100%
dev.acmecorp.com Pending 0%

The overall progress bar at the top represents the aggregate across all selected sites. Each site below it has its own mini progress bar and a current stage label — you can see which site is transferring files, which is importing its database, and which has finished.

Pause suspends active transfers cleanly. Panelica writes a checkpoint, closes the rsync sessions gracefully, and waits. Hitting Resume picks up exactly where it left off. This is useful if you need to migrate during business hours and want to pause during peak traffic windows.

Cancel aborts the migration and rolls back whatever was partially applied. Panelica removes partially created users, domains, and databases. The source server is not modified at any point — Cancel is safe to use even mid-flight.

A live log stream beneath the site list shows raw pipeline output. If something fails, the error message appears here first, usually with enough context to identify whether the issue is a permissions problem, a disk space constraint, or a network hiccup.

Step 5 — Complete: verification before DNS cutover

Once all sites finish their pipeline run, the wizard transitions to the Complete screen. Below is what the completion summary looks like:

Migration Complete

All selected sites have been migrated to this server.

47
Sites
18.4 GB
Data
2h 14m
Time
0
Failed

The completion screen shows four numbers: total sites migrated, total data transferred, elapsed time, and failed sites. A zero in the Failed column means the pipeline completed successfully for every domain.

Before you touch DNS, do the following verification pass using the three buttons on this screen. Open View Domains and confirm each domain is listed with its document root and PHP version showing correctly. Open Email Accounts and spot-check two or three mailboxes. Open Databases and confirm the database names and user associations match what was on the source. This takes about five minutes and catches the rare cases where a site needs a manual adjustment before cutover.

DNS cutover: the only manual step left

The migration wizard does not touch your DNS records. That is intentional — it lets you migrate, verify, and stage everything while the source server is still serving live traffic. When you are ready to cut over, the process is straightforward.

For each migrated domain, update the A record (and AAAA if applicable) to point to your Panelica server's IP. If you are using Panelica's Cloudflare integration, you can update all the A records in batch via the Cloudflare section of the Domains panel. If you are managing your own nameservers with Panelica's built-in BIND, the DNS zone records are under Domains > DNS for each domain.

Set your DNS TTL to 300 seconds (5 minutes) a few hours before cutover if you can. This ensures the old records expire quickly after you update them. If your TTL was already 86400 (24 hours), you will need to wait out that window — or keep the source server running for another day.

For email, update the MX record after verifying that mailboxes exist and are reachable on the Panelica side. Panelica auto-generates DKIM keys during the email import stage, and SPF and DMARC records are handled by the DNS editor under Email > Authentication. The email authentication guide covers this in detail if you are setting up mail DNS for the first time.

Common cPanel gotchas and how Panelica handles them

Every cPanel migration has at least one surprise. Here are the most common ones and what happens in Panelica:

cPanel situation What Panelica does
MySQL user passwords stored as hashes — you never knew the plaintextPanelica reads and transplants the native hash verbatim. No resets, no wp-config edits.
Multiple PHP versions across accounts (7.4, 8.0, 8.1, 8.2)Panelica detects the PHP version set in the cPanel account and creates a matching FPM pool. PHP 8.1 through 8.5 are available natively.
WordPress sites with hardcoded siteurl in wp-config pointing to the old serverwp-config.php is copied verbatim. If the siteurl is a domain (not an IP), it keeps working once DNS propagates. The Panelica WordPress manager lets you update it manually if needed.
cPanel email accounts using a legacy Dovecot maildir layoutPanelica's Dovecot installation uses a compatible maildir layout. Mail is copied via rsync and Dovecot indexes are rebuilt automatically post-import.
SSL certificates issued by cPanel's AutoSSLPanelica does not import cPanel SSL certs — it requests fresh Let's Encrypt certificates after import. If DNS does not yet point here, SSL issuance is deferred until after DNS cutover.
cPanel subdomains stored as separate vhostsEach cPanel subdomain appears as a separate item in the discovery list. You can select or deselect subdomains individually.
cPanel .htaccess mod_rewrite rulesPanelica runs Apache on port 7080/7081 as a backend option, and Nginx handles most rewrites. .htaccess files are transferred as-is. Complex mod_rewrite setups may need review.

Choosing your migration window

The right time to run a migration depends on your sites' traffic patterns. For low-traffic personal or portfolio sites, any time of day works. For e-commerce sites or anything processing transactions, migrate during your lowest-traffic window and keep the source server live until you have verified the destination.

File transfer time is the main variable. A 2 GB site on a fast connection between two Hetzner servers in the same datacenter completes in under two minutes. A 20 GB site on a cross-continent transfer over a congested pipe might take 45 minutes. The Pause/Resume controls exist precisely for this scenario — you can start a large migration, pause it before business hours, and resume it overnight.

The migration pipeline is designed to be a cPanel alternative that removes the need for manual work. No cPanel-specific export scripts, no database dumps you manage by hand, no forgotten DKIM keys. The wizard handles the orchestration and you get a verified, runnable copy of your sites on the new server. The only decision left after migration completes is when to flip DNS.

If you are still evaluating whether Panelica is the right cPanel alternative for your stack, see the comparison with traditional panels and the getting started guide for new installs. For a broader view of what migrations look like from other panels, the email setup walkthrough and Cloudflare integration post are worth reading before you start.

Note: UI mockups in this article are simplified representations of the actual Panelica panel interface, drawn for clarity. The form fields, button labels, and step names match the live wizard exactly. Walkthrough verified 2026-05-24 against Panelica panel source code (/opt/panelica/ServerPanel/src/pages/Backup/Migration/).

Security-first hosting panel

Ready to leave cPanel behind?

Panelica is a modern, security-first hosting panel — isolated services, built-in Docker and AI-assisted management. Migrate from cPanel without losing a single file.

Zero-downtime migration Fully isolated services Cancel anytime
Share:
Looking for a cPanel alternative?