From 79dd7593db54c9fd25f4076971cf0d81d69bcffe Mon Sep 17 00:00:00 2001 From: Aditya Choudhari Date: Mon, 25 Aug 2025 11:27:33 -0700 Subject: [PATCH 01/10] chore: init kafka ts consumer --- apps/event-queue/Dockerfile | 50 +++++++++++++++++++++++++++++++ apps/event-queue/README.md | 9 ++++++ apps/event-queue/esling.config.js | 8 +++++ apps/event-queue/package.json | 32 ++++++++++++++++++++ apps/event-queue/src/config.ts | 18 +++++++++++ apps/event-queue/src/index.ts | 27 +++++++++++++++++ apps/event-queue/tsconfig.json | 14 +++++++++ pnpm-lock.yaml | 47 +++++++++++++++++++++++++++-- 8 files changed, 203 insertions(+), 2 deletions(-) create mode 100644 apps/event-queue/Dockerfile create mode 100644 apps/event-queue/README.md create mode 100644 apps/event-queue/esling.config.js create mode 100644 apps/event-queue/package.json create mode 100644 apps/event-queue/src/config.ts create mode 100644 apps/event-queue/src/index.ts create mode 100644 apps/event-queue/tsconfig.json diff --git a/apps/event-queue/Dockerfile b/apps/event-queue/Dockerfile new file mode 100644 index 000000000..548bb15be --- /dev/null +++ b/apps/event-queue/Dockerfile @@ -0,0 +1,50 @@ +# https://github.com/WhiskeySockets/Baileys/issues/1003#issuecomment-2306467419 +ARG NODE_VERSION=20 +FROM node:${NODE_VERSION}-alpine + +RUN apk add --no-cache libc6-compat python3 make g++ curl + +ENV PNPM_HOME="/pnpm" +ENV PATH="$PNPM_HOME:$PATH" + +RUN npm install -g turbo +RUN npm install -g corepack@latest +RUN corepack enable pnpm + +WORKDIR /app + +COPY .gitignore .gitignore +COPY turbo.json turbo.json +RUN pnpm add -g turbo + +COPY package.json package.json +COPY .npmrc .npmrc +COPY pnpm-*.yaml . + +COPY tooling/prettier/package.json ./tooling/prettier/package.json +COPY tooling/eslint/package.json ./tooling/eslint/package.json +COPY tooling/typescript/package.json ./tooling/typescript/package.json + +COPY packages/logger/package.json ./packages/logger/package.json +COPY packages/events/package.json ./packages/events/package.json + +COPY apps/workspace-engine/package.json ./apps/workspace-engine/package.json + +RUN pnpm install --frozen-lockfile + +COPY . . + +RUN turbo build --filter=...@ctrlplane/workspace-engine + +RUN addgroup --system --gid 1001 nodejs +RUN adduser --system --uid 1001 nodejs +USER nodejs + +ENV NODE_ENV=production +ENV NODE_MAX_OLD_SPACE_SIZE=4096 + +EXPOSE 3123 + +WORKDIR apps/workspace-engine/dist/ + +CMD ["node", "index.js"] \ No newline at end of file diff --git a/apps/event-queue/README.md b/apps/event-queue/README.md new file mode 100644 index 000000000..b671f5707 --- /dev/null +++ b/apps/event-queue/README.md @@ -0,0 +1,9 @@ +# Event Queue + +This is a simple event queue that listens to the `ctrlplane-events` topic and logs the events to the console. + +## Running + +```bash +pnpm dev +``` diff --git a/apps/event-queue/esling.config.js b/apps/event-queue/esling.config.js new file mode 100644 index 000000000..bee3e0442 --- /dev/null +++ b/apps/event-queue/esling.config.js @@ -0,0 +1,8 @@ +import baseConfig, { requireJsSuffix } from "@ctrlplane/eslint-config/base"; + +/** @type {import('typescript-eslint').Config} */ +export default [ + { ignores: [".nitro/**", ".output/**", "dist/**"]}, + ...requireJsSuffix, + ...baseConfig, +]; \ No newline at end of file diff --git a/apps/event-queue/package.json b/apps/event-queue/package.json new file mode 100644 index 000000000..02160bbfa --- /dev/null +++ b/apps/event-queue/package.json @@ -0,0 +1,32 @@ +{ + "name": "@ctrlplane/event-queue", + "private": true, + "type": "module", + "scripts": { + "clean": "rm -rf .turbo node_modules", + "dev": "pnpm with-env tsx watch --clear-screen=false src/index.ts", + "lint": "eslint", + "build": "tsc", + "format": "prettier --check . --ignore-path ../../.gitignore", + "typecheck": "tsc --noEmit", + "with-env": "dotenv -e ../../.env --" + }, + "dependencies": { + "@ctrlplane/events": "workspace:*", + "@ctrlplane/logger": "workspace:*", + "@t3-oss/env-core": "catalog:", + "kafkajs": "^2.2.4", + "zod": "catalog:" + }, + "devDependencies": { + "@ctrlplane/eslint-config": "workspace:^", + "@ctrlplane/prettier-config": "workspace:^", + "@ctrlplane/tsconfig": "workspace:*", + "@types/node": "catalog:node22", + "eslint": "catalog:", + "prettier": "catalog:", + "tsx": "catalog:", + "typescript": "catalog:" + }, + "prettier": "@ctrlplane/prettier-config" +} \ No newline at end of file diff --git a/apps/event-queue/src/config.ts b/apps/event-queue/src/config.ts new file mode 100644 index 000000000..507a005bd --- /dev/null +++ b/apps/event-queue/src/config.ts @@ -0,0 +1,18 @@ +import { createEnv } from "@t3-oss/env-core"; +import dotenv from "dotenv"; +import { z } from "zod"; + +dotenv.config(); + +export const env = createEnv({ + server: { + NODE_ENV: z + .enum(["development", "production", "test"]) + .default("development"), + KAFKA_BROKERS: z + .string() + .default("localhost:9092") + .transform((val) => val.split(",")), + }, + runtimeEnv: process.env, +}); diff --git a/apps/event-queue/src/index.ts b/apps/event-queue/src/index.ts new file mode 100644 index 000000000..3edd7b1ef --- /dev/null +++ b/apps/event-queue/src/index.ts @@ -0,0 +1,27 @@ +import { Kafka } from "kafkajs"; + +import { logger } from "@ctrlplane/logger"; + +import { env } from "./config.js"; + +const kafka = new Kafka({ + clientId: "event-queue", + brokers: env.KAFKA_BROKERS, +}); + +const consumer = kafka.consumer({ groupId: "event-queue" }); + +export const start = async () => { + await consumer.connect(); + await consumer.subscribe({ topic: "ctrlplane-events", fromBeginning: true }); + + await consumer.run({ + eachMessage: async ({ topic, partition, message }) => { + logger.info("Received event", { + topic, + partition, + message: message.value?.toString() ?? "No message", + }); + }, + }); +}; diff --git a/apps/event-queue/tsconfig.json b/apps/event-queue/tsconfig.json new file mode 100644 index 000000000..34755271a --- /dev/null +++ b/apps/event-queue/tsconfig.json @@ -0,0 +1,14 @@ +{ + "extends": "@ctrlplane/tsconfig/base.json", + "compilerOptions": { + "target": "ESNext", + "outDir": "dist", + "noEmit": false, + "tsBuildInfoFile": "node_modules/.cache/tsbuildinfo.json", + "baseUrl": ".", + "esModuleInterop": true, + "importsNotUsedAsValues": "remove" + }, + "include": ["src", "*.ts"], + "exclude": ["node_modules"] +} diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 85d9dffd2..052aecef9 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -134,6 +134,49 @@ importers: specifier: ^5.7.3 version: 5.8.3 + apps/event-queue: + dependencies: + '@ctrlplane/events': + specifier: workspace:* + version: link:../../packages/events + '@ctrlplane/logger': + specifier: workspace:* + version: link:../../packages/logger + '@t3-oss/env-core': + specifier: 'catalog:' + version: 0.11.1(typescript@5.8.2)(zod@3.24.2) + kafkajs: + specifier: ^2.2.4 + version: 2.2.4 + zod: + specifier: 'catalog:' + version: 3.24.2 + devDependencies: + '@ctrlplane/eslint-config': + specifier: workspace:^ + version: link:../../tooling/eslint + '@ctrlplane/prettier-config': + specifier: workspace:^ + version: link:../../tooling/prettier + '@ctrlplane/tsconfig': + specifier: workspace:* + version: link:../../tooling/typescript + '@types/node': + specifier: catalog:node22 + version: 22.13.10 + eslint: + specifier: 'catalog:' + version: 9.11.1(jiti@2.3.3) + prettier: + specifier: 'catalog:' + version: 3.5.3 + tsx: + specifier: 'catalog:' + version: 4.19.2 + typescript: + specifier: 'catalog:' + version: 5.8.2 + apps/event-worker: dependencies: '@aws-sdk/client-ec2': @@ -17372,7 +17415,7 @@ snapshots: '@types/cors@2.8.19': dependencies: - '@types/node': 22.13.10 + '@types/node': 22.16.2 '@types/d3-array@3.2.1': {} @@ -17668,7 +17711,7 @@ snapshots: '@types/ws@8.18.1': dependencies: - '@types/node': 22.13.10 + '@types/node': 22.16.2 '@typescript-eslint/eslint-plugin@8.13.0(@typescript-eslint/parser@8.13.0(eslint@9.11.1(jiti@2.3.3))(typescript@5.8.2))(eslint@9.11.1(jiti@2.3.3))(typescript@5.8.2)': dependencies: From cad41a8eb9546ab865ab0c613d7e5ba6e8bbfa02 Mon Sep 17 00:00:00 2001 From: Aditya Choudhari Date: Mon, 25 Aug 2025 11:30:28 -0700 Subject: [PATCH 02/10] workflow --- .github/workflows/apps-event-queue.yaml | 80 +++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 .github/workflows/apps-event-queue.yaml diff --git a/.github/workflows/apps-event-queue.yaml b/.github/workflows/apps-event-queue.yaml new file mode 100644 index 000000000..716b908c7 --- /dev/null +++ b/.github/workflows/apps-event-queue.yaml @@ -0,0 +1,80 @@ +name: Apps / Event Queue + +on: + pull_request: + branches: ["*"] + paths: + - apps/event-queue/** + - packages/logger/** + - packages/events/** + - .github/workflows/apps-event-queue.yaml + - pnpm-lock.yaml + push: + branches: ["main"] + paths: + - apps/event-queue/** + - packages/logger/** + - packages/events/** + - .github/workflows/apps-event-queue.yaml + - pnpm-lock.yaml + +jobs: + build: + runs-on: ubuntu-latest + + permissions: + contents: read + id-token: write + + strategy: + matrix: + platform: [linux/amd64] + + steps: + - uses: actions/checkout@v4 + + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Check if Docker Hub secrets are available + run: | + if [ -z "${{ secrets.DOCKERHUB_USERNAME }}" ] || [ -z "${{ secrets.DOCKERHUB_TOKEN }}" ]; then + echo "DOCKERHUB_LOGIN=false" >> $GITHUB_ENV + else + echo "DOCKERHUB_LOGIN=true" >> $GITHUB_ENV + + - name: Login to Docker Hub + uses: docker/login-action@v3 + if: env.DOCKERHUB_LOGIN == 'true' + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Extract metadata (tags, labels) for Docker + id: meta + uses: docker/metadata-action@v4 + with: + images: ctrlplane/event-queue + tags: | + type=sha,format=short,prefix= + + - name: Build + uses: docker/build-push-action@v6 + if: github.ref != 'refs/heads/main' + with: + push: false + file: apps/event-queue/Dockerfile + platforms: ${{ matrix.platform }} + tags: ${{ steps.meta.outputs.tags }} + + - name: Build and Push + uses: docker/build-push-action@v6 + if: github.ref == 'refs/heads/main' && env.DOCKERHUB_LOGIN == 'true' + with: + push: true + file: apps/event-queue/Dockerfile + platforms: ${{ matrix.platform }} + tags: ${{ steps.meta.outputs.tags }} \ No newline at end of file From e4d3c4ed6bcab21be9e23e8ebbaa4067852f2a9a Mon Sep 17 00:00:00 2001 From: Aditya Choudhari Date: Mon, 25 Aug 2025 11:30:52 -0700 Subject: [PATCH 03/10] format --- apps/event-queue/esling.config.js | 4 ++-- apps/event-queue/package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/event-queue/esling.config.js b/apps/event-queue/esling.config.js index bee3e0442..dd9824eb4 100644 --- a/apps/event-queue/esling.config.js +++ b/apps/event-queue/esling.config.js @@ -2,7 +2,7 @@ import baseConfig, { requireJsSuffix } from "@ctrlplane/eslint-config/base"; /** @type {import('typescript-eslint').Config} */ export default [ - { ignores: [".nitro/**", ".output/**", "dist/**"]}, + { ignores: [".nitro/**", ".output/**", "dist/**"] }, ...requireJsSuffix, ...baseConfig, -]; \ No newline at end of file +]; diff --git a/apps/event-queue/package.json b/apps/event-queue/package.json index 02160bbfa..f28b1565e 100644 --- a/apps/event-queue/package.json +++ b/apps/event-queue/package.json @@ -29,4 +29,4 @@ "typescript": "catalog:" }, "prettier": "@ctrlplane/prettier-config" -} \ No newline at end of file +} From 53901b5bf15272ff666cf52939c038ce3be2b9cb Mon Sep 17 00:00:00 2001 From: Aditya Choudhari Date: Mon, 25 Aug 2025 11:44:11 -0700 Subject: [PATCH 04/10] missing change --- .github/workflows/apps-event-queue.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/apps-event-queue.yaml b/.github/workflows/apps-event-queue.yaml index 716b908c7..37a68aab4 100644 --- a/.github/workflows/apps-event-queue.yaml +++ b/.github/workflows/apps-event-queue.yaml @@ -45,6 +45,7 @@ jobs: echo "DOCKERHUB_LOGIN=false" >> $GITHUB_ENV else echo "DOCKERHUB_LOGIN=true" >> $GITHUB_ENV + fi - name: Login to Docker Hub uses: docker/login-action@v3 From 28de25c97d57b077c9ffd2c6aba071641913fd01 Mon Sep 17 00:00:00 2001 From: Aditya Choudhari Date: Mon, 25 Aug 2025 12:09:50 -0700 Subject: [PATCH 05/10] updates --- .github/workflows/apps-event-queue.yaml | 2 +- apps/event-queue/Dockerfile | 6 +++--- .../event-queue/{esling.config.js => eslint.config.js} | 0 apps/event-queue/package.json | 1 + apps/event-queue/src/config.ts | 10 +++++++++- apps/event-queue/src/index.ts | 10 ++++++++-- 6 files changed, 22 insertions(+), 7 deletions(-) rename apps/event-queue/{esling.config.js => eslint.config.js} (100%) diff --git a/.github/workflows/apps-event-queue.yaml b/.github/workflows/apps-event-queue.yaml index 37a68aab4..6fbf6881c 100644 --- a/.github/workflows/apps-event-queue.yaml +++ b/.github/workflows/apps-event-queue.yaml @@ -56,7 +56,7 @@ jobs: - name: Extract metadata (tags, labels) for Docker id: meta - uses: docker/metadata-action@v4 + uses: docker/metadata-action@v5 with: images: ctrlplane/event-queue tags: | diff --git a/apps/event-queue/Dockerfile b/apps/event-queue/Dockerfile index 548bb15be..47c396eaf 100644 --- a/apps/event-queue/Dockerfile +++ b/apps/event-queue/Dockerfile @@ -28,13 +28,13 @@ COPY tooling/typescript/package.json ./tooling/typescript/package.json COPY packages/logger/package.json ./packages/logger/package.json COPY packages/events/package.json ./packages/events/package.json -COPY apps/workspace-engine/package.json ./apps/workspace-engine/package.json +COPY apps/event-queue/package.json ./apps/event-queue/package.json RUN pnpm install --frozen-lockfile COPY . . -RUN turbo build --filter=...@ctrlplane/workspace-engine +RUN turbo build --filter=...@ctrlplane/event-queue RUN addgroup --system --gid 1001 nodejs RUN adduser --system --uid 1001 nodejs @@ -45,6 +45,6 @@ ENV NODE_MAX_OLD_SPACE_SIZE=4096 EXPOSE 3123 -WORKDIR apps/workspace-engine/dist/ +WORKDIR apps/event-queue/dist/ CMD ["node", "index.js"] \ No newline at end of file diff --git a/apps/event-queue/esling.config.js b/apps/event-queue/eslint.config.js similarity index 100% rename from apps/event-queue/esling.config.js rename to apps/event-queue/eslint.config.js diff --git a/apps/event-queue/package.json b/apps/event-queue/package.json index f28b1565e..e7dbef6c8 100644 --- a/apps/event-queue/package.json +++ b/apps/event-queue/package.json @@ -15,6 +15,7 @@ "@ctrlplane/events": "workspace:*", "@ctrlplane/logger": "workspace:*", "@t3-oss/env-core": "catalog:", + "dotenv": "^16.4.5", "kafkajs": "^2.2.4", "zod": "catalog:" }, diff --git a/apps/event-queue/src/config.ts b/apps/event-queue/src/config.ts index 507a005bd..3000a968d 100644 --- a/apps/event-queue/src/config.ts +++ b/apps/event-queue/src/config.ts @@ -12,7 +12,15 @@ export const env = createEnv({ KAFKA_BROKERS: z .string() .default("localhost:9092") - .transform((val) => val.split(",")), + .transform((val) => + val + .split(",") + .map((s) => s.trim()) + .filter(Boolean), + ) + .refine((arr) => arr.length > 0, { + message: "KAFKA_BROKERS must be a non-empty list of brokers", + }), }, runtimeEnv: process.env, }); diff --git a/apps/event-queue/src/index.ts b/apps/event-queue/src/index.ts index 3edd7b1ef..0986f7f36 100644 --- a/apps/event-queue/src/index.ts +++ b/apps/event-queue/src/index.ts @@ -5,15 +5,17 @@ import { logger } from "@ctrlplane/logger"; import { env } from "./config.js"; const kafka = new Kafka({ - clientId: "event-queue", + clientId: "ctrlplane-events", brokers: env.KAFKA_BROKERS, }); -const consumer = kafka.consumer({ groupId: "event-queue" }); +const consumer = kafka.consumer({ groupId: "ctrlplane-events" }); export const start = async () => { + logger.info("Starting event queue", { brokers: env.KAFKA_BROKERS }); await consumer.connect(); await consumer.subscribe({ topic: "ctrlplane-events", fromBeginning: true }); + logger.info("Subscribed to ctrlplane-events topic"); await consumer.run({ eachMessage: async ({ topic, partition, message }) => { @@ -22,6 +24,10 @@ export const start = async () => { partition, message: message.value?.toString() ?? "No message", }); + + return Promise.resolve(); }, }); }; + +start(); From d28019391c54a6184ca4d5d4ef338199b7f69b93 Mon Sep 17 00:00:00 2001 From: Aditya Choudhari Date: Mon, 25 Aug 2025 12:39:07 -0700 Subject: [PATCH 06/10] update lock file --- pnpm-lock.yaml | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 052aecef9..ba44b6517 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -145,6 +145,9 @@ importers: '@t3-oss/env-core': specifier: 'catalog:' version: 0.11.1(typescript@5.8.2)(zod@3.24.2) + dotenv: + specifier: ^16.4.5 + version: 16.6.1 kafkajs: specifier: ^2.2.4 version: 2.2.4 @@ -7723,10 +7726,6 @@ packages: resolution: {integrity: sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==} engines: {node: '>=12'} - dotenv@16.5.0: - resolution: {integrity: sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==} - engines: {node: '>=12'} - dotenv@16.6.1: resolution: {integrity: sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==} engines: {node: '>=12'} @@ -18994,7 +18993,7 @@ snapshots: dotenv-cli@7.4.4: dependencies: cross-spawn: 7.0.6 - dotenv: 16.5.0 + dotenv: 16.6.1 dotenv-expand: 10.0.0 minimist: 1.2.8 @@ -19002,8 +19001,6 @@ snapshots: dotenv@16.0.3: {} - dotenv@16.5.0: {} - dotenv@16.6.1: {} drange@1.1.1: {} From 03eff5686f030f73217e8a75e05796b89684065e Mon Sep 17 00:00:00 2001 From: Aditya Choudhari Date: Mon, 25 Aug 2025 13:01:51 -0700 Subject: [PATCH 07/10] add secrets package --- apps/event-queue/Dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/apps/event-queue/Dockerfile b/apps/event-queue/Dockerfile index 47c396eaf..61e0ed99f 100644 --- a/apps/event-queue/Dockerfile +++ b/apps/event-queue/Dockerfile @@ -27,6 +27,8 @@ COPY tooling/typescript/package.json ./tooling/typescript/package.json COPY packages/logger/package.json ./packages/logger/package.json COPY packages/events/package.json ./packages/events/package.json +COPY packages/secrets/package.json ./packages/secrets/package.json +COPY packages/validators/package.json ./packages/validators/package.json COPY apps/event-queue/package.json ./apps/event-queue/package.json From f774590660dafcc423b50e1a3f7518b8c2846fbc Mon Sep 17 00:00:00 2001 From: Aditya Choudhari Date: Mon, 25 Aug 2025 13:06:01 -0700 Subject: [PATCH 08/10] add db --- apps/event-queue/Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/event-queue/Dockerfile b/apps/event-queue/Dockerfile index 61e0ed99f..fb4fc942b 100644 --- a/apps/event-queue/Dockerfile +++ b/apps/event-queue/Dockerfile @@ -29,6 +29,7 @@ COPY packages/logger/package.json ./packages/logger/package.json COPY packages/events/package.json ./packages/events/package.json COPY packages/secrets/package.json ./packages/secrets/package.json COPY packages/validators/package.json ./packages/validators/package.json +COPY packages/db/package.json ./packages/db/package.json COPY apps/event-queue/package.json ./apps/event-queue/package.json From 76beef131950b87bbdab983f38347a088c8a385b Mon Sep 17 00:00:00 2001 From: Aditya Choudhari Date: Mon, 25 Aug 2025 13:08:15 -0700 Subject: [PATCH 09/10] apparently we need more --- apps/event-queue/Dockerfile | 2 ++ 1 file changed, 2 insertions(+) diff --git a/apps/event-queue/Dockerfile b/apps/event-queue/Dockerfile index fb4fc942b..11e6c049a 100644 --- a/apps/event-queue/Dockerfile +++ b/apps/event-queue/Dockerfile @@ -30,6 +30,8 @@ COPY packages/events/package.json ./packages/events/package.json COPY packages/secrets/package.json ./packages/secrets/package.json COPY packages/validators/package.json ./packages/validators/package.json COPY packages/db/package.json ./packages/db/package.json +COPY packages/job-dispatch/package.json ./packages/job-dispatch/package.json +COPY packages/rule-engine/package.json ./packages/rule-engine/package.json COPY apps/event-queue/package.json ./apps/event-queue/package.json From 5e036c42f80d9fd05eadafc373c723fb1747a45f Mon Sep 17 00:00:00 2001 From: Aditya Choudhari Date: Mon, 25 Aug 2025 13:37:12 -0700 Subject: [PATCH 10/10] rabbit comment --- apps/event-worker/Dockerfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/event-worker/Dockerfile b/apps/event-worker/Dockerfile index a3ab5e2f8..8d5bba4b1 100644 --- a/apps/event-worker/Dockerfile +++ b/apps/event-worker/Dockerfile @@ -50,7 +50,7 @@ RUN adduser --system --uid 1001 nodejs USER nodejs ENV NODE_ENV=production -ENV NODE_MAX_OLD_SPACE_SIZE=4096 +ENV NODE_OPTIONS="--max-old-space-size=4096" EXPOSE 3123