diff --git a/src/api/Server.ts b/src/api/Server.ts
index 1d9fe2ab..f9f1c708 100644
--- a/src/api/Server.ts
+++ b/src/api/Server.ts
@@ -16,15 +16,17 @@
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-import { Config, ConnectionConfig, ConnectionLoader, Email, JSONReplacer, WebAuthn, initDatabase, initEvent, registerRoutes, getDatabase, getRevInfoOrFail } from "@spacebar/util";
-import { Authentication, CORS, ImageProxy, BodyParser, ErrorHandler, initRateLimits, initTranslation } from "./middlewares";
+import path from "node:path";
import { Request, Response, Router } from "express";
-import { Server, ServerOptions } from "lambert-server";
import morgan from "morgan";
-import path from "node:path";
+import { Server, ServerOptions } from "lambert-server";
import { red } from "picocolors";
+import { Config, ConnectionConfig, ConnectionLoader, Email, JSONReplacer, WebAuthn, initDatabase, initEvent, registerRoutes, getDatabase, getRevInfoOrFail } from "@spacebar/util";
+import { Authentication, CORS, ImageProxy, BodyParser, ErrorHandler, initRateLimits, initTranslation } from "./middlewares";
import { initInstance } from "./util/handlers/Instance";
import { route } from "./util";
+import { ProcessLifecycle } from "../util/util/ProcessLifecycle";
+import { Monitoring } from "../util/monitoring/Monitoring";
const ASSETS_FOLDER = path.join(__dirname, "..", "..", "assets");
const PUBLIC_ASSETS_FOLDER = path.join(ASSETS_FOLDER, "public");
@@ -50,6 +52,8 @@ export class SpacebarServer extends Server {
}
async start() {
+ await Monitoring.init();
+ Monitoring.attach(this.app);
await initDatabase();
await Config.init();
await initEvent();
@@ -196,6 +200,7 @@ export class SpacebarServer extends Server {
if (logRequests) console.log(red(`Warning: Request logging is enabled! This will spam your console!\nTo disable this, unset the 'LOG_REQUESTS' environment variable!`));
+ await ProcessLifecycle.Ready();
return super.start();
}
}
diff --git a/src/api/routes/stop.ts b/src/api/routes/stop.ts
index 4f869735..b6ecd04c 100644
--- a/src/api/routes/stop.ts
+++ b/src/api/routes/stop.ts
@@ -18,6 +18,7 @@
import { route } from "@spacebar/api";
import { Request, Response, Router } from "express";
+import { ProcessLifecycle } from "../../util/util/ProcessLifecycle";
const router: Router = Router({ mergeParams: true });
@@ -35,7 +36,9 @@ router.post(
(req: Request, res: Response) => {
console.log(`/stop was called by ${req.user_id} at ${new Date()}`);
res.sendStatus(200);
- process.kill(process.pid, "SIGTERM");
+ ProcessLifecycle.Shutdown().catch((e) => {
+ console.error("Failed to shut down:", e);
+ });
},
);
|