diff options
| author | MohamedBassem <me@mbassem.com> | 2024-02-14 11:19:05 +0000 |
|---|---|---|
| committer | MohamedBassem <me@mbassem.com> | 2024-02-14 11:19:05 +0000 |
| commit | 686c677edc3a739cd8afdf6d20837fef202cbfe7 (patch) | |
| tree | b7940a32046363925cfb4be31682a1c515a25319 | |
| parent | 50c3c5e132643fc33d39fb9dc1fe951efe766337 (diff) | |
| download | karakeep-686c677edc3a739cd8afdf6d20837fef202cbfe7.tar.zst | |
chore: Consolidate all config vars in one file
| -rw-r--r-- | .env.sample | 18 | ||||
| -rw-r--r-- | packages/shared/config.ts (renamed from packages/web/server/config.ts) | 10 | ||||
| -rw-r--r-- | packages/shared/logger.ts | 3 | ||||
| -rw-r--r-- | packages/shared/queues.ts | 5 | ||||
| -rw-r--r-- | packages/web/server/auth.ts | 2 | ||||
| -rw-r--r-- | packages/workers/openai.ts | 14 |
6 files changed, 40 insertions, 12 deletions
diff --git a/.env.sample b/.env.sample new file mode 100644 index 00000000..fd160adb --- /dev/null +++ b/.env.sample @@ -0,0 +1,18 @@ +# Must have a scheme in the beginning (e.g. file://) +# DATABASE_URL= +# LOG_LEVEL="debug" + +# Redis for BullMQ + +# REDIS_HOST= +# REDIS_PORT= + +# OpenAI + +# OPENAI_API_KEY= + +# Authentik for auth + +# AUTHENTIK_ID= +# AUTHENTIK_SECRET= +# AUTHENTIK_ISSUER= diff --git a/packages/web/server/config.ts b/packages/shared/config.ts index dbf6620e..8cf0d620 100644 --- a/packages/web/server/config.ts +++ b/packages/shared/config.ts @@ -13,10 +13,18 @@ function buildAuthentikConfig() { } const serverConfig = { - api_url: process.env.API_URL || "http://localhost:3000", + apiUrl: process.env.API_URL || "http://localhost:3000", auth: { authentik: buildAuthentikConfig(), }, + openAI: { + apiKey: process.env.OPENAI_API_KEY, + }, + bullMQ: { + redisHost: process.env.REDIS_HOST || "localhost", + redisPort: parseInt(process.env.REDIS_PORT || "6379"), + }, + logLevel: process.env.LOG_LEVEL || "debug", }; export default serverConfig; diff --git a/packages/shared/logger.ts b/packages/shared/logger.ts index 8cd2f808..471ec7ab 100644 --- a/packages/shared/logger.ts +++ b/packages/shared/logger.ts @@ -1,7 +1,8 @@ import winston from "winston"; +import serverConfig from "./config"; const logger = winston.createLogger({ - level: process.env.LOG_LEVEL || "debug", + level: serverConfig.logLevel, format: winston.format.combine( winston.format.timestamp(), winston.format.colorize(), diff --git a/packages/shared/queues.ts b/packages/shared/queues.ts index 190aef85..0155b1e7 100644 --- a/packages/shared/queues.ts +++ b/packages/shared/queues.ts @@ -1,9 +1,10 @@ import { Queue } from "bullmq"; import { z } from "zod"; +import serverConfig from "./config"; export const queueConnectionDetails = { - host: process.env.REDIS_HOST || "localhost", - port: parseInt(process.env.REDIS_PORT || "6379"), + host: serverConfig.bullMQ.redisHost, + port: serverConfig.bullMQ.redisPort, }; // Link Crawler diff --git a/packages/web/server/auth.ts b/packages/web/server/auth.ts index 6c00b4b5..c5a81a2d 100644 --- a/packages/web/server/auth.ts +++ b/packages/web/server/auth.ts @@ -1,7 +1,7 @@ import NextAuth, { NextAuthOptions, getServerSession } from "next-auth"; import { PrismaAdapter } from "@next-auth/prisma-adapter"; import AuthentikProvider from "next-auth/providers/authentik"; -import serverConfig from "@/server/config"; +import serverConfig from "@remember/shared/config"; import { prisma } from "@remember/db"; import { DefaultSession } from "next-auth"; import * as bcrypt from "bcrypt"; diff --git a/packages/workers/openai.ts b/packages/workers/openai.ts index 7c45b2cb..1e353092 100644 --- a/packages/workers/openai.ts +++ b/packages/workers/openai.ts @@ -1,5 +1,6 @@ import { prisma, BookmarkedLink } from "@remember/db"; import logger from "@remember/shared/logger"; +import serverConfig from "@remember/shared/config"; import { OpenAIQueue, ZOpenAIRequest, @@ -157,20 +158,19 @@ async function connectTags(bookmarkId: string, tagIds: string[]) { async function runOpenAI(job: Job<ZOpenAIRequest, void>) { const jobId = job.id || "unknown"; - if (!process.env.OPENAI_API_KEY || !process.env.OPENAI_ENABLED) { - return; - } + const { openAI } = serverConfig; - const openai = new OpenAI({ - apiKey: process.env.OPENAI_API_KEY, - }); - if (!openai) { + if (!openAI.apiKey) { logger.debug( `[openai][${jobId}] OpenAI is not configured, nothing to do now`, ); return; } + const openai = new OpenAI({ + apiKey: openAI.apiKey, + }); + const request = zOpenAIRequestSchema.safeParse(job.data); if (!request.success) { throw new Error( |
