selfhostable, read-only reddit client
at main 34 lines 1.1 kB view raw
1const express = require("express"); 2const rateLimit = require("express-rate-limit"); 3const path = require("node:path"); 4const cookieParser = require("cookie-parser"); 5const app = express(); 6const hasher = new Bun.CryptoHasher("sha256", "secret-key"); 7const JWT_KEY = hasher.update(Math.random().toString()).digest("hex"); 8 9module.exports = { JWT_KEY }; 10 11app.set("views", path.join(__dirname, "views")); 12app.set("view engine", "pug"); 13 14const routes = require("./routes/index"); 15app.use(express.json()); 16app.use(express.urlencoded({ extended: true })); 17app.use(express.static(path.join(__dirname, "public"))); 18app.use(express.static(path.join(__dirname, "assets"))); 19app.use(cookieParser()); 20app.use( 21 rateLimit({ 22 windowMs: 15 * 60 * 1000, 23 max: 100, 24 message: "Too many requests from this IP, please try again later.", 25 standardHeaders: true, 26 legacyHeaders: false, 27 }), 28); 29app.use("/", routes); 30 31const port = process.env.LURKER_PORT; 32const server = app.listen(port ? port : 3000, "0.0.0.0", () => { 33 console.log("started on", server.address()); 34});