# worker-template-postgres **Repository Path**: mirrors_cloudflare/worker-template-postgres ## Basic Information - **Project Name**: worker-template-postgres - **Description**: Reference demo and modified PostgreSQL driver to connect Cloudflare Workers to a relational database. - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-11-16 - **Last Updated**: 2026-02-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Cloudflare Workers + PostgreSQL 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. ## Usage Before you start, please refer to the **[official tutorial](https://developers.cloudflare.com/workers/tutorials/query-postgres-from-workers-using-database-connectors)**. ```typescript const client = new Client({ user: '', database: '', // hostname is the full URL to your pre-created Cloudflare Tunnel, see documentation here: // https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/create-tunnel hostname: env.TUNNEL_HOST || 'https://dev.example.com', password: env.DATABASE_PASSWORD, // use a secret to store passwords port: '', }) await client.connect() ``` **Please Note:** - you must use this config object format vs. a database connection string - the `hostname` property must be the URL to your Cloudflare Tunnel, _NOT_ your database host - your Tunnel will be configured to connect to your database host ## Running the Postgres Demo `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. ### Usage > from within `scripts/postgres`, run: 1. **Create credentials file (first time only)** ```sh docker run -v ~/.cloudflared:/etc/cloudflared cloudflare/cloudflared:2021.10.5 login ``` 2. **Start a local dev stack (cloudflared/pgbouncer/postgres)** ```sh TUNNEL_HOSTNAME=dev.example.com docker-compose up ```