SmashPanel – home
Charcoal illustration of files and databases moving in gold streams from one server to another.

// Migrations

Move a cPanel account with the tools in the panel

Three ways to import a site yourself: upload a full account backup, pull a live server over SSH, or run the command-line import. Plesk and DirectAdmin are planned.

Migration articleContact support

How a move goes

  1. In the admin console, open Transfer. Upload a full account backup, or connect to the old server over root SSH.
  2. Choose the target domain and the document root. The backup path also restores the database dump it finds and remaps DNS onto the new domain. The live path copies public_html and scans the files.
  3. Recreate mailboxes and copy mail with imapsync, add any extra domains, and recreate cron jobs as HTTP requests. Check the site, then point DNS at this server. New certificates are issued once the names resolve here.

These are self-service tools. Questions? Contact support.

Full account backup

Admin, Transfer, source “Full account backup”. Upload a WHM full account backup (.tar.gz or .tgz, including cpmove-*, backup-* and home-directory layouts).

The panel reads the archive and shows the cPanel user, the original domain, document roots, MySQL dumps and DNS zones. You set the target domain, which can differ from the original, pick the document root, and choose PHP and the web server. Apache is the better choice for a site that relies on .htaccess.

The job creates the client, copies files, scans them, restores the database dump, imports DNS onto the new domain, and fixes permissions. Progress is logged. The default upload limit is 20 GB. One document root is imported per transfer. Transfers run on the local server.

Live server over SSH

Admin, Transfer, source “Live cPanel server”. Inventory uses root SSH to the old server. The job copies public_html and scans the files. A database dump and a zone file are imported only when you supply them, and those files need to be on the new server. Addon and subdomain document roots are a separate copy. Mail is not included.

Command-line import

The same pieces are available as commands, using example.com here as the domain. Replace the placeholders with the account you are moving.

bash scripts/migration/cpanel-import.sh inventory --cpanel-host old.example.com --list-accounts
bash scripts/migration/cpanel-import.sh account --config account.json
bash scripts/migration/cpanel-import.sh files --cpanel-user USER --target <account-data-dir>
bash scripts/migration/cpanel-import.sh database --dump-file dump.sql --client USER
bash scripts/migration/cpanel-import.sh dns --zone-file zone.db --domain example.com

The account command creates the client through the panel as a signed-in administrator. If that session is not available, create the client in the admin console and run the file, database and DNS commands. DNS import accepts A, AAAA, CNAME, MX, TXT, NS and SRV. Add CAA and HTTPS records in the zone editor afterwards.

What comes across, and what does not

cPanel backup upload
ItemWhat the backup upload does
Website filesThe document root you choose. One root per transfer.
DatabaseThe database dump the archive contains, into the account's MariaDB. If several databases are present, check the job log and import any that were skipped.
DNSThe zone, rewritten from the old domain onto the new one.
MailNot in this job. Recreate mailboxes with new passwords and copy messages with imapsync. Change MX last.
SSLNot copied. The proxy issues a new certificate after DNS points here.
CronNot copied. Recreate each job as an HTTP request.
FTP accountsNot copied. Create SFTP users in the panel.
Addon domainsNot created as panel domains. Add them after the import.
PasswordsNot copied. The panel password and mailbox passwords are new.
CMS addressesNot rewritten. If the domain changes, run a search-and-replace, for example with WP-CLI.

Mail

The email command lists mailboxes and runs imapsync as a dry run only:

bash scripts/migration/cpanel-import.sh email --source-host old.example.com --domain example.com

For a real copy, run imapsync yourself for each mailbox after the mailbox exists on SmashPanel with a new password. Leave the MX change until the messages are across and you have tested delivery.

Other panels

Plesk Planned

DirectAdmin Planned

There is no importer for either yet.

Questions

Is migration something you do for me?

No. The backup wizard, the live SSH transfer and the command-line import are tools you run. Questions? Email support@smashhithosting.com.

How large a backup can I upload?

20 GB by default. One document root is imported per transfer, on the local server.

Does email move with the site?

No. Create the mailboxes with new passwords, copy mail with imapsync, and change MX last. The bundled email command is a dry run.

What happens to the old SSL certificate?

It is not imported. A new Let's Encrypt certificate is issued after the domain points at this server and port 80 is reachable.

Can I import from Plesk or DirectAdmin?

Not yet. Both are planned. cPanel is the importer that exists today.

Will the site keep its cPanel passwords?

No. The panel login and the mailbox passwords are new. CMS addresses are not rewritten if the domain changes.

Read the install steps first

The server needs Ubuntu 22.04 or 24.04 LTS, DNS for the panel hostname, and the ports in the Get Started guide.

Get startedBrowse the knowledge base