diff --git a/gateway/src/util/Config.ts b/gateway/src/util/Config.ts
new file mode 100644
index 00000000..9ceb8cd5
--- /dev/null
+++ b/gateway/src/util/Config.ts
@@ -0,0 +1,41 @@
+// @ts-nocheck
+import { Config } from "@fosscord/server-util";
+import { getConfigPathForFile } from "@fosscord/server-util/dist/util/Config";
+import Ajv, { JSONSchemaType } from "ajv";
+
+export interface DefaultOptions {
+ endpoint?: string;
+ security: {
+ jwtSecret: string;
+ };
+}
+
+const schema: JSONSchemaType<DefaultOptions> = {
+ type: "object",
+ properties: {
+ endpoint: {
+ type: "string",
+ nullable: true,
+ },
+ security: {
+ type: "object",
+ properties: {
+ jwtSecret: {
+ type: "string",
+ },
+ },
+ required: ["jwtSecret"],
+ },
+ },
+ required: ["security"],
+};
+
+const ajv = new Ajv();
+const validator = ajv.compile(schema);
+
+const configPath = getConfigPathForFile("fosscord", "gateway", ".json");
+export const gatewayConfig = new Config<DefaultOptions>({
+ path: configPath,
+ schemaValidator: validator,
+ schema: schema,
+});
|