Initial Commit
This commit is contained in:
commit
6d2e379a0c
41 changed files with 5064 additions and 0 deletions
43
src/web/server.js
Normal file
43
src/web/server.js
Normal file
|
|
@ -0,0 +1,43 @@
|
|||
import express from "express";
|
||||
import path from "path";
|
||||
import { config } from "../config.js";
|
||||
import { authMiddleware } from "./middlewares/auth.js";
|
||||
import { libraryRouter } from "./routes/library.js";
|
||||
import { playerRouter } from "./routes/player.js";
|
||||
import { queueRouter } from "./routes/queue.js";
|
||||
import { uploadsRouter } from "./routes/uploads.js";
|
||||
import { ensureStorageLayout } from "./storage/storageManager.js";
|
||||
|
||||
const PUBLIC_DIR = path.join(process.cwd(), "public");
|
||||
|
||||
function startWebServer(dependencies) {
|
||||
ensureStorageLayout();
|
||||
|
||||
const app = express();
|
||||
app.use(express.json());
|
||||
|
||||
const apiRouter = express.Router();
|
||||
apiRouter.use(authMiddleware);
|
||||
apiRouter.use("/uploads", uploadsRouter(dependencies));
|
||||
apiRouter.use("/queue", queueRouter(dependencies));
|
||||
apiRouter.use("/library", libraryRouter(dependencies));
|
||||
apiRouter.use("/player", playerRouter(dependencies));
|
||||
|
||||
app.use("/api", apiRouter);
|
||||
app.get(["/jukebox", "/jukebox/"], (_req, res) =>
|
||||
res.sendFile(path.join(PUBLIC_DIR, "jukebox.html"))
|
||||
);
|
||||
app.use(express.static(PUBLIC_DIR));
|
||||
|
||||
const port = Number(process.env.PORT || config.webServerPort || 3000);
|
||||
|
||||
app.listen(port, () => {
|
||||
console.log(
|
||||
`[${new Date().toLocaleString()}] Web control server listening on port ${port}`
|
||||
);
|
||||
});
|
||||
|
||||
return app;
|
||||
}
|
||||
|
||||
export { startWebServer };
|
||||
Loading…
Add table
Add a link
Reference in a new issue