Servers and agents

What a server is, how it joins Deplo, and what it can be used for.

A server is a machine you own that Deplo can deploy to. It becomes one by running a small program, the server agent. The agent is the only part of Deplo that runs Docker.

Servers belong to the instance, not to a team. One server can serve several teams, and one team can use several servers.

How a server joins

The control plane never connects to your machine. Your machine connects to it.

Get an install command

In Settings -> Servers click Add server. Deplo shows an install command with a one-time token.

Run it on the server

Paste the command on the server. It installs Docker and git if missing, downloads the agent, checks its SHA-256, and starts it as a systemd service.

git is needed to clone your repositories

The agent clones on the server, so a server without git cannot build an app from a repository. Backups-only and migration-only servers never build, so they do not need it.

The agent asks for a certificate

The agent creates its own private key and sends a certificate request with the token.

The control plane signs and pins it

The control plane signs the certificate and pins its fingerprint. From now on only that certificate is trusted.

Online

The server turns online.

The token works once and expires after about an hour. From then on the two sides talk over an encrypted connection (mutual TLS) on port 9443.

What a server can be used for

You choose the role when you install it: Everything, Build only, Backups only, or the migration-only role created by the migration wizard. See Server roles for the comparison.

Health is not readiness

Health answers "can Deplo reach and trust this agent right now?". It comes from the last contact and has five values:

Prop

Type

The stored value is only a cache

When it is too old, the Servers page shows Unknown. A deploy never relies on it: it contacts the agent at that moment.

Readiness answers "is this server set up well enough to deploy apps to?". It is a live report you run from the server's menu. Rows are grouped as agent, docker, routing, capacity, build methods and Deplo configuration, and each row is pass, info, warn, fail or skip. skip means it could not be checked, which is not a pass.

The Deplo host is a server too

The machine running the control plane adds itself during installation and appears in the list like any other server. Deploying to it uses the same path and the same code as any remote server.

The only difference: it cannot remove itself from the list.

Removing a server

Removal is refused while anything still uses the machine: an app, a managed database, or a backup destination on its disk. Each refusal names what is in the way.

Once nothing uses it, removing a server deletes the pinned certificate, so Deplo will never talk to it again. Deplo does not uninstall anything on the machine itself.

Deplo shows a one-line uninstall command to run on the machine if you want the agent, its Traefik and its data removed. A migration source is the exception: Deplo uninstalls itself from it once you are done.

Two behaviours to know

Deploy concurrency. Each server has a slot count, default 1, so deploys to one machine run one at a time. Other servers keep working in parallel. Two deploys of the same app never overlap.

Pending teardowns. If Deplo tells a server to remove a stack and the server does not confirm, Deplo retries up to eight times, from one minute up to a day apart. If it gives up, it writes an activity entry and raises an alert.

Next steps

Did this page help you?

On this page