Skip to main content

Compute Nodes

A compute node is a machine that noBGP starts for you with provision_node. This page tells you what is on that machine, which account runs your commands, what stays after the machine stops, and what it costs.

For how to start, change and remove a compute node, see Provisioning Nodes.

One image family: Ubuntu 24.04 LTS

Every compute node runs Ubuntu 24.04 LTS, on every provider. We use one image family so that one page, one package list and one set of instructions apply to all compute nodes.

We chose Ubuntu because a compute node is most useful when you, or your AI assistant, can install what the work needs with apt and follow ordinary Linux instructions.

Providers

aws

aws is the provider that provision_node uses today, and it is the default. The machine is a container on noBGP's own capacity in AWS (Amazon ECS).

Operating systemUbuntu 24.04 LTS (the official ubuntu:24.04 image)
Architecturearm64
noBGP agent/usr/local/bin/nobgp, runs as root
Accountsroot, and nobgp with a home directory at /home/nobgp (see Which account runs your commands)
Init processtini, which starts the agent and collects finished processes

Each agent release builds a new image. A machine starts from the image of the latest agent release when you provision it. The agent on a running machine then upgrades itself in place, so after some time the agent version is newer than the image. To get a machine on the current image, stop it with task_stop or deprovision_node, then provision the same name again. ⚠ This destroys everything on the machine's local disk. If you provision the name while the machine runs, you get a second machine with a suffixed name.

These packages are installed on top of the base image:

PackageWhat it gives you
build-essentialgcc, g++, make and the C library headers
gitGit
curl, wgetHTTP downloads
ca-certificates, gnupgTLS certificates and package signing keys
lsb-release, software-properties-commonlsb_release and add-apt-repository
openssh-clientssh and scp to other machines
iputils-pingping
iproute2ip and ss
net-toolsifconfig, netstat and route
dnsutilsdig and nslookup
procpsps, top and free
iptablesPacket filter tools, which the agent uses
fuse3, davfs2, nfs-commonClients for the shared drive
tiniA small init process that collects finished processes

The package versions are the Ubuntu 24.04 versions from when the package layer was last built. Agent releases reuse that layer until the base image or the package list changes, so the packages can be older than the agent release. Run apt list --installed on the machine to see them.

To see exactly what is on a machine, ask the machine. Run these through a command session, or ask your assistant to do it:

cat /etc/os-release # the Ubuntu release
uname -a # the kernel and the architecture
apt list --installed # every installed package and its version
nobgp version # the agent version that runs now

If a tool is not on the machine, install it (see Installing packages).

cachengo

noBGP does not start new machines on cachengo today. provision_node does not accept cachengo as a provider name. Some machines were provisioned on Cachengo in the past. This page does not describe the image that those machines used.

If noBGP adds a provider, it will run the same Ubuntu 24.04 LTS image family, and this page will get a section for it.

Which account runs your commands

A compute node has two identities:

You sendThe command runs asUse it for
Nothing, or admin: "false"nobgp, an ordinary account with a home directory at /home/nobgpYour normal work: build, run, test
admin: "true"rootWork that changes the system, such as installing packages

The agent itself runs as root. The nobgp account exists so that a new compute node can run unelevated work from its first start. See Unelevated never means root for the general rule.

The same two identities apply to the file tools. A file that you write without admin belongs to nobgp.

Installing packages

The nobgp account cannot install packages. Send the command with admin: "true":

apt-get update && apt-get install -y postgresql-client

Or ask your assistant in plain words:

Install postgresql-client on build-runner as root

Packages that you install are on the machine's own disk. When the machine stops, they are gone. Install them again after each start, or keep a setup script in the node's storage area (see What stays) and run it after each start.

Storage on the machine

The shared drive is mounted at /mnt/nobgp:

PathWhat it is
/mnt/nobgp/node/This node's own storage area. It belongs to the node, not to the machine.
/mnt/nobgp/networks/<name>/The shared drive of the network <name>. Every node in that network sees the same files.

Both paths are noBGP storage. They count against your plan's storage limit. Everything else on the machine, such as /home/nobgp, /tmp and /usr, is the machine's own disk.

df does not show the shared drive

df does not list /mnt/nobgp/networks/<name>. This is expected for this mount type and does not mean that the drive is missing. To see the mount, run nobgp status with admin: "true" and read fs.type (the mount backend), fs.mount and fs.mounted.

What stays when the machine stops

A machine stops when it reaches its deadline, when your compute budget runs out, or when a payment lapses. You can also stop it yourself: that is Stop in the web app, or task_stop (router 0.4.149). The node stays. To remove the node as well, use Terminate in the web app, or deprovision_node.

Machine stoppedMachine terminated
Programs that were running, memoryGoneGone
The machine's own disk, including packages you installedGoneGone
The node: its ID, name, labels and role grantsKept. The node shows as offline.Kept. The node leaves the network directory.
/mnt/nobgp/node/ (the node's storage area)KeptKept for 30 days, then deleted about a week later
/mnt/nobgp/networks/<name>/ (the network's shared drive)KeptKept. It belongs to the network, not to the node.

To get the machine back, provision the same name again. You get the same node, with its labels, grants and storage area, on a new machine with a fresh disk. After a Terminate, the storage area comes back only within the 30 days. See Provisioning the same name again.

Write what you must keep to /mnt/nobgp/node/ or to a network's shared drive while the machine runs. Nothing on the machine's own disk survives a stop.

Deadline and billing

Every machine has a deadline. The default is 24 hours on every plan. You can set a different number of hours when you provision, and you can move the deadline of a running machine with task_deadline_set. On every plan except Free, you can turn the deadline off for one machine. See How long it runs.

You pay for running time, by the minute. The rate depends on the machine class, and it is the same on every plan:

ClassSizePrice
small (default)0.25 vCPU / 0.5 GiB$0.02 / hour
medium1 vCPU / 2 GiB$0.06 / hour
large2 vCPU / 4 GiB$0.12 / hour
xlarge4 vCPU / 8 GiB$0.24 / hour

Each run is rounded up to whole minutes, with a one-minute minimum. Your plan includes an amount of compute each month. See Provisioned compute for the included amounts and for what happens when they run out.

A stopped machine costs no compute. Its storage area still counts against your storage limit.