Preface
Recently, I found a cheaper cloud server and decided to migrate all existing services to it.\ I originally planned to use 1Panel's snapshot feature for a one-click migration, but during the actual operation, I discovered:
The blog space (MX Space) cannot be fully migrated via snapshot.
Therefore, I had to migrate manually and took the opportunity to document the entire process for future reference.
1. DNS Record Migration
First, you need to point the domain name to the new server.
- Log in to your domain's DNS service provider\
- Modify the A record → Point it to the new server's IP\
- It is recommended to set a low TTL (e.g., 600 seconds) for quicker propagation
Example:
Record Type Host Record Record Value ---------- ---------- ------------- A @ New Server IP A www New Server IP
Wait for the DNS changes to propagate (usually 1~30 minutes).
2. Migrating the MX Space Server
1. Package Data from the Old Server
The core data for MX Space is all located in the mx-space directory.
Example directory structure: /root/mx-space
On the old server, execute: cd /root tar -czvf mx-space.tar.gz mx-space
2. Upload to the New Server
scp mx-space.tar.gz root@NewServerIP:/root/ cd /root tar -xzvf mx-space.tar.gz
3. Start Docker Services
cd /root/mx-space/core docker compose pull docker compose up -d docker ps
4. Common Supplementary Checks
ufw allow 80 ufw allow 443 ufw allow 22
apt update apt install docker-compose-plugin -y
3. Deploying the Shiroi Theme (GitHub Actions)
Go to: Settings → Secrets and variables → Actions
You need to update: HOST / USER / PASSWORD / PORT / KEY / GH_PAT
Then run Actions → Run workflow
4. Post-Migration Verification
- Open your blog's domain\
- Check if it is accessible normally\
- Verify the admin panel\
- Test article, image, and comment functionalities
Migration Summary
- Modify DNS\
- Migrate /root/mx-space\
- Start services with Docker\
- Update GitHub Actions