Deplo

Move Deplo to another machine

Beta

Move 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

CheckWhy
The new Deplo is a fresh installThe move replaces everything on it. One account, no apps, no servers of its own.
Both run the same versionUpdate the older one under Settings -> Deplo -> Updates.
The old Deplo has an https addressThe move carries every secret, so it never runs over plain http.
The new Deplo has an addressSet it under Settings -> Deplo. The old Deplo sends people there afterwards.
Every server is onlineEach one is handed over during the move.
The new machine can reach each server on port 9443If a server's provider firewall only lets the old machine in, allow the new one too.
No migration is running on the old DeploFinish 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 | bash

Sign 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:

  1. Copy everything: the old Deplo pauses changes and its data is copied here.
  2. Hand over servers: one server at a time.
  3. 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 seeWhat to do
A step failed with a reasonFix what it names, then press Try again. The move resumes where it stopped.
You want to stop before any server was handed overCancel move. The old Deplo resumes, and anything copied here is deleted.
The old Deplo is gone for good mid-moveFinish 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-moveResume 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

MessageFix
This Deplo already has apps or databasesMove into a fresh install.
The old Deplo runs an older versionUpdate it, then connect again.
This machine cannot reach web-1 at 203.0.113.20:9443Let the new machine through that server's firewall.
web-1 runs an older server agentUpdate it from the old Deplo's Servers page, then check again.
The old Deplo cannot reach web-1 right nowBring that server back online, then check again.
This move code expiredCreate a new one on the old Deplo.
This move code is already in use by another DeploA code works for one new Deplo only. Create a new one.

Next steps

Did this page help you?

On this page