summary refs log tree commit diff
path: root/bundle/src/root.ts
diff options
context:
space:
mode:
Diffstat (limited to 'bundle/src/root.ts')
-rw-r--r--bundle/src/root.ts33
1 files changed, 33 insertions, 0 deletions
diff --git a/bundle/src/root.ts b/bundle/src/root.ts
new file mode 100644
index 00000000..42a3f3c3
--- /dev/null
+++ b/bundle/src/root.ts
@@ -0,0 +1,33 @@
+process.on("unhandledRejection", console.error);
+process.on("uncaughtException", console.error);
+
+import { FosscordServer as APIServer } from "@fosscord/api";
+import { Server as GatewayServer } from "@fosscord/gateway";
+import { CDNServer } from "@fosscord/cdn/";
+import { Config } from "../../util/dist";
+
+const production = true;
+
+const api = new APIServer({ production, port: Number(process.env.API_PORT) || 3001 });
+const gateway = new GatewayServer({ port: Number(process.env.GATEWAY_PORT) || 3002 });
+const cdn = new CDNServer({ production, port: Number(process.env.CDN_PORT) || 3003 });
+
+async function main() {
+	await Config.set({
+		cdn: {
+			endpointClient: "${location.host}",
+			endpoint: `http://localhost:${cdn.options.port}`,
+		},
+		gateway: {
+			endpointClient:
+				'${location.protocol === "https:" ? "wss://" : "ws://"}${location.hostname}:' + gateway.port,
+			endpoint: `ws://localhost:${gateway.port}`,
+		},
+	});
+
+	await api.start();
+	await cdn.start();
+	await gateway.start();
+}
+
+main().catch(console.error);