This commit is contained in:
@@ -14,4 +14,6 @@ COPY dist dist
|
|||||||
|
|
||||||
EXPOSE 3000
|
EXPOSE 3000
|
||||||
|
|
||||||
|
ENV SERVE_WEB=false
|
||||||
|
|
||||||
CMD ["npm", "run", "serve"]
|
CMD ["npm", "run", "serve"]
|
||||||
|
|||||||
18
server.ts
18
server.ts
@@ -22,6 +22,7 @@ import cors from "cors";
|
|||||||
|
|
||||||
const DB_FOLDER = path.join(process.cwd(), "volume", "db");
|
const DB_FOLDER = path.join(process.cwd(), "volume", "db");
|
||||||
const WEB_FOLDER = path.join(process.cwd(), "web", "public");
|
const WEB_FOLDER = path.join(process.cwd(), "web", "public");
|
||||||
|
const SERVE_WEB = process.env.SERVE_WEB != "false";
|
||||||
|
|
||||||
const VERSIONS = ["v1", "v2", "v3"];
|
const VERSIONS = ["v1", "v2", "v3"];
|
||||||
const PORT = process.env.PORT || 3000;
|
const PORT = process.env.PORT || 3000;
|
||||||
@@ -41,7 +42,7 @@ app.get('/', async (req: Request, res: Response) => {
|
|||||||
const userAgent = req.headers['user-agent'] || '';
|
const userAgent = req.headers['user-agent'] || '';
|
||||||
const isBrowser = /Mozilla|Chrome|Firefox|Safari|Edg/.test(userAgent);
|
const isBrowser = /Mozilla|Chrome|Firefox|Safari|Edg/.test(userAgent);
|
||||||
|
|
||||||
if (isBrowser) {
|
if (isBrowser && SERVE_WEB) {
|
||||||
res.sendFile(path.join(WEB_FOLDER, "index.html"));
|
res.sendFile(path.join(WEB_FOLDER, "index.html"));
|
||||||
} else {
|
} else {
|
||||||
const dataStr = await fs.readFile(path.join(DB_FOLDER, "v1.json"), "utf8");
|
const dataStr = await fs.readFile(path.join(DB_FOLDER, "v1.json"), "utf8");
|
||||||
@@ -53,15 +54,6 @@ app.get('/', async (req: Request, res: Response) => {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
app.get('/versioned/v1', async (_: Request, res: Response) => {
|
|
||||||
const dataStr = await fs.readFile(path.join(DB_FOLDER, "v1.json"), "utf8");
|
|
||||||
const data = JSON.parse(dataStr);
|
|
||||||
|
|
||||||
data["status"]["currentUpdateSchedule"] = getCurrentInterval();
|
|
||||||
|
|
||||||
res.json(data);
|
|
||||||
});
|
|
||||||
|
|
||||||
VERSIONS.forEach((version) => {
|
VERSIONS.forEach((version) => {
|
||||||
app.get(`/versioned/${version}`, async (_: Request, res: Response) => {
|
app.get(`/versioned/${version}`, async (_: Request, res: Response) => {
|
||||||
try {
|
try {
|
||||||
@@ -128,10 +120,12 @@ app.post("/report", async (req: Request, res: Response): Promise<any> => {
|
|||||||
res.status(200).json({ message: "Report received successfully." });
|
res.status(200).json({ message: "Report received successfully." });
|
||||||
});
|
});
|
||||||
|
|
||||||
app.use(express.static(path.join(process.cwd(), 'web/public'), {
|
if (SERVE_WEB) {
|
||||||
|
app.use(express.static(path.join(process.cwd(), 'web/public'), {
|
||||||
index: 'index.html',
|
index: 'index.html',
|
||||||
extensions: ['html'],
|
extensions: ['html'],
|
||||||
}));
|
}));
|
||||||
|
}
|
||||||
|
|
||||||
app.listen(PORT, () => {
|
app.listen(PORT, () => {
|
||||||
console.log(`Server is running at http://localhost:${PORT}`);
|
console.log(`Server is running at http://localhost:${PORT}`);
|
||||||
|
|||||||
Reference in New Issue
Block a user