Moving sites from Plesk
What the Plesk server needs, how to discover, map and import its domains, and what comes across and what doesn't.
For server admins: the steps need admin access to the panel or the server.
Server → Backups & migration → Plesk import copies domains from a Plesk server into Hostctl: sites, mail, databases, DNS and more. You choose which domains, which parts of each, and which Hostctl account each one goes to. Hostctl doesn't change Plesk's sites or settings, and they keep running, so you can migrate a few domains, check them, and carry on later.
Connect over Direct SSH if you can. It's the only source that copies website files, stored mail and database contents. The other two sources create the domains, mailboxes and empty databases, but not what's in them.
What the Plesk server needs
- SSH access as
root, or as a user that can run commands withsudo. Sign in with a password, or with a private key stored on the Hostctl server (give its path under SSH Private Key Path). - The
pleskcommand, which every Plesk server has. Hostctl uses it to list domains and owners, and Plesk's own backup tool to fetch databases and passwords.
If you can't open SSH, Hostctl can also read a Plesk backup unpacked into a folder on this server (Extracted backup folder), or ask the Plesk API.
1. Discover what's on the Plesk server
- Open Server → Backups & migration → Plesk import.
- Under Source, choose Direct SSH and fill in SSH Host, SSH Port, SSH Username and the password or key.
- Under Discovery Scope, untick anything you don't want to bring over.
- Tick Apply default DNS template when creating domains if new domains should get your standard DNS records.
- Press Discover.
Discovery lists every domain it found, with its subdomains, mailboxes, databases and so on. It only reads from Plesk.
2. Map domains to accounts
Each domain needs a Hostctl account to go to.
- Create & Map Accounts creates a Hostctl account for each Plesk owner that doesn't have one, makes Plesk resellers resellers here, and assigns their clients to them. Existing admins and conflicting assignments are left for you to sort out on Accounts.
- New Account creates one account by hand, and Assign all domains to puts every domain in one account.
- For each domain, tick the parts to import, and choose whether its files go to this server or to S3 storage.
Imports count against the account's plan like anything else. Put accounts on a plan big enough for what's coming before you start.
With Direct SSH, Hostctl reads passwords from Plesk's own backup as it imports each domain, so mailboxes, database users and FTP logins keep their current passwords. Download Server Credentials fetches them for the whole server in one go.
3. Review and start
Press Review import on one domain, or Review all domains. The review shows each domain's owner, the parts selected and where its files will go. Press Start import and confirm.
Before changing anything, Hostctl installs the features the import needs, such as Email Server or MySQL Server, if they aren't installed yet.
4. Follow progress
4 · Progress shows each domain's result, part by part, as created, skipped or failed. Large sites going to S3 keep uploading in the background, under Background S3 Uploads.
Each migration is saved. Press Saved to reopen one later and import more domains from it.
What comes across
- Domains, subdomains and DNS records.
- Website files, and statistics history.
- Mailboxes and their stored mail, keeping their passwords when Plesk's backup holds them. A mailbox without one gets a new random password.
- Databases with their contents, and database users with their access.
- FTP accounts.
What doesn't
- Cron jobs are found but not imported. Recreate them by hand.
- SSL certificates: only their names come across. Issue new Let's Encrypt certificates once the domain points at this server.
- A domain that already exists in another Hostctl account is blocked, and so is one that exists in the chosen account with different capitals. Its subdomains are left out with it.
- Anything already in the target account, such as a mailbox with the same name, is skipped rather than overwritten.
Before switching DNS
Check each site and mailbox on Hostctl before you point the domain's DNS at this server. Discovery and import only report what was copied; they don't prove a site works. Once you're happy, move the DNS, then remove the domain from Plesk.