---
title: ParadeDB BYOC
---
For access to ParadeDB BYOC, [contact sales](mailto:sales@paradedb.com).
ParadeDB BYOC (Bring Your Own Cloud) is a managed deployment of ParadeDB within your cloud environment.
It combines the benefits of a managed platform with the security posture of a self-hosted deployment.
ParadeDB BYOC is supported on GCP and AWS, including GovCloud regions and airgapped environments.
To request access for Azure, Oracle Cloud, or another cloud platform please contact [sales@paradedb.com](mailto:sales@paradedb.com).
## How BYOC Works
ParadeDB BYOC provisions a Kubernetes cluster in your cloud environment with [high availability](/deploy/self-hosted/high-availability) preconfigured.
It also configures [logical replication](/deploy/self-hosted/logical-replication) with your primary Postgres, backups, connection pooling, monitoring, access control, and audit logging.
ParadeDB BYOC can be deployed and managed in one of two ways:
- **Fully Managed**: ParadeDB will deploy and manage the ParadeDB BYOC module for you. ParadeDB requires a sub-account or project within your cloud provider via an IAM user or a service account.
- **Just-in-Time Managed**: You will deploy the ParadeDB BYOC module and can choose to provide just-in-time access to the ParadeDB team when support is required. This is typically useful for airgapped environments.
## Getting Started
This section assumes that you have received access to the ParadeDB BYOC module and are deploying it yourself on AWS or GCP.
In a fully managed deployment, these steps will be performed by ParadeDB on your behalf.
### Install Dependencies
First, ensure that you are in the BYOC module repository. Next, install Terraform, Kubectl, PostgreSQL, and the CLI for your desired cloud provider:
```bash macOS
brew install terraform kubectl postgresql
```
```bash Ubuntu
sudo apt-get install -y terraform kubectl postgresql
```
### Authenticate CLI
Install and authenticate with either the [AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html) or [GCP CLI](https://cloud.google.com/sdk/docs/install#deb).
```bash AWS
aws configure
```
```bash GCP
gcloud init
gcloud auth application-default login
```
### Provision ParadeDB
Our Terraform project will provision a Kubernetes cluster (EKS or GKE) along with all the necessary infrastructure to run ParadeDB.
First, copy either `aws.example.tfvars` or `gcp.example.tfvars` into a new file called `byoc.tfvars`.
```bash AWS
cp aws.example.tfvars byoc.tfvars
```
```bash GCP
cp gcp.example.tfvars byoc.tfvars
```
Next, open and configure `byoc.tfvars`. Configuration instructions can be found directly within the file.
```bash
open byoc.tfvars || xdg-open byoc.tfvars
```
### Run Terraform
First, initialize Terraform.
```bash AWS
terraform -chdir=infrastructure/aws init
```
```bash GCP
terraform -chdir=infrastructure/gcp init
```
Next, run Terraform `apply`.
```bash AWS
terraform -chdir=infrastructure/aws apply -var-file=../../byoc.tfvars
```
```bash GCP
terraform -chdir=infrastructure/gcp apply -var-file=../../byoc.tfvars
```
It may take up to 30 minutes to provision all the necessary infrastructure.
When this command is complete, you will see a `kubectl` command printed as Terraform output to the terminal.
Run this command, which will add the EKS or GKE cluster configuration to your local `.kubeconfig` file.
That's it! You're now ready to connect to ParadeDB.
### Connect to ParadeDB
#### Access the Grafana Dashboard
First, port-forward the Grafana service to localhost.
```bash
kubectl --namespace monitoring port-forward service/prometheus-grafana 8080:80
```
Then, go to `http://localhost:8080`. Your Grafana credentials have been printed in the terminal output of the above Terraform `apply` command.
You can find the ParadeDB dashboard by typing `CloudNativePG` in the search bar, and selecting `paradedb` for the Database Namespace.
By default, the dashboard will display metrics over the last 7 days. If you've just spun up the cluster, change it to the last 15 minutes to start seeing results immediately.
#### Access the ParadeDB Instance
First, retrieve the database credentials.
```bash
kubectl --namespace paradedb get secrets paradedb-superuser -o json | jq -r '.data | map_values(@base64d) | .uri |= sub("\\*"; "paradedb") | .dbname = "paradedb"'
```
Next, port-forward the ParadeDB service to localhost.
```bash
kubectl --namespace paradedb port-forward service/paradedb-rw 5432:5432
```
Now you can connect to the ParadeDB instance using the credentials you've retrieved.
```bash
PGPASSWORD= psql -h localhost -d paradedb -p 5432 -U
```