# Services and the workspace network

A service is a database, a queue or another server your agents use, such as PostgreSQL, Valkey or NATS from the
Marketplace. It has an address and no screen, and it runs as its own Instance, so several desks can share it and it
keeps running while they come and go.

## Launch a service

1. In **Apps**, press **Launch** on the service, or open **Instances** and press **Launch an Instance**.
2. Give it a **Name**. Under **Network and identity**, its **Network name** is filled in from the name: that's the
   name other Instances use to reach it, and it's fixed once launched.
3. Under **Environment**, set what the service needs, such as `POSTGRES_PASSWORD`, as a secret.
4. Press **Launch**, followed by its name.

The App's instructions, on its page, say which port it listens on and how to connect. Details:
[Launch and manage Instances](/docs/instances).

## Reach it by name

Desks and services of the workspace on the same Compute reach a service by its network name, on its ports:

```text
postgres:5432
```

So a desk's app, or its agent, connects to `postgres:5432` rather than `localhost`. Hand your agent the name and the
secret's variable, and it can connect.

<a id="workspace-network"></a>

## Across Computes: the workspace network

On Starter and above, all of a workspace's Computes can reach its services. They reach a service by its
network name on the ports it declares under **Ports** at launch. Desktops are never reachable from another Compute.

Open the workspace's **Settings** and find **Network across Computes**. Choose:

| Choice | What it does |
| --- | --- |
| **Automatic** | On once the workspace has a second Compute that runs the network: the `uremot` binary on Linux or macOS |
| **On** | On for this workspace, whatever its Computes |
| **Off** | Services are reached only from their own Compute |

Then press **Save network**.

## For your AI

An agent launches services with `launch_instance` and reaches them by name, the same way. To put a whole stack on
Uremot, a database and a server beside its desk, the `uremot-apps` skill walks it through:
[uremot-apps](/skills/uremot-apps/SKILL.md).
