From 9c91a8db46851a5ea3df33747af572584b25ab99 Mon Sep 17 00:00:00 2001 From: Owen Date: Mon, 13 Oct 2025 11:49:48 -0700 Subject: [PATCH] Update build process --- Dockerfile | 13 +++++++++++- package.json | 1 + server/db/pg/driver.ts | 12 +++++------ server/lib/readConfigFile.ts | 7 +------ server/private/lib/exitNodes/exitNodeComms.ts | 20 +++++++++---------- 5 files changed, 30 insertions(+), 23 deletions(-) diff --git a/Dockerfile b/Dockerfile index edee74eb..f704370c 100644 --- a/Dockerfile +++ b/Dockerfile @@ -15,9 +15,20 @@ RUN echo "export * from \"./$DATABASE\";" > server/db/index.ts RUN echo "export const build = \"$BUILD\" as any;" > server/build.ts +# if the build is oss then remove the server/private directory +RUN if [ "$BUILD" = "oss" ]; then rm -rf server/private; fi + RUN if [ "$DATABASE" = "pg" ]; then npx drizzle-kit generate --dialect postgresql --schema ./server/db/pg/schema.ts --out init; else npx drizzle-kit generate --dialect $DATABASE --schema ./server/db/$DATABASE/schema.ts --out init; fi -RUN npm run build:$DATABASE +RUN mkdir -p dist +RUN npm run next:build +RUN node esbuild.mjs -e server/index.ts -o dist/server.mjs -b $BUILD +RUN if [ "$DATABASE" = "pg" ]; then \ + node esbuild.mjs -e server/setup/migrationsPg.ts -o dist/migrations.mjs; \ + else \ + node esbuild.mjs -e server/setup/migrationsSqlite.ts -o dist/migrations.mjs; \ + fi + RUN npm run build:cli FROM node:22-alpine AS runner diff --git a/package.json b/package.json index 61126ec5..4484ee89 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,7 @@ "set:enterprise": "echo 'export const build = \"enterprise\" as any;' > server/build.ts", "set:sqlite": "echo 'export * from \"./sqlite\";' > server/db/index.ts", "set:pg": "echo 'export * from \"./pg\";' > server/db/index.ts", + "next:build": "next build", "build:sqlite": "mkdir -p dist && next build && node esbuild.mjs -e server/index.ts -o dist/server.mjs && node esbuild.mjs -e server/setup/migrationsSqlite.ts -o dist/migrations.mjs", "build:pg": "mkdir -p dist && next build && node esbuild.mjs -e server/index.ts -o dist/server.mjs && node esbuild.mjs -e server/setup/migrationsPg.ts -o dist/migrations.mjs", "start": "ENVIRONMENT=prod node dist/migrations.mjs && ENVIRONMENT=prod NODE_ENV=development node --enable-source-maps dist/server.mjs", diff --git a/server/db/pg/driver.ts b/server/db/pg/driver.ts index 23904c7e..6dbef7e8 100644 --- a/server/db/pg/driver.ts +++ b/server/db/pg/driver.ts @@ -38,9 +38,9 @@ function createDb() { const poolConfig = config.postgres.pool; const primaryPool = new Pool({ connectionString, - max: poolConfig.max_connections, - idleTimeoutMillis: poolConfig.idle_timeout_ms, - connectionTimeoutMillis: poolConfig.connection_timeout_ms, + max: poolConfig?.max_connections || 20, + idleTimeoutMillis: poolConfig?.idle_timeout_ms || 30000, + connectionTimeoutMillis: poolConfig?.connection_timeout_ms || 5000, }); const replicas = []; @@ -51,9 +51,9 @@ function createDb() { for (const conn of replicaConnections) { const replicaPool = new Pool({ connectionString: conn.connection_string, - max: poolConfig.max_replica_connections, - idleTimeoutMillis: poolConfig.idle_timeout_ms, - connectionTimeoutMillis: poolConfig.connection_timeout_ms, + max: poolConfig?.max_replica_connections || 20, + idleTimeoutMillis: poolConfig?.idle_timeout_ms || 30000, + connectionTimeoutMillis: poolConfig?.connection_timeout_ms || 5000, }); replicas.push(DrizzlePostgres(replicaPool)); } diff --git a/server/lib/readConfigFile.ts b/server/lib/readConfigFile.ts index baffaba1..d614103a 100644 --- a/server/lib/readConfigFile.ts +++ b/server/lib/readConfigFile.ts @@ -178,12 +178,7 @@ export const configSchema = z .default(5000) }) .optional() - .default({ - max_connections: 20, - max_replica_connections: 10, - idle_timeout_ms: 30000, - connection_timeout_ms: 5000 - }) + .default({}) }) .optional(), traefik: z diff --git a/server/private/lib/exitNodes/exitNodeComms.ts b/server/private/lib/exitNodes/exitNodeComms.ts index 4cf8fbe7..20c850a1 100644 --- a/server/private/lib/exitNodes/exitNodeComms.ts +++ b/server/private/lib/exitNodes/exitNodeComms.ts @@ -57,13 +57,13 @@ export async function sendToExitNode( } else { let hostname = exitNode.reachableAt; - logger.debug(`Exit node details:`, { - type: exitNode.type, - name: exitNode.name, - reachableAt: exitNode.reachableAt, - }); + // logger.debug(`Exit node details:`, { + // type: exitNode.type, + // name: exitNode.name, + // reachableAt: exitNode.reachableAt, + // }); - logger.debug(`Configured local exit node name: ${config.getRawConfig().gerbil.exit_node_name}`); + // logger.debug(`Configured local exit node name: ${config.getRawConfig().gerbil.exit_node_name}`); if (exitNode.name == config.getRawConfig().gerbil.exit_node_name) { hostname = privateConfig.getRawPrivateConfig().gerbil.local_exit_node_reachable_at; @@ -75,10 +75,10 @@ export async function sendToExitNode( ); } - logger.debug(`Sending request to exit node at ${hostname}`, { - type: request.remoteType, - data: request.data - }); + // logger.debug(`Sending request to exit node at ${hostname}`, { + // type: request.remoteType, + // data: request.data + // }); // Handle local exit node with HTTP API const method = request.method || "POST";