Prerequisites
Before migrating, make sure you have:
- SSH access to both old and new servers
- New server with fresh OS installed
- Sufficient disk space on new server
Step 1: Backup All Data on Old Server
ssh hxroot@OLD_SERVER_IP -p 22
/usr/local/hestia/bin/v-backup-users
Backup config:
mkdir /backup/hestia-migration
cp /usr/local/hestia/conf/hestia.conf /backup/hestia-migration/
mysqldump hestia > /backup/hestia-migration/hestia_db.sql
Step 2: Install HestiaCP on New Server
On new server:
ssh hxroot@NEW_SERVER_IP -p 22
wget https://raw.githubusercontent.com/hestiacp/hestiacp/release/install/hst-install.sh
bash hst-install.sh --interactive no
Step 3: Transfer Backup Files
On old server:
scp /backup/*.tar hxroot@NEW_SERVER_IP:/backup/
scp /backup/hestia-migration/* hxroot@NEW_SERVER_IP:/backup/hestia-migration/
Step 4: Restore on New Server
On new server:
/usr/local/hestia/bin/v-restore-user admin /backup/admin.20260429.tar
Repeat for each user.
Restore database:
mysql hestia < /backup/hestia-migration/hestia_db.sql
Restore configuration:
cp /backup/hestia-migration/hestia.conf /usr/local/hestia/conf/hestia.conf
Step 5: Update DNS and Point Domains
- Update domain DNS records to new server IP
- Update nameservers if applicable
- Wait for propagation (1-24 hours)
Step 6: Test
- Log in to HestiaCP on new server
- Verify all domains work
- Test email functionality
- Check database connections
Step 7: Decommission Old Server (After Testing)
After confirming everything works, keep old server for 1-2 weeks as backup.
✅ HestiaCP has been migrated to new server!