diff --git a/app/server/core/config.ts b/app/server/core/config.ts index 356b341f..81320dbb 100644 --- a/app/server/core/config.ts +++ b/app/server/core/config.ts @@ -4,17 +4,20 @@ import "dotenv/config"; const envSchema = type({ NODE_ENV: type.enumerated("development", "production", "test").default("production"), SERVER_IP: 'string = "localhost"', + SERVER_IDLE_TIMEOUT: 'string.integer.parse = "60"', }).pipe((s) => ({ __prod__: s.NODE_ENV === "production", environment: s.NODE_ENV, serverIp: s.SERVER_IP, + serverIdleTimeout: s.SERVER_IDLE_TIMEOUT, })); const parseConfig = (env: unknown) => { const result = envSchema(env); if (result instanceof type.errors) { - throw new Error(`Invalid environment variables: ${result.toString()}`); + console.error(`Environment variable validation failed: ${result.toString()}`); + throw new Error("Invalid environment variables"); } return result; diff --git a/app/server/index.ts b/app/server/index.ts index d1c32098..b03a8247 100644 --- a/app/server/index.ts +++ b/app/server/index.ts @@ -7,6 +7,7 @@ import { shutdown } from "./modules/lifecycle/shutdown"; import { REQUIRED_MIGRATIONS } from "./core/constants"; import { validateRequiredMigrations } from "./modules/lifecycle/checkpoint"; import { createApp } from "./app"; +import { config } from "./core/config"; const app = createApp(); @@ -33,4 +34,14 @@ process.on("SIGINT", async () => { process.exit(0); }); -export default await createHonoServer({ app, port: 4096 }); +console.log(config.serverIdleTimeout); +export default await createHonoServer({ + app, + port: 4096, + customBunServer: { + idleTimeout: config.serverIdleTimeout, + error(err) { + logger.error(`[Bun.serve] Server error: ${err.message}`); + }, + }, +});