From d5c26d61986c063e19e63b085d0d8e093fabdc90 Mon Sep 17 00:00:00 2001 From: dergeorg Date: Tue, 1 Feb 2022 23:35:16 +0100 Subject: [PATCH] Docker: Dockerfile + .dockerignore + push to dockerhub: dergeorg/ntopngglobe --- Dockerfile | 16 +++++++++++++ README.md | 11 +++++++++ model/globedata.js | 42 +--------------------------------- package-lock.json | 29 +++++++++++++++++++++++- package.json | 3 ++- public/conf/settings.json | 47 +++++++++++++++++++++++++++++++++++++++ 6 files changed, 105 insertions(+), 43 deletions(-) create mode 100644 Dockerfile create mode 100644 public/conf/settings.json diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..18fe353 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,16 @@ +FROM node:16 +# Create app directory +WORKDIR /usr/src/app +# Install app dependencies +# A wildcard is used to ensure both package.json AND package-lock.json are copied +# where available (npm@5+) +COPY package*.json ./ + +RUN npm install +# If you are building your code for production +# RUN npm ci --only=production +# Bundle app source +COPY . . +EXPOSE 3100 +EXPOSE 8999 +CMD [ "npm", "start" ] \ No newline at end of file diff --git a/README.md b/README.md index 8494fef..42494c9 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,17 @@ npm install npm start ``` +### Docker +#### Run with config file +```sh +docker run -p 3100:3100 -p 8999:8999 --name ntopngglobe -v /PATH/TO/CONF/FOLDER:/usr/src/app/public/conf -d dergeorg/ntopngglobe +``` + +#### Run without config file (default config) +```sh +docker run -p 3100:3100 -p 8999:8999 --name ntopngglobe -d dergeorg/ntopngglobe +``` + ### Usage > :notebook: **Open in browser**: ```http://:3100``` diff --git a/model/globedata.js b/model/globedata.js index 7fc35bc..7f2e677 100644 --- a/model/globedata.js +++ b/model/globedata.js @@ -3,47 +3,7 @@ var data = { arc: [] } -var settings = { - location: { - home: { - lat: 48.1, - lng: 16.3 - }, - precision: 0 - }, - colors: { - loc: { - default: "green", - dualsender: "orange" - }, - arc: { - default: ["green", "red"], - dualsender: ["orange", "orange"] - } - }, - sizes: { - loc: { - default: 0.1 - }, - arc: { - default: 1.1 - }, - globe: { - arcDashLength: 0.4, - arcAltitudeAutoScale: 0.4, - arcDashGap: 0.1, - arcDashInitialGap: 0.1, - arcDashAnimateTime: 7000, - arcStroke: 0.5, - labelSize: 0, - labelDotRadius: 0.4, - labelResolution: 2 - } - }, - timer:{ - del: 30 - } -} +var settings = require('../public/conf/settings.json') var geoip = require('fast-geoip'); diff --git a/package-lock.json b/package-lock.json index dba734f..56aec22 100644 --- a/package-lock.json +++ b/package-lock.json @@ -17,7 +17,8 @@ "jade": "~1.11.0", "morgan": "~1.9.1", "node-cron": "^3.0.0", - "uuid": "^8.3.2" + "uuid": "^8.3.2", + "ws": "^8.4.2" } }, "node_modules/accepts": { @@ -1002,6 +1003,26 @@ "node": ">=0.4.0" } }, + "node_modules/ws": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.4.2.tgz", + "integrity": "sha512-Kbk4Nxyq7/ZWqr/tarI9yIt/+iNNFOjBXEWgTb4ydaNHBNGgvf2QHbS9fdfsndfjFlFwEd4Al+mw83YkaD10ZA==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, "node_modules/yargs": { "version": "3.10.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", @@ -1774,6 +1795,12 @@ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=" }, + "ws": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.4.2.tgz", + "integrity": "sha512-Kbk4Nxyq7/ZWqr/tarI9yIt/+iNNFOjBXEWgTb4ydaNHBNGgvf2QHbS9fdfsndfjFlFwEd4Al+mw83YkaD10ZA==", + "requires": {} + }, "yargs": { "version": "3.10.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", diff --git a/package.json b/package.json index df99e99..595fd47 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ "jade": "~1.11.0", "morgan": "~1.9.1", "node-cron": "^3.0.0", - "uuid": "^8.3.2" + "uuid": "^8.3.2", + "ws": "^8.4.2" } } diff --git a/public/conf/settings.json b/public/conf/settings.json new file mode 100644 index 0000000..1e32b17 --- /dev/null +++ b/public/conf/settings.json @@ -0,0 +1,47 @@ +{ + "location": { + "home": { + "lat": 48.1, + "lng": 16.3 + }, + "precision": 0 + }, + "colors": { + "loc": { + "default": "green", + "dualsender": "orange" + }, + "arc": { + "default": [ + "green", + "red" + ], + "dualsender": [ + "orange", + "orange" + ] + } + }, + "sizes": { + "loc": { + "default": 0.1 + }, + "arc": { + "default": 1.1 + }, + "globe": { + "arcDashLength": 0.4, + "arcAltitudeAutoScale": 0.4, + "arcDashGap": 0.1, + "arcDashInitialGap": 0.1, + "arcDashAnimateTime": 7000, + "arcStroke": 0.5, + "labelSize": 0, + "labelDotRadius": 0.4, + "labelResolution": 2 + } + }, + "timer": { + "del": 30 + } +} \ No newline at end of file