> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pipecat.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# GCP Artifact Registry

> Deploy Pipecat Cloud agents using Google Cloud Artifact Registry

For GCP Artifact Registry, you can use a service account JSON key to authenticate with your private registry.

## Authenticate Docker

First, authenticate Docker with your service account key:

```bash theme={null}
# Authenticate Docker with your service account key
cat key-file.json | docker login -u _json_key --password-stdin https://<location>-docker.pkg.dev
```

## Configure Image Pull Secrets

Create image credentials in Pipecat Cloud using the same service account:

```bash theme={null}
pipecat cloud secrets image-pull-secret my-gcp-credentials https://<location>-docker.pkg.dev
```

When prompted, enter:

* Username: `_json_key`
* Password: The contents of your service account JSON key file

## Configure Your Deployment

Create a `pcc-deploy.toml` file with your Artifact Registry image configuration:

```toml theme={null}
agent_name = "my-gcp-agent"
image = "<location>-docker.pkg.dev/<project-id>/<repo-name>/my-agent:0.1"
secret_set = "my-agent-secrets"
image_credentials = "my-gcp-credentials"

[scaling]
    min_instances = 0
```

## Build and Push to Artifact Registry

Build and push your agent image using the Pipecat Cloud CLI:

```bash theme={null}
# Build and push using your pcc-deploy.toml configuration
pipecat cloud docker build-push
```

This command automatically builds for the correct platform (`linux/arm64`) and pushes to your configured Artifact Registry repository.

## Deploy Your Agent

Deploy using your configured `pcc-deploy.toml`:

```bash theme={null}
pipecat cloud deploy
```

## Configuration Reference

Replace the following placeholders with your actual values:

* `<location>` with your Artifact Registry location (e.g., `us-central1`, `asia-east1`)
* `<project-id>` with your Google Cloud project ID
* `<repo-name>` with your Artifact Registry repository name
* `key-file.json` with the path to your service account JSON key file

<Note>
  The service account used for image credentials should have the `Artifact
      Registry Reader` role or equivalent permissions to pull images from your
  private repository.
</Note>
