import dotenv from "dotenv" import express from "express" import http from "http" import process from "process" import signalbuddy from "signalbuddy" dotenv.config() const host = "0.0.0.0" const port = parseInt(process.env.PORT) || 3000 const app = express() const server = http.createServer(app) const config = { rooms: { maxClients: 0, // no limit }, ice: { host: process.env.ICE_HOST || "localhost", port: parseInt(process.env.ICE_PORT) || 3478, stun: { username: process.env.ICE_STUN_USERNAME || "user", password: process.env.ICE_STUN_PASSWORD || "password", }, turn: { secret: process.env.ICE_TURN_SECRET || "secret", timeout: parseInt(process.env.ICE_TURN_TIMEOUT) || 86400, }, }, } signalbuddy(server, config) app.use((request, response, next) => { response.on("finish", () => { console.log( "[%s] [%s]: %s %s", `${new Date()}`.split(" ", 5).join(" "), response.statusCode, request.method.padStart(7), request.originalUrl, ) }) next() }) app.get("/", (request, response, next) => { if (request.query.room == null) { const url = new URL( `${request.protocol}://${request.get("host")}${request.originalUrl}`, ) url.searchParams.set("room", "imperial") return response.redirect(url) } next() }) app.use("/", express.static("public")) server.listen(port, host, () => { console.log(`Listening on http://${host}:${port}`) process.on("SIGINT", process.exit) })