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 app = express(); const PORT = process.env.PORT || 3000; /* ======================== Security Middleware ======================== */ app.use(helmet()); const limiter = rateLimit({ windowMs: 15 * 60 * 1000, max: 100, }); app.use(limiter); /* ======================== 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); /* ======================== 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}`); });