// Knowledge base
Migrate from cPanel
Backup upload, live SSH, the command-line import, and what does not move.
cPanel imports are self-service. The migrations page walks through the same steps. Questions? Email support@smashhithosting.com.
Backup upload
Admin, Transfer, source “Full account backup”. Upload a .tar.gz or .tgz full account backup, up to 20 GB. The panel shows the cPanel user, domain, document roots, MySQL dumps and zones. Set the target domain (it can differ), pick one document root, and choose the runtime. Use Apache for .htaccess sites.
The job creates the client, copies files, scans them (ClamAV when it is installed, plus PHP webshell checks), restores the database dump, remaps DNS onto the new domain and fixes permissions. One document root per transfer. The transfer runs on the local server.
Live server
Source “Live cPanel server” needs root SSH from this server to the old one. It inventories accounts, copies public_html and scans the files. Database and DNS are imported only if you provide a dump and a zone file on the new server. Addon and subdomain roots are a separate copy.
Command line
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.comThe account command needs an administrator session in the panel. Otherwise create the client in the admin console and run the file, database and DNS steps. DNS import accepts A, AAAA, CNAME, MX, TXT, NS and SRV. Add CAA and HTTPS in the zone editor.
What you still do by hand
- Mail: recreate mailboxes with new passwords. The email command is a dry run:
bash scripts/migration/cpanel-import.sh email --source-host old.example.com --domain example.com- Then run imapsync yourself for each mailbox. Change MX last.
- Cron: recreate as HTTP requests. See Cron jobs.
- SSL: issued again after DNS points here. The old certificate is not imported.
- Passwords: the panel login and mailbox passwords are new.
- Addon domains: add them in the panel after the main root is in.
- CMS URLs: not rewritten. Run a search-and-replace if the domain changed.
Before cutover, lower the DNS TTL (300 seconds is a practical value) and test the site by pointing the name at the new server in your hosts file. Move a few accounts at a time. Plesk and DirectAdmin importers do not exist yet. Both are planned.