diff --git a/Dockerfile b/Dockerfile index cb4d930..b90751b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -4,7 +4,7 @@ RUN mkdir -p /app && mkdir -p /app/public COPY *.js* /app/ -RUN cd /app && npm install +RUN cd /app && npm ci EXPOSE 8080 diff --git a/README.rst b/README.rst index 7b43883..8cf4f2c 100644 --- a/README.rst +++ b/README.rst @@ -13,7 +13,7 @@ Usage You can expose a local directory which you want to have served via the `mini-webserver` by starting it with -`docker run --name node-web -p 8080:8080 -v /path/to/local/folder:/app/public:ro -d netresearch/node-webserver` +`docker run --name node-web -p 8080:8080 -v $PWD/test:/app/public:ro -d netresearch/node-webserver` In this example, the port on the docker host where the `node-webserver` is reachable is `8080`. diff --git a/package-lock.json b/package-lock.json index b9c9bb0..4074514 100644 --- a/package-lock.json +++ b/package-lock.json @@ -71,6 +71,15 @@ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" }, + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", + "requires": { + "object-assign": "^4", + "vary": "^1" + } + }, "debug": { "version": "2.6.9", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", @@ -255,6 +264,11 @@ "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==" }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, "on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", diff --git a/package.json b/package.json index 24f3c27..2269b49 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,7 @@ }, "homepage": "https://hub.docker.com/r/netresearch/node-webserver", "dependencies": { + "cors": "^2.8.5", "express": "^4.17.1", "morgan": "^1.9.1" } diff --git a/server.js b/server.js index c5da422..e45fa96 100644 --- a/server.js +++ b/server.js @@ -1,19 +1,33 @@ const express = require('express'), app = express(), - morgan = require('morgan'), - customize = require('./customize'); + cors = require('cors'), + customize = require('./customize'), + morgan = require('morgan') -customize(app); +customize(app) -app.use(morgan('combined')); -app.use(express.static(__dirname + '/public')); +// Request logger +app.use(morgan('combined')) +// CORS cross origin request policy +app.use(cors({ + origin: process.env.CORS || 'https://*.autopilothq.com' +})) +if (process.env.CORS) { + console.info('CORS is set') +} + +// Static files +app.use(express.static(__dirname + '/public')) + +// Test webserver app.get('/status', function (req, res) { - res.send('Hello from the Node Webserver!'); + res.send('Hello from the Node Webserver!') }); +// Page not found app.use(function (req, res, next) { - res.status(404).end(); + res.status(404).end() }); -app.listen(process.env.PORT || 8080, '0.0.0.0'); +app.listen(process.env.PORT || 8080, '0.0.0.0') diff --git a/tests/index.html b/tests/index.html new file mode 100644 index 0000000..554c9d8 --- /dev/null +++ b/tests/index.html @@ -0,0 +1,12 @@ + + + + + + + It works + + +

It works!

+ + \ No newline at end of file