How to migrate from DirectAdmin to a new VPS without losing mail
Migrate from DirectAdmin to a new VPS: make the backups, know what carries over, import with a panel or by hand, switch DNS and verify mail and SSL.

Key takeaways
- A DirectAdmin user backup holds websites, databases, mailboxes, forwarders and cron jobs.
- Lower DNS TTLs to about 300 seconds a day ahead so the switch takes minutes.
- Keep the old server running for several days after the DNS change to catch late mail and visitors.
- ZoPanel imports DirectAdmin backups directly, one account at a time or a whole server over SSH.
To migrate from DirectAdmin to a new VPS, create a full backup of each user on the old server (a user.RESELLER.USER.tar.gz or .tar.zst file), import it on the new server with a panel that reads DirectAdmin backups or restore the files, databases and mail by hand, test thoroughly, and only then switch DNS. The old server is untouched throughout, so if anything goes wrong, you simply do not switch.
This guide is for anyone running DirectAdmin who wants to move to another VPS, whether because of license costs, a change of provider or a different panel. We cover preparation, what does and does not carry over, migrating with ZoPanel, migrating by hand, and a checklist for after the DNS switch.
Why do people move away from DirectAdmin?
DirectAdmin remains a stable, widely used panel. People rarely move because it is bad; usually it is one of these:
- Licenses priced by number of accounts. At the time of writing (October 2026), DirectAdmin's pricing page lists Personal PLUS at USD 5/month for 2 accounts, Lite at USD 15/month for 10 accounts and Standard at USD 29/month with unlimited accounts. Prices change, so check the official page.
- A new VPS provider or a bigger server.
- Different features: built-in account isolation, Docker apps, WordPress staging.
Whatever the reason, the process is the same. If you are moving to another DirectAdmin server, DirectAdmin's own backup and restore is the shortest path. The rest of this guide is about moving to a different environment.
What should you prepare before migrating from DirectAdmin?
1. Inventory the old server
For each account, write down:
- domains, subdomains and domain pointers;
- the PHP version each site runs;
- MySQL/MariaDB databases and which applications use them;
- mailboxes, forwarders and autoresponders;
- cron jobs;
- which domains use the old server's DNS and which use external DNS (Cloudflare, the registrar);
- which sites depend on
.htaccess(WordPress, Laravel, older PHP apps).
2. Lower DNS TTLs a day ahead
Set the TTL of A, AAAA and MX records to about 300 seconds at least a day before the move. Once the old TTL (often 3600 or 14400 seconds) has expired everywhere, the actual switch propagates in minutes.
3. Prepare the new server
The new VPS needs disk space for the data plus room for the backup files during import. If you are moving mail, set reverse DNS (PTR) for the new IP at your VPS provider and configure SPF and DKIM for the new server.
What does a DirectAdmin backup contain?
A DirectAdmin user backup is a compressed archive with the website files, database dumps, domain configuration, mailboxes, mail settings and cron jobs. There are two ways to create one:
- As admin or reseller: Admin/Reseller Backup/Transfer → Create Backup, select the user and tick every item.
- As the user: Create/Restore Backups → Create Backup.
The file is named user.RESELLER.USER.tar.gz or user.RESELLER.USER.tar.zst. An Admin Backup of many users usually lands in /home/admin/admin_backups. Download it over SFTP, or let the new server fetch it from a URL.
How to migrate from DirectAdmin with ZoPanel
ZoPanel reads DirectAdmin backups directly and recreates the account on the new server. The backup is treated as untrusted input: it is never extracted as root, paths are confined to the account and sizes are capped.
What carries over
| Item | Carried over | Notes |
|---|---|---|
| Account and panel password | Yes | The old password keeps working for the panel and SFTP when its hash format can be checked; otherwise the log asks you to set a new one. |
| Websites (main, subdomains, aliases) | Yes | Domain pointers are not created as sites; the log lists them so you can add redirects or aliases. |
| Website files | Yes | Links pointing outside the account are not copied. |
| MySQL/MariaDB databases and users | Yes | Passwords kept when the hash is portable (mysql_native_password); otherwise a new one is written into the app's config file. |
| Mailboxes and messages | Yes | Passwords and quotas kept; Maildir messages imported. |
| Forwarders and autoresponders | Yes | Autoresponders become mailbox rules. |
| Cron jobs | Yes | Up to 100. |
| PHP version | No | The server's default PHP is used; change it on the PHP & config tab. |
| DNS zones, FTP accounts, SSL certificates | No | Free certificates are issued once DNS points to the new server. |
This table comes from the migration docs. Anything not carried over is noted in the log with the reason.
One account at a time
- Open Migrate in in the admin menu.
- Upload a backup (up to 50 GB) or Download from a URL (public addresses only).
- Review the analysis: websites, databases, mailboxes, forwarders, cron jobs. Resolve before importing lists conflicts such as a username or domain that already exists. You can change Username here, choose a Package, and see which passwords are kept.
- Click Start import and follow the task log.
If the mail server is not installed yet, mailboxes are imported after you install it; the converted archive is kept until then.
A whole server at once
With Migrate in → Move a whole server, you enter the old DirectAdmin server's address and its root SSH password or private key (used for this move only, never stored). ZoPanel detects DirectAdmin, lists every account with its main domain and plan, runs DirectAdmin's own backup task on the old server, then downloads and imports the accounts one after another. You can also point it at an existing backup folder such as /home/admin/admin_backups.
The move runs in the background, so you can close the browser. Temporary files are removed on both servers after each account, so the disk only needs room for one account at a time. A failed account is reported and the next one still moves.
Sites that rely on .htaccess
DirectAdmin servers commonly run Apache, so many sites depend on .htaccess. ZoPanel serves sites with nginx, which ignores .htaccess. For sites that need it, turn on .htaccess support (Apache mode) on the Tools tab: nginx keeps handling SSL, the firewall and static files while Apache applies .htaccess. For WordPress, the WordPress rewrite rules on the PHP & config tab are enough, with no Apache needed. See websites and PHP.
How to migrate from DirectAdmin manually
If the new server has no panel, or one without a DirectAdmin importer, you move each piece yourself. It takes much longer, but you will know your data inside out.
Website files
On DirectAdmin, each domain's files usually live in /home/USER/domains/DOMAIN/public_html. Pull them from the new server with rsync over SSH:
rsync -avz --progress root@OLD-IP:/home/USER/domains/example.com/public_html/ \
/var/www/example.com/public/
Run it once before the DNS switch and again just before switching to pick up new files (rsync only copies what changed).
Databases
On the old server:
mysqldump --single-transaction --routines --triggers USER_dbname > USER_dbname.sql
Copy the dump across, create the database and user, then run mariadb USER_dbname < USER_dbname.sql. If you rename the database or user, update the application's config (wp-config.php, .env). For sites with constantly changing data, such as shops, take the final dump during a maintenance window so no orders are lost.
Mail is the hardest part by hand. The safe approach is to create the same mailboxes on the new server and sync them over IMAP with a tool such as imapsync: once before you change MX, and once after to catch late arrivals. You need each mailbox's password on both ends.
Cron, SSL and DNS
Recreate the cron jobs, issue new certificates with Certbot once DNS points to the new server, and recreate DNS records (A, MX, and TXT for SPF, DKIM and DMARC) wherever your DNS is hosted.
Testing before and after the DNS switch
Before switching, test the new server without affecting visitors: add NEW-IP example.com www.example.com to the hosts file on your computer. Your browser will warn about the certificate because SSL is not issued yet; that is expected. Check the home page, admin login, contact forms, cart and file uploads.
When switching, point the A/AAAA records (and MX if the new server handles mail) at the new IP. With a 300-second TTL, most visitors reach the new server within minutes. For a deeper look at cut-over strategy, see how to migrate a website without downtime.
After switching:
- Remove the
hostsentry and test again through real DNS. - Confirm SSL has been issued for every domain.
- Send test mail in and out; check SPF, DKIM, DMARC and reverse DNS.
- Set the PHP version for sites that need something other than the default.
- Check that cron jobs run on time.
- Take the first backup on the new server.
- Keep the DirectAdmin server running for several days, to receive mail from senders that still cache the old IP and to keep a way back. Cancel the old license and VPS only when you are sure everything works.
Common mistakes when migrating from DirectAdmin
- Not lowering the TTL: the switch drags on for hours, with some visitors on the old server and some on the new, splitting orders between them.
- Changing MX before mailboxes exist on the new server: mail bounces back to senders.
- Cancelling the old server too early: no way back, and late mail is lost.
- Forgetting domain pointers: extra domains that pointed to the main site stop working.
- Ignoring
.htaccess: older PHP sites return 404s, or folders that were protected become reachable on nginx. - No reverse DNS for the new IP: outgoing mail lands in spam or gets rejected.
Conclusion
Migrating from DirectAdmin is not risky if you keep the order: inventory, lower TTLs, back up, import, test through the hosts file, then switch DNS and keep the old server for a few more days. Databases and mail are the expensive parts by hand; an importer that reads DirectAdmin backups directly saves most of that time.
You can try ZoPanel on the Free plan (3 hosting accounts, 10 websites, 10 databases, no time limit), including the DirectAdmin importer and whole-server moves, which is enough to trial a few accounts. Reseller accounts and remote backups to S3 need Pro. To move a whole server with many accounts, or for unlimited websites, Pro is USD 49 a year per server; see pricing for current prices.
Frequently asked questions
Will my websites go down while migrating from DirectAdmin?
Not if you do it in the right order. The old server keeps running throughout, and you only switch DNS once the new one is ready. With TTLs lowered to 300 seconds the handover takes minutes, and both servers can serve visitors during it.
Do users need to reset their email passwords?
With ZoPanel, mailbox passwords and quotas are kept when importing a DirectAdmin backup, so nobody has to reconfigure phones or Outlook. With a manual move, you have to recreate each mailbox and set its password.
Can I use a DirectAdmin backup in .tar.zst format?
Yes. ZoPanel accepts both user.RESELLER.USER.tar.gz and .tar.zst. For a manual move, extract a .tar.zst archive with tar --zstd -xf (the zstd package must be installed).
Can I move a whole DirectAdmin server with many accounts at once?
Yes. ZoPanel's Move a whole server connects to the DirectAdmin server over SSH, lists every account, creates the backups and imports the accounts one by one. Accounts whose name already exists on the new server are marked and skipped.
Is each site's PHP version preserved?
Not automatically. Sites are imported with the new server's default PHP version. Note each site's PHP version before the move and set it again on the PHP & config tab after importing.
Install ZoPanel free
One command on a fresh Ubuntu or Debian server. Up and running in minutes.
Install in 5 minutesKeep reading

Best control panel for WordPress hosting in 2026
The best control panel for WordPress: page cache, staging, safe updates and isolation compared across cPanel, Plesk, CyberPanel, CloudPanel and more.

CloudPanel alternatives with email, DNS and resellers
A CloudPanel alternative makes sense when you need email, DNS or reseller hosting. Compare HestiaCP, aaPanel, Virtualmin, DirectAdmin and ZoPanel.

Coolify vs a hosting control panel: which one do you need?
Coolify vs cPanel-style hosting panels: what Coolify, Dokploy and CapRover do, what a panel does, and how to choose for Docker apps, PHP sites and email.