Move a project to another server
You can run two SixPanel servers and keep projects on whichever one you like — some here, some there, both live at the same time. Nothing has to be moved all at once, and a project you do not move keeps running exactly where it is.
This page is about Settings → Other servers.
What this is for
Three situations where it earns its place:
- One shop has outgrown the server it shares with two others, and you want it on a box of its own.
- You are moving to a bigger or cheaper provider and would rather do it one shop at a time than all at once.
- You keep one customer's shop on its own server for their peace of mind.
Step 1 — link the other server, once
The other server must already have SixPanel installed. Install it there first, the same way you installed this one.
Then, on the server you are moving from:
- Open Settings → Other servers.
- Open Link a server and fill in its address, its SSH user (usually
root), its SSH port, and either the root password or an SSH private key. - Give it a name you will recognise — "Shop 2 server" is more use than an IP address six months later.
- Press Link this server.
The panel dials it straight away and tells you what it found: reachable with SixPanel installed, reachable but no SixPanel, or not reachable and why. A link that saves but cannot be reached is shown as a problem, not a success — better to know now than at the first move.
The password or key you give is stored on this server only, readable by root alone, and deleted when you unlink. It is used for exactly two things: creating the project on the other server, and sending the data.
The link stays until you remove it. You do not re-enter anything per move.
Step 2 — move a project
In the same tab, under Move a project to another server, choose the project and the server, and press Move this project.
Read the confirmation before you press it. Then the panel:
- Checks the other server is ready — it answers, SixPanel is installed, the project name is free there, and it has enough disk space. If any of those fail, the move stops before anything is copied and tells you which.
- Backs this project up here, and verifies the backup. Not as the way the data travels — as the way back if something goes wrong.
- Asks the other server to create the project. That server does it, with its own database, its own database user, its own PHP pool, its own Redis instance and its own ports — so nothing collides with what already runs there.
- Pauses this project here. Only this one. Your other shops keep serving.
- Sends the configuration, the uploaded files, then the database.
- Brings the app up on the other server — migrations and caches.
- Compares both copies. It counts the rows in your database on both servers and compares them table by table, and it fingerprints every uploaded file on both sides and compares that too.
- Parks this copy.
What "parked" means, and why nothing is switched over
When the move finishes, your domain still points at this server, and this server still holds the project with all of its data. The only thing that changed here is that the project's background workers are stopped, so it is not taking new orders.
Nothing is deleted. That is deliberate: until you have looked at the shop on the new server yourself, this copy is the one you can go back to.
So the last part is yours:
- Check the shop on the other server.
- Point the domain at the new server's address.
- When you are happy — a day later, a week later — delete the old copy here by hand.
The panel will not do those three for you, and it will not decide which server is live. That decision needs somebody who can look at the shop.
If the copies do not match
The move fails and says what differed — a row count, a file count, a total size, or a file whose contents changed. Your project is still live on this server, its workers are started again, and nothing was switched over.
That is the point of comparing. "The copy finished" and "the copy is complete" are not the same claim.
Removing a link
Unlink takes the server off the list and deletes the stored password or key. Nothing on either server changes, and a project you already moved stays where it is.
How to check it worked
On the other server's panel, the project should appear in Projects, with its domain, its database and its uploaded files. Open the shop and look at a product image — that is the quickest proof that the uploads arrived, not just the database.
If it went wrong
- "already has a project called …" — the other server has a project with the same name. Rename or remove it there; this will not write over an existing shop.
- "SixPanel is not installed there" — install SixPanel on the other server first, then link it again.
- "has N GB free and this move needs about M GB" — the other server is too full. It needs room for the files plus the database import, not just the files.
- The move failed part-way — nothing is lost. This project is still live on this server, with all its data, and its workers are started again for you. A safety backup was taken before anything moved, so there is a copy to come back to either way.
The half-built project on the other server is removed automatically, so you can simply fix whatever the message said and start the move again. SixPanel only removes a project it created for that move itself: one you made on that server, or one with a shop installed, is never touched. If the tidy-up could not run, the log says so and names what to remove by hand.
Your domain and DNS are never changed by a move, failed or successful — so customers went on reaching the shop on this server throughout.