dok/app.js
2026-03-11 16:26:48 +00:00

81 lines
1.7 KiB
JavaScript

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 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);
/* ========================
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);
/* ========================
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}`);
});