Nikolay Suslov 5 years ago
commit
610cba12d5
4 changed files with 126 additions and 0 deletions
  1. 6 0
      .gitignore
  2. 48 0
      index.js
  3. 50 0
      package-lock.json
  4. 22 0
      package.json

+ 6 - 0
.gitignore

@@ -0,0 +1,6 @@
+node_modules
+/npm-debug.log
+.vscode
+certs
+radata
+data.json

+ 48 - 0
index.js

@@ -0,0 +1,48 @@
+// built into node.
+var http = require('http'),
+    fs = require('fs'),
+    argv = require('optimist').argv,
+    https = require('https'),
+    Gun = require('gun')
+   // require('gun/lib/shim')
+   // require('gun/lib/path')
+   // require('gun/lib/bye')
+    require('gun/nts')
+
+
+// Create a new server instance.
+//var server = http.createServer();
+
+//var location = {host:"localhost"};
+//var gun = Gun( { file: 'read.json', peers: ['http://' + location.host + ':8080/gun'] });
+//gun.get( 'players' ).path('me4').put('from server',function(v){ console.log("put new value " + v ); } );
+//gun.get('players').get('me4').bye().put('offline');
+//gun.on('bye', function(peer){ console.log('disconnected from', peer) })
+
+
+var ssl = ( argv.s  || argv.ssl );
+var pass = ( ( argv.w) ? ( argv.w) : undefined );
+var sslOptions = {
+    key: ( ( argv.k || argv.key ) ? fs.readFileSync( argv.k || argv.key ) : undefined ),
+    cert: ( ( argv.c || argv.cert ) ? fs.readFileSync( argv.c || argv.cert ) : undefined ),
+    ca: ( ( argv.t || argv.ca ) ? fs.readFileSync( argv.t || argv.ca ) : undefined ),
+    passphrase: JSON.stringify(pass)
+};
+
+//create the server
+var port = ( ( argv.p || argv.port ) ? ( argv.p || argv.port ) : 8080 );
+
+var srv = ssl ? https.createServer( sslOptions): http.createServer();
+//console.log( 'Serving on port ' + port );
+
+// Our GUN setup from the last example.
+var gun = Gun({
+    //file: 'data.json',
+    //file: false,
+    web: srv
+});
+
+// Start the server on port 8080.
+srv.listen(port, function () {
+  console.log('Server listening on http://localhost:'+ port+ '/gun')
+})

+ 50 - 0
package-lock.json

@@ -0,0 +1,50 @@
+{
+  "name": "krestianstvo-db-server",
+  "version": "0.0.1",
+  "lockfileVersion": 1,
+  "requires": true,
+  "dependencies": {
+    "async-limiter": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz",
+      "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg=="
+    },
+    "gun": {
+      "version": "0.9.99993",
+      "resolved": "https://registry.npmjs.org/gun/-/gun-0.9.99993.tgz",
+      "integrity": "sha512-JYiuzUd2z3RCB8+xbNhidwhD6fUTm5T9qQSRoiqQPjhT6bw1sgccIJsjsUGvVpDbDBE1uKynEv/q8gK3z+Zttw==",
+      "requires": {
+        "ws": "~>5.2.0"
+      }
+    },
+    "optimist": {
+      "version": "0.6.1",
+      "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
+      "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
+      "requires": {
+        "minimist": "~0.0.1",
+        "wordwrap": "~0.0.2"
+      },
+      "dependencies": {
+        "minimist": {
+          "version": "0.0.10",
+          "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz",
+          "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8="
+        }
+      }
+    },
+    "wordwrap": {
+      "version": "0.0.3",
+      "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
+      "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc="
+    },
+    "ws": {
+      "version": "5.2.2",
+      "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz",
+      "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==",
+      "requires": {
+        "async-limiter": "~1.0.0"
+      }
+    }
+  }
+}

+ 22 - 0
package.json

@@ -0,0 +1,22 @@
+{
+  "name": "krestianstvo-db-server",
+  "version": "0.0.1",
+  "description": "",
+  "main": "index.js",
+  "scripts": {
+    "test": "echo \"Error: no test specified\" && exit 1",
+    "start": "node ./index.js",
+    "startSSL": "node ./index.js -p 8080 -s -k ./certs/server-key.pem -c ./certs/server-crt.pem -t ./certs/ca-crt.pem -w 12345"
+  },
+  "repository": {
+    "type": "git",
+    "url": "https://gitlab.space/sdk/db-server.git"
+  },
+  "keywords": [],
+  "author": "Nikolay Suslov",
+  "license": "MIT",
+  "dependencies": {
+    "gun": "^0.9.99993",
+    "optimist": "0.6.1"
+  }
+}