Mojo UpDocs
Nodes

Join a node

Connect a node to Mojo Up AI Cloud, your organisation or your team's own hub, and get it approved.

A node does nothing until it has joined somewhere and a person has approved it. It can join one of three places:

  • Mojo Up AI Cloud: your personal organisation or one of your teams.
  • Your organisation's own platform (self-hosted AIOE, Enterprise).
  • A team hub your team runs on its own network. Nothing goes through Mojo Up.

A node joins exactly one of these. Use the setup wizard (mojoup-node, or mojoup-node setup), which asks How does this node find your organisation?, or the join command shown here, which is the scripted form.

Join Mojo Up AI Cloud or your organisation

Ask to join

Terminal
mojoup-node join --cloud --name gpu-box-1 --tags tag:gpu,tag:linux

--name and --tags are optional: the name defaults to the machine's host name. In the wizard, choose Mojo Up.

The node prints a code and a page to open:

  Code:  ABCD-EFGH
  Open:  https://…

Approve it in Mojo Up AI Cloud

Open the page, sign in to Mojo Up AI Cloud, and check which organisation the page names. The node joins the organisation that is active in the Cloud console when you approve it: your personal one, or one of your teams. To approve it into another organisation, switch to it at the top of the console's sidebar first, then approve.

You can approve a node into a team if you are one of its owners or administrators. Nodes waiting for approval also appear under Nodes → Pending in the console.

Start it

The node prints Approved: this node is … in …. Start it:

Terminal
mojoup-node run

Or install it as a service.

Once the node runs, an administrator decides who may use it, under Nodes in the console (Who may use it): a project, a group, a person or everyone, what they may do on it (run agents, call its models, read its memory and so on) and how many agents at once. A node is unused until it is assigned, and the node itself enforces the limits.

If the approver refuses, join exits with code 3 and nothing else happens.

Join with a join key

A join key lets automation start nodes without a code to approve: a fleet of build machines, or nodes in containers. An administrator makes one in the console under Nodes → Join keys → New join key, with a name, tags, how long it is valid (24 hours by default, at most 90 days), and whether it is Reusable or makes Ephemeral nodes. The key is shown once.

Terminal
mojoup-node join --url https://aioe.company.com --token <join key>

The node joins at once. The administrator who made the key is recorded as the approver of every node that uses it. Revoking the key sends its nodes back to pending, which takes them off the mesh and remote control until someone approves them again. An ephemeral node is removed once it stops checking in.

mojoup-node setup --token <join key> does the same from the wizard.

Join your team's own hub

A team that runs its own hub over Tailscale or a VPN invites nodes the same way it invites people. See Team hub for running the hub.

Get an invitation

On the hub, the owner chooses Invite someone… on Settings → Team, picks Joining with: Node, and sends you the invitation line. It starts mojoup-hub: and works once, for 15 minutes. On a node that is the hub, mojoup-node hub invite --name <person> --kind node prints one.

Join with it

Terminal
mojoup-node join --hub 'mojoup-hub:…'

The invitation carries the hub's address and its certificate's fingerprint, so the node checks it is talking to your hub before it sends anything.

Start it

Terminal
mojoup-node run

Join by address instead

Without an invitation line, give the hub's address. The node shows the hub's certificate fingerprint; compare it with the one on the hub's Settings → Team page and answer y only if every group matches.

Terminal
mojoup-node join --hub https://hub.example.ts.net:7431 --code K7QX-M2PD

Without --code, the node shows a code and asks the hub's owner to approve it: on the hub's Settings → Team page, the node appears as "… wants to join", with Approve and Deny. On a node that is the hub, mojoup-node hub devices lists who is waiting and mojoup-node hub approve <request> --as <name> approves.

When you have already checked the fingerprint, pass it with --fingerprint sha256:…, or accept it without asking with --yes.

Check where a node joined

Terminal
mojoup-node status

status names the organisation or team hub the node is on, and mojoup-node doctor checks that the platform is reachable. Running join again on a node that has already joined says so and changes nothing.

On this page