67 lines
2.0 KiB
TypeScript
67 lines
2.0 KiB
TypeScript
import Fastify from "fastify";
|
|
import swaggerPlugin from "./plugins/swagger"
|
|
import supabasePlugin from "./plugins/supabase";
|
|
import healthRoutes from "./routes/health";
|
|
import meRoutes from "./routes/me";
|
|
import tenantRoutes from "./routes/tenant";
|
|
import tenantPlugin from "./plugins/tenant";
|
|
import authRoutes from "./routes/auth";
|
|
import authRoutesAuthenticated from "./routes/auth-authenticated";
|
|
import authPlugin from "./plugins/auth";
|
|
import adminRoutes from "./routes/admin";
|
|
import corsPlugin from "./plugins/cors";
|
|
import resourceRoutes from "./routes/resources";
|
|
import fastifyCookie from "@fastify/cookie";
|
|
import historyRoutes from "./routes/history";
|
|
import fileRoutes from "./routes/files";
|
|
|
|
import {sendMail} from "./utils/mailer";
|
|
|
|
async function main() {
|
|
const app = Fastify({ logger: true });
|
|
|
|
/*app.addHook("onRequest", (req, reply, done) => {
|
|
console.log("Incoming:", req.method, req.url, "Headers:", req.headers)
|
|
done()
|
|
})*/
|
|
|
|
// Plugins Global verfügbar
|
|
await app.register(swaggerPlugin);
|
|
await app.register(corsPlugin);
|
|
await app.register(supabasePlugin);
|
|
await app.register(tenantPlugin);
|
|
app.register(fastifyCookie, {
|
|
secret: process.env.COOKIE_SECRET || "supersecret", // optional, für signierte Cookies
|
|
})
|
|
// Öffentliche Routes
|
|
await app.register(authRoutes);
|
|
await app.register(healthRoutes);
|
|
|
|
|
|
|
|
//Geschützte Routes
|
|
|
|
await app.register(async (subApp) => {
|
|
await subApp.register(authPlugin);
|
|
await subApp.register(authRoutesAuthenticated);
|
|
await subApp.register(meRoutes);
|
|
await subApp.register(tenantRoutes);
|
|
await subApp.register(adminRoutes);
|
|
await subApp.register(resourceRoutes);
|
|
await subApp.register(historyRoutes);
|
|
await subApp.register(fileRoutes);
|
|
|
|
},{prefix: "/api"})
|
|
|
|
|
|
// Start
|
|
try {
|
|
await app.listen({ port: 3100 });
|
|
console.log("🚀 Server läuft auf http://localhost:3100");
|
|
} catch (err) {
|
|
app.log.error(err);
|
|
process.exit(1);
|
|
}
|
|
}
|
|
|
|
main(); |