diff --git a/Dockerfile b/Dockerfile index 884453382..4eeb450cf 100644 --- a/Dockerfile +++ b/Dockerfile @@ -14,7 +14,6 @@ RUN mkdir -p /var/www/stremio-web WORKDIR /var/www/stremio-web COPY . /var/www/stremio-web RUN npm install -RUN npm install -g http-server # Bundle app source WORKDIR /var/www/stremio-web @@ -22,4 +21,4 @@ WORKDIR /var/www/stremio-web RUN npm run build EXPOSE 8080 -CMD ["http-server", "/var/www/stremio-web/build/", "-p", "8080", "-d", "false"] +CMD ["node", "http_server.js"] diff --git a/http_server.js b/http_server.js new file mode 100755 index 000000000..56cdbac10 --- /dev/null +++ b/http_server.js @@ -0,0 +1,23 @@ +#!/usr/bin/env node + +// Copyright (C) 2017-2023 Smart code 203358507 + +const INDEX_CACHE = 7200; +const ASSETS_CACHE = 2629744; +const HTTP_PORT = 8080; + +const express = require('express'); +const path = require('path'); + +const build_path = path.resolve(__dirname, 'build'); +const index_path = path.join(build_path, 'index.html'); + +express().use(express.static(build_path, { + setHeaders: (res, path) => { + if (path === index_path) res.set('cache-control', `public, max-age: ${INDEX_CACHE}`); + else res.set('cache-control', `public, max-age: ${ASSETS_CACHE}`); + } +})).all('*', (_req, res) => { + // TODO: better 404 page + res.status(404).send('

404! Page not found

'); +}).listen(HTTP_PORT, () => console.info(`Server listening on port: ${HTTP_PORT}`));