Move Deplo to another machine
BetaMove a whole Deplo, every team, account and server, to a fresh install on another machine. Your apps keep running.
Beta
This feature is currently beta/experimental and subject to change. It is not recommended for production. Try it out and share your feedback on our GitHub.
Move Deplo puts your whole Deplo on another machine: a bigger box, a different provider, or your own machine instead of a hosted one.
Everything comes across exactly as it was:
- every team, account, role, app, database, variable, domain and backup
- API tokens, deploy hooks and webhook addresses, which keep working
- backup history and recovery keys, so every old backup still restores
Your servers are not copied, they are handed over. Each one switches to the new Deplo where it stands. Apps keep running the whole time and no data is copied off any machine. The old Deplo's own machine becomes an ordinary server of the new Deplo.
Moving one team, not a whole Deplo?
Use Move from another Deplo instead. It brings one team into a Deplo that already runs other teams, onto that Deplo's servers.
Before you start
| Check | Why |
|---|---|
| The new Deplo is a fresh install | The move replaces everything on it. One account, no apps, no servers of its own. |
| Both run the same version | Update the older one under Settings -> Deplo -> Updates. |
| The old Deplo has an https address | The move carries every secret, so it never runs over plain http. |
| The new Deplo has an address | Set it under Settings -> Deplo. The old Deplo sends people there afterwards. |
| Every server is online | Each one is handed over during the move. |
| The new machine can reach each server on port 9443 | If a server's provider firewall only lets the old machine in, allow the new one too. |
| No migration is running on the old Deplo | Finish or stop it first. |
Both Deplos need an instance admin: one creates the move code on the old Deplo, one starts the move on the new one.
Move it
Install Deplo on the new machine
curl -fsSL https://deplo.build/install.sh | bashSign in, then leave it empty.
Create a move code on the old Deplo
Settings -> Migrations -> Move Deplo, then Create move code.
The code starts with dmove_, is shown once, and works for one hour until the new Deplo uses it.
Connect from the new Deplo
Settings -> Migrations -> Move Deplo. Under Move another Deplo here, enter:
- Old Deplo address:
https://deplo.example.com - Move code: the
dmove_...code
Then press Connect.
Review what moves
You see how many teams, people, apps, databases and servers come across, and every server with what it runs. The one marked Old Deplo is the old Deplo's own machine; it is handed over last.
A problem next to a server blocks the move until you fix it. Warnings do not.
Start the move
Press Start move and confirm. You land on the progress page:
- Copy everything: the old Deplo pauses changes and its data is copied here.
- Hand over servers: one server at a time.
- Finish: the old Deplo now only shows where it moved to.
Sign in again
The copy signs everyone out. Press Sign in and use the account you had on the old Deplo. Everyone else does the same.
Keep the progress page to yourself
Its address works without signing in, because the copy signs everyone out. Whoever has it can retry, cancel or finish the move.
While it runs
Both Deplos pause changes: no deploys, no edits, no scheduled backups or crons. Your apps keep serving traffic.
A banner says so on both sides. Queued deploys run on the new Deplo once the move finishes.
Keep your old address
Passkeys and webhook addresses are tied to the panel's address, not to the data. To keep them working:
Point the old domain at the new machine
For example, change the A record of deplo.example.com to the new machine's IP.
Set it as the panel address
Settings -> Deplo on the new Deplo. See Panel address and certificates.
If you use a new address instead, people sign in with their password and set up their passkeys again, and any webhook pointing at the old address has to be changed.
After the move
- The old Deplo stays up, paused. It shows where it moved to, and refuses every API token.
- The old machine is now a server of the new Deplo. Its apps keep running there. To empty it, move its apps to another server, then remove it under Settings -> Servers.
Do not run uninstall.sh on the old machine
It removes the server agent too, and that agent now belongs to the new Deplo. Every app on that machine would lose its connection to Deplo.
If something goes wrong
| What you see | What to do |
|---|---|
| A step failed with a reason | Fix what it names, then press Try again. The move resumes where it stopped. |
| You want to stop before any server was handed over | Cancel move. The old Deplo resumes, and anything copied here is deleted. |
| The old Deplo is gone for good mid-move | Finish without the old Deplo on the new one. Servers not handed over stay behind; add them again under Settings -> Servers. |
| The new Deplo is gone for good mid-move | Resume this Deplo on the old one. Servers already handed over must be added again. |
Once a server is handed over, a move only goes forward: Try again, or finish without the old Deplo.
Common messages
| Message | Fix |
|---|---|
| This Deplo already has apps or databases | Move into a fresh install. |
| The old Deplo runs an older version | Update it, then connect again. |
| This machine cannot reach web-1 at 203.0.113.20:9443 | Let the new machine through that server's firewall. |
| web-1 runs an older server agent | Update it from the old Deplo's Servers page, then check again. |
| The old Deplo cannot reach web-1 right now | Bring that server back online, then check again. |
| This move code expired | Create a new one on the old Deplo. |
| This move code is already in use by another Deplo | A code works for one new Deplo only. Create a new one. |
Next steps
Did this page help you?