From 1c537378e051b5698060bb2551eb59413304f5ad Mon Sep 17 00:00:00 2001 From: Gustavo Toyota Date: Sun, 18 Jan 2026 18:05:44 -0400 Subject: [PATCH 1/2] chore: ignore .turbo --- .gitignore | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 0dd74f39..10c45ccf 100644 --- a/.gitignore +++ b/.gitignore @@ -17,4 +17,6 @@ dist deploy-*.sh postgres_data -keydb_data \ No newline at end of file +keydb_data + +/.turbo \ No newline at end of file From 788b344f0f8dcdbeb156b28f1132b32084ae6434 Mon Sep 17 00:00:00 2001 From: Gustavo Toyota Date: Sun, 18 Jan 2026 19:43:52 -0400 Subject: [PATCH 2/2] fix: ssl --- apps/app-server/src/data/knex.ts | 13 ++++--------- apps/collab-server/src/data/knex.ts | 13 ++++--------- apps/manager/src/data/knex.ts | 13 ++++--------- apps/realtime-server/src/data/knex.ts | 13 ++++--------- apps/scheduler/src/data/knex.ts | 13 ++++--------- 5 files changed, 20 insertions(+), 45 deletions(-) diff --git a/apps/app-server/src/data/knex.ts b/apps/app-server/src/data/knex.ts index 97083a1c..fc1fc2d6 100644 --- a/apps/app-server/src/data/knex.ts +++ b/apps/app-server/src/data/knex.ts @@ -1,4 +1,3 @@ -import { base64ToText } from '@stdlib/base64'; import Knex from 'knex'; import { Model } from 'objection'; @@ -6,14 +5,10 @@ export const knex = Knex({ client: 'pg', useNullAsDefault: true, connection: { - host: process.env.POSTGRES_HOST, - port: parseInt(process.env.POSTGRES_PORT ?? ''), - user: process.env.POSTGRES_USER, - password: process.env.POSTGRES_PASSWORD, - database: process.env.POSTGRES_DATABASE, - ssl: process.env.POSTGRES_CA_CERTIFICATE - ? { ca: base64ToText(process.env.POSTGRES_CA_CERTIFICATE) } - : undefined, + connectionString: `postgres://${process.env.POSTGRES_USER}:${process.env.POSTGRES_PASSWORD}@${process.env.POSTGRES_HOST}:${process.env.POSTGRES_PORT}/${process.env.POSTGRES_DATABASE}?ssl=true`, + ssl: { + rejectUnauthorized: false, // Required for Render's self-signed certificates + }, }, pool: { min: 0, diff --git a/apps/collab-server/src/data/knex.ts b/apps/collab-server/src/data/knex.ts index 3d988c01..1857fc11 100644 --- a/apps/collab-server/src/data/knex.ts +++ b/apps/collab-server/src/data/knex.ts @@ -1,4 +1,3 @@ -import { base64ToText } from '@stdlib/base64'; import Knex from 'knex'; import { once } from 'lodash'; import { Model } from 'objection'; @@ -8,14 +7,10 @@ export const initKnex = once(() => { client: 'pg', useNullAsDefault: true, connection: { - host: process.env.POSTGRES_HOST, - port: parseInt(process.env.POSTGRES_PORT ?? ''), - user: process.env.POSTGRES_USER, - password: process.env.POSTGRES_PASSWORD, - database: process.env.POSTGRES_DATABASE, - ssl: process.env.POSTGRES_CA_CERTIFICATE - ? { ca: base64ToText(process.env.POSTGRES_CA_CERTIFICATE) } - : undefined, + connectionString: `postgres://${process.env.POSTGRES_USER}:${process.env.POSTGRES_PASSWORD}@${process.env.POSTGRES_HOST}:${process.env.POSTGRES_PORT}/${process.env.POSTGRES_DATABASE}?ssl=true`, + ssl: { + rejectUnauthorized: false, // Required for Render's self-signed certificates + }, }, pool: { min: 0, diff --git a/apps/manager/src/data/knex.ts b/apps/manager/src/data/knex.ts index 3d988c01..1857fc11 100644 --- a/apps/manager/src/data/knex.ts +++ b/apps/manager/src/data/knex.ts @@ -1,4 +1,3 @@ -import { base64ToText } from '@stdlib/base64'; import Knex from 'knex'; import { once } from 'lodash'; import { Model } from 'objection'; @@ -8,14 +7,10 @@ export const initKnex = once(() => { client: 'pg', useNullAsDefault: true, connection: { - host: process.env.POSTGRES_HOST, - port: parseInt(process.env.POSTGRES_PORT ?? ''), - user: process.env.POSTGRES_USER, - password: process.env.POSTGRES_PASSWORD, - database: process.env.POSTGRES_DATABASE, - ssl: process.env.POSTGRES_CA_CERTIFICATE - ? { ca: base64ToText(process.env.POSTGRES_CA_CERTIFICATE) } - : undefined, + connectionString: `postgres://${process.env.POSTGRES_USER}:${process.env.POSTGRES_PASSWORD}@${process.env.POSTGRES_HOST}:${process.env.POSTGRES_PORT}/${process.env.POSTGRES_DATABASE}?ssl=true`, + ssl: { + rejectUnauthorized: false, // Required for Render's self-signed certificates + }, }, pool: { min: 0, diff --git a/apps/realtime-server/src/data/knex.ts b/apps/realtime-server/src/data/knex.ts index 3d988c01..1857fc11 100644 --- a/apps/realtime-server/src/data/knex.ts +++ b/apps/realtime-server/src/data/knex.ts @@ -1,4 +1,3 @@ -import { base64ToText } from '@stdlib/base64'; import Knex from 'knex'; import { once } from 'lodash'; import { Model } from 'objection'; @@ -8,14 +7,10 @@ export const initKnex = once(() => { client: 'pg', useNullAsDefault: true, connection: { - host: process.env.POSTGRES_HOST, - port: parseInt(process.env.POSTGRES_PORT ?? ''), - user: process.env.POSTGRES_USER, - password: process.env.POSTGRES_PASSWORD, - database: process.env.POSTGRES_DATABASE, - ssl: process.env.POSTGRES_CA_CERTIFICATE - ? { ca: base64ToText(process.env.POSTGRES_CA_CERTIFICATE) } - : undefined, + connectionString: `postgres://${process.env.POSTGRES_USER}:${process.env.POSTGRES_PASSWORD}@${process.env.POSTGRES_HOST}:${process.env.POSTGRES_PORT}/${process.env.POSTGRES_DATABASE}?ssl=true`, + ssl: { + rejectUnauthorized: false, // Required for Render's self-signed certificates + }, }, pool: { min: 0, diff --git a/apps/scheduler/src/data/knex.ts b/apps/scheduler/src/data/knex.ts index 3d988c01..1857fc11 100644 --- a/apps/scheduler/src/data/knex.ts +++ b/apps/scheduler/src/data/knex.ts @@ -1,4 +1,3 @@ -import { base64ToText } from '@stdlib/base64'; import Knex from 'knex'; import { once } from 'lodash'; import { Model } from 'objection'; @@ -8,14 +7,10 @@ export const initKnex = once(() => { client: 'pg', useNullAsDefault: true, connection: { - host: process.env.POSTGRES_HOST, - port: parseInt(process.env.POSTGRES_PORT ?? ''), - user: process.env.POSTGRES_USER, - password: process.env.POSTGRES_PASSWORD, - database: process.env.POSTGRES_DATABASE, - ssl: process.env.POSTGRES_CA_CERTIFICATE - ? { ca: base64ToText(process.env.POSTGRES_CA_CERTIFICATE) } - : undefined, + connectionString: `postgres://${process.env.POSTGRES_USER}:${process.env.POSTGRES_PASSWORD}@${process.env.POSTGRES_HOST}:${process.env.POSTGRES_PORT}/${process.env.POSTGRES_DATABASE}?ssl=true`, + ssl: { + rejectUnauthorized: false, // Required for Render's self-signed certificates + }, }, pool: { min: 0,