# Where the enclave runs

Seal can run your enclave for you, or you can run your own in your Azure network. What changes between the two.

Source: https://seal.zone/docs/hosting

Blobs open only in an enclave replica, a copy of the enclave in a hardware TEE. Seal runs it, or you run your own in Azure.

## The replica Seal runs for you

```env
SEAL_ENDPOINT=https://<tenant>.enclave.seal.zone:8443
```

Each tenant gets its own replica, an AMD SEV-SNP confidential container in Azure East US. Seal's front door reads only the TLS server name and passes the encrypted connection through. An open session keeps the replica from idling.

It gets keys only because your tenant's signed state lists it, which is your consent. Withdraw it under Deployments, "Run by Seal".

## Running your own

**Preview.**

`seal deploy azure` works today. Business, its production plan, isn't offered yet, so [talk to us](mailto:harvey@seal.zone) first.

Sign in with `az` and `seal login`, then:

```shell
seal deploy azure --vnet my-apps-vnet
```

The CLI verifies the newest release first, then creates what's missing:

- a /27 subnet named `seal`,
- a NAT gateway, if the VNet has none,
- a managed identity and Entra app, both named `seal-<tenant>`,
- the deployment grant, signed with your passkey,
- the confidential container.

It prints the private `SEAL_ENDPOINT`. `--dry-run` shows every step first. Allow traffic from the `seal` subnet to your database's port.

```shell
seal deploy upgrade -g my-resource-group
```

It keeps the identity and refuses older releases. Update `SEAL_ENDPOINT` if the address changes.

## More than one replica

Replicas share your tenant's keys, so a blob opens on any of them:

```env
SEAL_ENDPOINT=https://10.0.1.4:8443,https://acme.enclave.seal.zone:8443
```

The SDK fails over between them, retrying for up to 120 seconds before `Unavailable`. Database drivers reopen dropped connections.

## Plans

| Plan | Where the enclave runs | Availability |
| --- | --- | --- |
| Developer | Seal runs it | Available now, free |
| Hosted | Seal runs it, sized for production traffic | Coming soon |
| Business | Your own replica in your network, for private databases | Coming soon |
| Enterprise | Business, plus your own locked key vault and an SLA | Coming soon |

For the rest, write to [harvey@seal.zone](mailto:harvey@seal.zone).

## What the host can and can't do

The host runs the machine: Seal on Azure, or your subscription's admins.

**The host can**

- Stop or delete the replica.
- See which upstreams it reaches, when, and how much data.
- Control the network, so network rules don't stop the host.

**The host can't**

- Read its memory, where your keys are open.
- Open a shell or attach a debugger.
- Make it serve a tenant that didn't list it.

See [What an attacker gets](https://seal.zone/docs/threat-model).
