require("dotenv").config(); const express = require("express"); const path = require("path"); const helmet = require("helmet"); const rateLimit = require("express-rate-limit"); const serverRoutes = require("./routes/servers"); const registerRoutes = require("./routes/register"); const verifyRoutes = require("./routes/verify"); const characterRoutes = require("./routes/character"); const session = require("express-session"); const loginRoutes = require("./routes/login"); const launcherRoutes = require("./routes/launcher"); const app = express(); const PORT = process.env.PORT || 3000; /* ======================== Security Middleware ======================== */ app.use( helmet({ contentSecurityPolicy: false, }), ); const limiter = rateLimit({ windowMs: 15 * 60 * 1000, max: 100, }); app.use(limiter); app.use( session({ secret: "dynastyofknights_secret", resave: false, saveUninitialized: false, }), ); /* ======================== Express Settings ======================== */ app.set("view engine", "ejs"); app.set("views", path.join(__dirname, "views")); /* ======================== Body Parser ======================== */ app.use(express.json()); app.use(express.urlencoded({ extended: true })); /* ======================== Static Files ======================== */ app.use(express.static(path.join(__dirname, "public"))); /* ======================== Routes ======================== */ app.use("/", serverRoutes); app.use("/register", registerRoutes); app.use("/verify", verifyRoutes); app.use("/create-character", characterRoutes); app.use("/login", loginRoutes); app.use("/launcher", launcherRoutes); /* ======================== 404 Handler ======================== */ app.use((req, res) => { res.status(404).send("Seite nicht gefunden"); }); /* ======================== Webseite beschleunigen ======================== */ const compression = require("compression"); app.use(compression()); /* ======================== Server Start ======================== */ app.listen(PORT, () => { console.log(`Dynasty of Knights Server läuft auf http://localhost:${PORT}`); });