aboutsummaryrefslogtreecommitdiff
path: root/src/index.ts
diff options
context:
space:
mode:
authorAlex Pooley <zuedev@gmail.com>2025-02-22 17:55:22 +0000
committerAlex Pooley <zuedev@gmail.com>2025-02-22 17:55:22 +0000
commit987964da7c41f821b6a8dbee34e223954349df76 (patch)
treed5ee4ece49e7c48c4d22aa890d7c0b9c51ced8c1 /src/index.ts
downloadzue.dev-987964da7c41f821b6a8dbee34e223954349df76.tar
zue.dev-987964da7c41f821b6a8dbee34e223954349df76.tar.gz
zue.dev-987964da7c41f821b6a8dbee34e223954349df76.tar.bz2
zue.dev-987964da7c41f821b6a8dbee34e223954349df76.tar.xz
zue.dev-987964da7c41f821b6a8dbee34e223954349df76.zip
initial
Diffstat (limited to 'src/index.ts')
-rw-r--r--src/index.ts60
1 files changed, 60 insertions, 0 deletions
diff --git a/src/index.ts b/src/index.ts
new file mode 100644
index 0000000..c20041b
--- /dev/null
+++ b/src/index.ts
@@ -0,0 +1,60 @@
+import { Hono } from "hono";
+import { cors } from "hono/cors";
+
+const app = new Hono();
+
+// unlock cors for all routes
+app.use("*", cors());
+
+// return a simple message
+app.get("/", (c) => {
+ return c.json({
+ message: "Hello, World! :3",
+ });
+});
+
+// return own status of the server
+app.get("/status", (c) => {
+ return c.json({
+ status: "ok",
+ });
+});
+
+// return status of a given service
+app.get("/status/:service", (c) => {
+ const { service } = c.req.param();
+
+ const acceptedServices = [
+ "dns",
+ "load-balancer",
+ "cdn",
+ "functions",
+ "mysql-cluster",
+ "mongodb-cluster",
+ "redis-cluster",
+ "elasticsearch-cluster",
+ "git-connector",
+ "job-runners",
+ "container-registry",
+ "kubernetes-cluster",
+ "bare-metal-servers",
+ "game-server-api",
+ "anti-ddos-protection",
+ "anti-cheat-api",
+ ];
+
+ if (!acceptedServices.includes(service)) {
+ return c.json(
+ {
+ error: "unknown service",
+ },
+ 400
+ );
+ }
+
+ return c.json({
+ status: "ok",
+ });
+});
+
+export default app;