Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 15 additions & 5 deletions cli/cloud/deploy.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -56,11 +56,15 @@ pipecat cloud deploy [ARGS] [OPTIONS]
[Discord](https://discord.gg/dailyco).
</ParamField>

<ParamField path="--enable-krisp / -krisp" type="boolean" default="false">
Enable Krisp noise cancellation for this deployed agent. In addition, you also
need to enable the `KrispFilter()` for your transport. See the [Krisp Noise
Cancellation](/deployment/pipecat-cloud/guides/krisp-noise-cancellation) guide
for more information.
<ParamField path="--krisp-viva-audio-filter" type="string">
Enable Krisp VIVA noise cancellation with the specified audio filter model.
Valid values are:

- `tel`: Telephony model (up to 16kHz)
- `pro`: WebRTC model (up to 32kHz)

In addition to this flag, you also need to enable the `KrispVivaFilter()` for your transport. See the [Krisp VIVA](/server/utilities/audio/krisp-viva-filter) documentation for more information.

</ParamField>

<ParamField path="--enable-managed-keys" type="boolean" default="false">
Expand Down Expand Up @@ -130,6 +134,12 @@ pipecat cloud deploy my-first-agent your-docker-repository/my-first-agent:0.1 --
pipecat cloud deploy my-first-agent your-docker-repository/my-first-agent:0.1 --region eu-central
```

**Deploy with Krisp VIVA noise cancellation:**

```shell
pipecat cloud deploy my-first-agent your-docker-repository/my-first-agent:0.1 --krisp-viva-audio-filter tel
```

## Configuration File (pcc-deploy.toml)

The `deploy` command supports a configuration file for repeatable deployments. Create a `pcc-deploy.toml` file in your project root to define deployment settings that can be shared across your team and version controlled.
Expand Down
191 changes: 97 additions & 94 deletions deployment/pipecat-cloud/guides/ci-with-github-actions.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -36,54 +36,56 @@ name: Docker Image CI

on:
push:
branches: [ "main" ]
branches: ["main"]

jobs:
deploy:
runs-on: ubuntu-latest

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Get date
id: date
run: echo "date=$(date +'%F')" >> $GITHUB_OUTPUT

- name: Set up QEMU
uses: docker/setup-qemu-action@v3

- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Build and Push
uses: docker/build-push-action@v5
with:
platforms: linux/arm64
context: .
push: true
tags: |
${{ secrets.DOCKERHUB_USERNAME }}/${{ github.event.repository.name }}:latest
${{ secrets.DOCKERHUB_USERNAME }}/${{ github.event.repository.name }}:${{ steps.date.outputs.date }}

- name: Deploy to Pipecat Cloud
run: |
curl -X POST https://api.pipecat.daily.co/v1/agents/${{ github.event.repository.name }} \
-H "Authorization: Bearer ${{ secrets.PCC_API_KEY }}" \
-H "Content-Type: application/json" \
-d '{
"image": "${{ secrets.DOCKERHUB_USERNAME }}/${{ github.event.repository.name }}:${{ steps.date.outputs.date }}",
"imagePullSecretSet": "my-image-pull-secret",
"secretSet": "my-secret-set",
"enableKrisp": true,
"autoScaling": {
"minAgents": 0,
"maxAgents": 10
}
}'
- name: Checkout
uses: actions/checkout@v4

- name: Get date
id: date
run: echo "date=$(date +'%F')" >> $GITHUB_OUTPUT

- name: Set up QEMU
uses: docker/setup-qemu-action@v3

- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Build and Push
uses: docker/build-push-action@v5
with:
platforms: linux/arm64
context: .
push: true
tags: |
${{ secrets.DOCKERHUB_USERNAME }}/${{ github.event.repository.name }}:latest
${{ secrets.DOCKERHUB_USERNAME }}/${{ github.event.repository.name }}:${{ steps.date.outputs.date }}

- name: Deploy to Pipecat Cloud
run: |
curl -X POST https://api.pipecat.daily.co/v1/agents/${{ github.event.repository.name }} \
-H "Authorization: Bearer ${{ secrets.PCC_API_KEY }}" \
-H "Content-Type: application/json" \
-d '{
"image": "${{ secrets.DOCKERHUB_USERNAME }}/${{ github.event.repository.name }}:${{ steps.date.outputs.date }}",
"imagePullSecretSet": "my-image-pull-secret",
"secretSet": "my-secret-set",
"krispViva": {
"audioFilter": "tel"
},
"autoScaling": {
"minAgents": 0,
"maxAgents": 10
}
}'
```

This workflow will:
Expand Down Expand Up @@ -132,9 +134,9 @@ name: Docker Image CI

on:
push:
branches: [ "main" ]
branches: ["main"]
paths:
- 'server/**'
- "server/**"

jobs:
deploy:
Expand All @@ -144,47 +146,49 @@ jobs:
working-directory: ./server

steps:
- name: Checkout
uses: actions/checkout@v4

- name: Get date
id: date
run: echo "date=$(date +'%F')" >> $GITHUB_OUTPUT

- name: Set up QEMU
uses: docker/setup-qemu-action@v3

- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Build and Push
uses: docker/build-push-action@v5
with:
platforms: linux/arm64
context: ./server
push: true
tags: |
${{ secrets.DOCKERHUB_USERNAME }}/${{ github.event.repository.name }}:latest
${{ secrets.DOCKERHUB_USERNAME }}/${{ github.event.repository.name }}:${{ steps.date.outputs.date }}

- name: Deploy to Pipecat Cloud
run: |
curl -X POST https://api.pipecat.daily.co/v1/agents/${{ github.event.repository.name }} \
-H "Authorization: Bearer ${{ secrets.PCC_API_KEY }}" \
-H "Content-Type: application/json" \
-d '{
"image": "${{ secrets.DOCKERHUB_USERNAME }}/${{ github.event.repository.name }}:${{ steps.date.outputs.date }}",
"imagePullSecretSet": "my-image-pull-secret",
"secretSet": "my-secret-set",
"enableKrisp": true,
"autoScaling": {
"minAgents": 0,
"maxAgents": 10
}
}'
- name: Checkout
uses: actions/checkout@v4

- name: Get date
id: date
run: echo "date=$(date +'%F')" >> $GITHUB_OUTPUT

- name: Set up QEMU
uses: docker/setup-qemu-action@v3

- name: Login to Docker Hub
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Build and Push
uses: docker/build-push-action@v5
with:
platforms: linux/arm64
context: ./server
push: true
tags: |
${{ secrets.DOCKERHUB_USERNAME }}/${{ github.event.repository.name }}:latest
${{ secrets.DOCKERHUB_USERNAME }}/${{ github.event.repository.name }}:${{ steps.date.outputs.date }}

- name: Deploy to Pipecat Cloud
run: |
curl -X POST https://api.pipecat.daily.co/v1/agents/${{ github.event.repository.name }} \
-H "Authorization: Bearer ${{ secrets.PCC_API_KEY }}" \
-H "Content-Type: application/json" \
-d '{
"image": "${{ secrets.DOCKERHUB_USERNAME }}/${{ github.event.repository.name }}:${{ steps.date.outputs.date }}",
"imagePullSecretSet": "my-image-pull-secret",
"secretSet": "my-secret-set",
"krispViva": {
"audioFilter": "tel"
},
"autoScaling": {
"minAgents": 0,
"maxAgents": 10
}
}'
```

The `paths` filter ensures the workflow only runs when files in the `server/` directory change, preventing unnecessary builds.
Expand All @@ -206,17 +210,16 @@ To use native ARM runners when available:
```yml
jobs:
deploy:
runs-on: ubuntu-24.04-arm # Use ARM runner
runs-on: ubuntu-24.04-arm # Use ARM runner

steps:
- name: Checkout
uses: actions/checkout@v4
- name: Checkout
uses: actions/checkout@v4

# Remove the "Set up QEMU" step entirely

- name: Login to Docker Hub
uses: docker/login-action@v3
# ... rest of workflow
# Remove the "Set up QEMU" step entirely
- name: Login to Docker Hub
uses: docker/login-action@v3
# ... rest of workflow
```

## Customizing Deployment Configuration
Expand All @@ -226,7 +229,7 @@ The deployment step in the workflow configures your agent using the Pipecat Clou
- `image`: The Docker image tag to deploy
- `imagePullSecretSet`: Reference to your image pull credentials (replace `my-image-pull-secret` with your actual secret name)
- `secretSet`: Reference to your environment secrets (replace `my-secret-set` with your actual secret set name)
- `enableKrisp`: Enable or disable Krisp noise suppression
- `krispViva.audioFilter`: The Krisp VIVA audio filter model to use (replace `tel` with your actual filter model)
- `autoScaling.minAgents`: Minimum number of agent instances to maintain
- `autoScaling.maxAgents`: Maximum number of agent instances allowed

Expand Down
7 changes: 4 additions & 3 deletions deployment/pipecat-cloud/guides/daily-webrtc.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,10 @@ The integrated Daily API key provides:
- **Built-in compatibility**: All Pipecat base images work with Daily out of the box

<Info>
While 1:1 voice minutes are included, additional Daily features like
recording, transcription, and PSTN/SIP connections are billed according to
[Daily's standard pricing](https://www.daily.co/pricing).
Free voice minutes apply only to 1:1 voice sessions running on Pipecat Cloud.
Video sessions, WebRTC sessions outside of Pipecat Cloud, and additional Daily
features (recording, transcription, PSTN/SIP) are billed according to [Daily's
standard pricing](https://www.daily.co/pricing/webrtc-infrastructure/).
</Info>

## Using Daily with Pipecat Cloud Agents
Expand Down
Loading