Joining a Server Someone Else Set Up with neo attach

neo attach adds an already-initialized server to your local config, without re-running neo init or touching what's already there.

3 min read v0.19.0

The problem

neo init sets up Docker and Caddy on a fresh server. Running it a second time — because a teammate already did the setup — is unnecessary and, worse, a confusing thing to attempt against a server that's already live with real apps on it.

Attaching instead

neo attach [email protected]

Given SSH access already works (see Team SSH Key Management for how that access is usually granted), this adds the server to your local ~/.neo/config.json and reads its existing /etc/neo/state.json — no changes made to the server itself, no re-running of the Docker/Caddy install.

What you get immediately

neo use that-server-name
neo list       # every app already deployed there
neo status     # health, resource usage

Full visibility and deploy access to everything already running, as if you'd set the server up yourself.

When to use attach vs. init

neo init — a brand new server, nothing on it yet. neo attach — a server a teammate (or your past self, on a different machine) already initialized, and you just need local access to it.

Running attach against a server that was never init'd fails cleanly rather than attempting a partial setup — it expects /etc/neo/state.json to already exist.

Try it yourself — Neo is free, with every feature unlocked.

Get started free