wireguard-manager/webserver.mjs

44 lines
1 KiB
JavaScript

import fastify from "fastify";
import fastifyView from '@fastify/view';
import autoLoad from "@fastify/autoload";
import path from "node:path";
import ejs from "ejs";
const webServer = fastify({ logger: false });
// EJS-Renderer
webServer.register(fastifyView, {
root: path.join(process.cwd(), 'templates'),
engine: {
ejs
}
});
// file based route loader
webServer.register(autoLoad, {
dir: path.join(process.cwd(), "routes"),
dirNameRoutePrefix: true,
routeParams: true
});
// load plugins
// import registerSSOPlugin from './plugins/sso.mjs';
// await registerSSOPlugin(webServer)
// error handling
webServer.setErrorHandler((error, request, reply) => {
// gezielt Fehler anzeigen, aber nicht alles loggen
console.error("! Fehler in Route:", request.url);
console.error(error);
reply.status(500).send({ error: "Internal Server Error" });
});
// start server
webServer.listen({ port: 3000 }, (err) => {
if (err) {
console.error(err);
process.exit(1);
}
});