# Postgres

This page covers the details about integrating Postgres Database as Warehouse with Sprinkle.

When setting up Postgres as Data Warehouse, Sprinkle additionally requires a Cloud bucket.  This guide covers the role of all the components and steps to set up.

## Step by Step Guide

### Integrating Postgres

#### **STEP-1: Allow** Postgres **to accept connection from Sprinkle**

* If Postgres server is on **public network**, accessible over public IP, allow inbound connection on postgres port (default is 5432) from Sprinkle IPs (34.93.254.126, 34.93.106.136)
* If Postgres server is on **private network**, configure [SSH Tunnel](https://docs.sprinkledata.com/product/integrating-your-data/destination-warehouses/broken-reference) in Advanced Settings.

### STEP-2: Configure Postgres Connection

To learn about Connection, refer [here](https://docs.sprinkledata.com/product/integrating-your-data/destination-warehouses/broken-reference)

* Log into Sprinkle application
* Navigate to  Admin -> Warehouse -> New Warehouse Connection
* Select Postgres
* Provide all the mandatory details
  * *Distinct Name*: Name to identify this connection
  * &#x20;Host : Provide IP address or Host name.
  * Port :Provide the Port number.
  * Database : Provide database name if there is any, it should be an existing database.
  * *Username: Postgres account user name*
  * *Password : Postgres account password*
  * *SSH Tunnel in* Postgre&#x73;*:*
    * Connect via SSH Host: Click on "Yes" to configure SSH Tunnel.
    * SSH Host\* : IP address or hostname of the SSH server
    * SSH Public Key\* : Copy the SSH public key and paste it into the \~/.ssh/authorized\_keys file of the SSH user on the ssh host machine
    * SSH Login Username\* : Provide the SSH Login Username where you added the public key. Further, verify the provided details by testing the connection.
    * *Networking rules from your end:*

      * Make sure SSH Host has public IP
      * Whitelist Sprinkle IPs (34.93.254.126, 34.93.106.136) in your SSH Host. SSH host should be able to accept traffic from these Sprinkle IPs.
      * Make sure SSH port 22 is open.

      Once this setting is completed you can try test-connection and if successful, you can update the changes.
* Test Connection&#x20;
* Create

### Create a Cloud Bucket

Sprinkle stores all intermediate data and report caches in the cloud bucket. Sprinkle supports creating a bucket in AWS, GCP, or Azure. Refer to respective documents for creating a configuring the Cloud Bucket.

* [Create S3 Bucket](https://docs.sprinkledata.com/product/integrating-your-data/aws-redshift#step-1-create-a-s3-bucket)
* [Create Google Cloud Bucket](https://docs.sprinkledata.com/product/integrating-your-data/google-bigquery#create-cloud-bucket)
* [Create Azure Storage Container](https://docs.sprinkledata.com/product/integrating-your-data/azure-synapse#create-azure-storage-container)
