This repo contains example code and a PostgreSQL driver that can be used in any Workers project. If
you are interested in using the driver outside of this template, copy the driver/postgres module
into your project's node_modules or directly alongside your source.
Before you start, please refer to the official tutorial.
constclient=newClient({user: '<DATABASE_USER>',database: '<DATABASE_NAME>',// hostname is the full URL to your pre-created Cloudflare Tunnel, see documentation here:// https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/create-tunnelhostname: env.TUNNEL_HOST||'https://dev.example.com',password: env.DATABASE_PASSWORD,// use a secret to store passwordsport: '<DATABASE_PORT>',})awaitclient.connect()Please Note:
- you must use this config object format vs. a database connection string
- the
hostnameproperty must be the URL to your Cloudflare Tunnel, NOT your database host- your Tunnel will be configured to connect to your database host
postgres/docker-compose.yml
This docker-compose composition will get you up and running with a local instance of postgresql,
pgbouncer in front to provide connection pooling, and a copy of cloudflared to enable your
applications to securely connect, through a encrypted tunnel, without opening any ports up locally.
from within
scripts/postgres, run:
- Create credentials file (first time only)
docker run -v ~/.cloudflared:/etc/cloudflared cloudflare/cloudflared:2021.10.5 login- Start a local dev stack (cloudflared/pgbouncer/postgres)
TUNNEL_HOSTNAME=dev.example.com docker-compose up