aboutsummaryrefslogtreecommitdiff
path: root/src/index.ts
diff options
context:
space:
mode:
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;