diff --git a/server/config.ts b/server/config.ts index 66cb80ce..228072fb 100644 --- a/server/config.ts +++ b/server/config.ts @@ -32,7 +32,7 @@ const environmentSchema = z.object({ prefer_wildcard_cert: z.boolean().optional(), }), gerbil: z.object({ - start_port: z.number().positive().gt(0), + start_port: portSchema, base_endpoint: z.string(), subnet_group: z.string(), block_size: z.number().positive().gt(0), @@ -120,16 +120,9 @@ if (!parsedConfig.success) { throw new Error(`Invalid configuration file: ${errors}`); } -process.env.NEXT_PUBLIC_EXTERNAL_API_BASE_URL = new URL( - "/api/v1", - parsedConfig.data.app.base_url -).href; -process.env.NEXT_PUBLIC_INTERNAL_API_BASE_URL = new URL( - "/api/v1", - `http://${parsedConfig.data.server.internal_hostname}:${parsedConfig.data.server.external_port}` -).href; -process.env.PUBLIC_FLAGS_EMAIL_VERIFICATION_REQUIRED = parsedConfig.data - .flags?.require_email_verification +process.env.SERVER_EXTERNAL_PORT = parsedConfig.data.server.external_port.toString(); +process.env.FLAGS_EMAIL_VERIFICATION_REQUIRED = parsedConfig.data.flags + ?.require_email_verification ? "true" : "false"; diff --git a/src/api/index.ts b/src/api/index.ts index 073dc2f5..4da1a36e 100644 --- a/src/api/index.ts +++ b/src/api/index.ts @@ -1,20 +1,21 @@ import axios from "axios"; -// let origin; -// if (typeof window !== "undefined") { -// origin = window.location.origin; -// } +let origin; +if (typeof window !== "undefined") { + origin = window.location.origin; +} export const api = axios.create({ - baseURL: `http://localhost:3000/api/v1`, + baseURL: `${origin}/api/v1`, timeout: 10000, headers: { "Content-Type": "application/json", }, }); +// we can pull from env var here becuase it is only used in the server export const internal = axios.create({ - baseURL: `http://localhost:3000/api/v1`, + baseURL: `http://localhost:${process.env.SERVER_EXTERNAL_PORT}/api/v1`, timeout: 10000, headers: { "Content-Type": "application/json",