A HestiaCP to cPanel migration takes your sites off a self-managed HestiaCP or VestaCP VPS and onto managed cPanel hosting, where updates, backups and security are handled for you. HestiaCP or VestaCP backups are not in cPanel's format, so you copy files, databases and email separately and rebuild each site in cPanel.
Before you start
- HestiaCP or VestaCP admin login and SSH root access to the server.
- An MdmHost cPanel account (see web hosting) or a reseller plan if you host several customers.
- An inventory of sites, databases, mailboxes, cron jobs and DNS records.
Take a full backup on HestiaCP or VestaCP
- In the web interface open the user, then Backups → Create Backup; or over SSH run
v-backup-user username. - The archive appears in
/backup/username.YYYY-MM-DD_HH-MM-SS.tar. Download it with SFTP as a fallback.
Where HestiaCP or VestaCP keeps the data
| Item | Typical path |
|---|---|
| Website files | /home/username/web/example.com/public_html |
/home/username/mail/example.com/ | |
| DNS zone | Web interface → DNS |
Make plain copies of each site over SSH; they restore anywhere:
tar -czf /root/site-files.tar.gz -C /path/to/document-root .mysqldump --single-transaction --routines dbname > /root/dbname.sqlHestiaCP to cPanel migration: restore in cPanel
- Add each extra domain under cPanel → Domains → Domains.
- Upload the tar file in File Manager to the domain's document root and extract it.
- Create databases and users in Databases → Manage My Databases and import the dumps in phpMyAdmin, or over SSH as in mysqldump backup and restore.
- Update database names, users and passwords in each app's config file.
- Large sites copy faster with rsync straight from the VPS: rsync guide.
Migrate email with IMAP sync
Mailboxes rarely restore cleanly between different control panels, so the dependable method is to create the same addresses in cPanel → Email → Email Accounts and copy the messages over IMAP:
- List every mailbox on HestiaCP or VestaCP with its approximate size.
- Create the same addresses on cPanel and give each enough quota.
- Run an IMAP sync per mailbox from the old server (by IP or hostname, since DNS still points there) to the new one. imapsync between servers explains the command; migrate email to cPanel over IMAP covers the cPanel side.
- After the DNS switch, run the same sync again. imapsync skips messages it has already copied, so the second pass only picks up mail that arrived in between.
Tip: Forwarders, autoresponders and filters are not copied by IMAP. Note them down on the old panel and recreate them under cPanel → Email.
Recreate DNS records
If HestiaCP served DNS, open DNS → example.com to see the records. Copy custom TXT, CNAME, SRV and verification records into cPanel → Zone Editor; leave out old A and MX records.
Switch DNS with minimal downtime
- One or two days before the move, lower the TTL of the A, AAAA and MX records at the current DNS host to 300 seconds. See DNS TTL strategy for a server migration.
- Test the new copy before switching: add the new server IP for the domain to your computer's
hostsfile and browse the site. - Freeze changes on the old site (no new orders, posts or comments), take a final database export and import it on cPanel if content has changed since the first copy.
- Either point the A records to the new IP, or change the domain's nameservers to the ones in your MdmHost welcome email. Changing records is faster when the TTL is already low; nameserver changes can take up to 24–48 hours.
- Keep the old account running for at least a week so slow resolvers and delayed mail still land somewhere.
Post-migration checks
- The site loads over HTTPS with a valid certificate. AutoSSL issues it once DNS points to MdmHost; run it from cPanel → Security → SSL/TLS Status if needed.
- Forms, logins, checkouts and uploads work, and there are no database connection errors.
- Sending and receiving email works from webmail and from your mail client, and SPF/DKIM pass in cPanel → Email → Email Deliverability.
- Cron jobs are recreated under cPanel → Advanced → Cron Jobs with the new paths (
/home/username/…). - The PHP version in cPanel → Software → MultiPHP Manager matches what the old server used.
FAQ
Can cPanel restore a HestiaCP backup?
No, but the archive contains plain folders and SQL dumps that you can import as shown.
Is VestaCP different?
HestiaCP is a fork of VestaCP; paths and the v-backup-user command are the same on both.
Can I keep the VPS as a backup?
Keep it for about a week after the switch, take a final snapshot and then cancel it.
