diff --git a/apps/fpga.js b/apps/fpga.js index 3511ecd..5fea07d 100644 --- a/apps/fpga.js +++ b/apps/fpga.js @@ -1,4 +1,4 @@ -module.exports = function(app, logger, db, fs) { +module.exports = function(app, logger, db, fs, io) { var p = require('child_process'); var fpga = require('.././build/Release/openfpgaduino'); var express = require('express'); diff --git a/config.json b/config.json index b78151e..9476ad3 100644 --- a/config.json +++ b/config.json @@ -10,6 +10,7 @@ "server": "INFO" }, "port" : "8080", + "sshport" : "8443", "telnet" : "8022", "app_path":"./apps/", "unittest_path":"./ut/", diff --git a/keys/.gitignore b/keys/.gitignore new file mode 100644 index 0000000..f7c9a7b --- /dev/null +++ b/keys/.gitignore @@ -0,0 +1,4 @@ +*~ +*.pem +*.srl + diff --git a/keys/cet.sh b/keys/cet.sh new file mode 100755 index 0000000..24974a0 --- /dev/null +++ b/keys/cet.sh @@ -0,0 +1,10 @@ +openssl genrsa -out ca-key.pem -des 1024 +openssl req -new -key ca-key.pem -out ca-csr.pem +openssl x509 -req -in ca-csr.pem -signkey ca-key.pem -out ca-cert.pem +openssl genrsa -out server-key.pem 1024 +openssl req -new -key server-key.pem -config openssl.cnf -out server-csr.pem +openssl x509 -req -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -in server-csr.pem -out server-cert.pem -extensions v3_req -extfile openssl.cnf +openssl genrsa -out client-key.pem +openssl req -new -key client-key.pem -out client-csr.pem +openssl x509 -req -CA ca-cert.pem -CAkey ca-key.pem -CAcreateserial -in client-csr.pem -out client-cert.pem + diff --git a/keys/openssl.cnf b/keys/openssl.cnf new file mode 100644 index 0000000..be3715e --- /dev/null +++ b/keys/openssl.cnf @@ -0,0 +1,25 @@ +[req] + distinguished_name = req_distinguished_name + req_extensions = v3_req + + [req_distinguished_name] + countryName = Country Name (2 letter code) + countryName_default = CN + stateOrProvinceName = State or Province Name (full name) + stateOrProvinceName_default = BeiJing + localityName = Locality Name (eg, city) + localityName_default = YaYunCun + organizationalUnitName = Organizational Unit Name (eg, section) + organizationalUnitName_default = Domain Control Validated + commonName = Internet Widgits Ltd + commonName_max = 64 + + [ v3_req ] + # Extensions to add to a certificate request + basicConstraints = CA:FALSE + keyUsage = nonRepudiation, digitalSignature, keyEncipherment + subjectAltName = @alt_names + + [alt_names] + #注意这个IP.1的设置,IP地址需要和你的服务器的监听地址一样 + IP.1 = 127.0.0.1 diff --git a/package.json b/package.json index dd85045..a3be224 100644 --- a/package.json +++ b/package.json @@ -16,46 +16,47 @@ "jslint" ], "dependencies": { + "assert": "*", "bluebird": "*", "optimist": "*", "express": "~4.0.0", "express-session": "*", "express-http-proxy": "*", "passport": ">= 0.0.0", - "socket.io": "*", + "socket.io": "1.7.4", "deasync": "*", "data.io": "*", "tingodb": "0.3.5", + "pouchdb": "3.1.0", "swagger-tools": "*", "body-parser": "*", - "log4js": "*", - "assert": "*", - "multer": "0.1.6", + "chai": "*", + "coap": "0.17.0", "collections": "*", + "cron": "*", + "deep-equal": "^1.0.1", "ffi": "*", - "shelljs": "*", "figlet": "*", - "mqtt": "^1.14.1", - "mocha": "*", - "node-uuid": "*", - "mosca": "1.1.0", - "chai": "*", - "request": "*", - "tcp-port-used": "*", - "tty.js": "*", - "cron": "*", - "diffsync": "*", + "gun": "0.7.0", + "helmet": "^3.6.0", "node-zookeeper-client": "*", "kafka-rest": "*", "localtunnel": "*", - "tingyun": "*", + "log4js": "1.1.1", "mathjs": "*", "microtime": "^2.1.2", - "coap": "0.17.0", - "helmet": "^3.6.0", + "mocha": "*", + "mosca": "1.1.0", + "mqtt": "^1.14.1", + "multer": "0.1.6", + "node-uuid": "*", "numeric": "*", "plotly": "0.2.13", - "deep-equal": "^1.0.1" + "request": "*", + "shelljs": "0.7.1", + "tcp-port-used": "*", + "tingyun": "*", + "tty.js": "*" }, "author": "Zhizhou Li", "license": "GPL", diff --git a/page/.gitignore b/page/.gitignore new file mode 100644 index 0000000..13dfadc --- /dev/null +++ b/page/.gitignore @@ -0,0 +1,4 @@ +blocklyide +bower_components +dl + diff --git a/page/index.html b/page/index.html index 1c30cf9..160356b 100644 --- a/page/index.html +++ b/page/index.html @@ -45,7 +45,12 @@ document.getElementById("url").innerHTML = json.url } - +

Hello openfpgaduino

cide @@ -59,6 +64,7 @@

Upload

Socketio

tunnel

+

deeplearning

- \ No newline at end of file + diff --git a/server.js b/server.js index 665ade8..0b31ea2 100644 --- a/server.js +++ b/server.js @@ -37,8 +37,10 @@ var loadDir = require('./loaddir'); var module = loadDir(config.app_path); var multer = require('multer'); var sockectio = require('socket.io'); -var diffsync = require('diffsync'); +//var PouchDB = require('pouchdb'); +//var pouchdb = new PouchDB('dbname'); var tingodb = require('tingodb')(); +//var Gun = require('gun'); var optimist = require('optimist'); var figlet = require('figlet'); var node_uuid = require('node-uuid'); @@ -50,6 +52,10 @@ var numeric = require('numeric'); var equal = require('deep-equal'); var KafkaRest = require('kafka-rest'); var kafka = new KafkaRest({ 'url': config.kafka }); +var https = require('https'); +var privateKey = fs.readFileSync('keys/server-key.pem', 'utf8'); +var certificate = fs.readFileSync('keys/server-cert.pem', 'utf8'); +var credentials = {key: privateKey, cert: certificate}; require('tingyun'); @@ -95,23 +101,24 @@ app.use(express.static(__dirname + '/page')); app.use(multer({ dest: './uploads/' })); +//app.use(Gun.serve).use(express.static(__dirname)); function parser_parameter(fun_str) { return fun_str.toString() .replace(/((\/\/.*$)|(\/\*[\s\S]*?\*\/)|(\s))/mg, '') // remove spaces and comments .match(/^function\s*[^\(]*\(\s*([^\)]*)\)/m)[1] // get parameter } - +var httpsServer = https.createServer(credentials, app); var port = argv.port || process.env.PORT || config.port; // set our port +var sshport = argv.sshport || process.env.SSHPORT || config.sshport; // set our port var server = http.createServer(app); var io = sockectio.listen(server); -var dataAdapter = new diffsync.InMemoryDataAdapter(); -var diffSyncServer = new diffsync.Server(dataAdapter, io); var data = require('data.io')(io); var messages = data.resource('messages'); var request = require('request').defaults({ baseUrl: "http://localhost:" + port + "/" }); +//Gun({file: 'gundata.json', web: server}); function loadmodule(module) { for (m in module) { // load all modules in apps @@ -155,7 +162,21 @@ function dynamicloadmodule(filename) { event.addListener('load', dynamicloadmodule); -//console.log(numeric.add([1,2],[3,4],[5,6],[7,8])) +// pouchdb.put({ +// _id: 'dave@gmail.com', +// name: 'David', +// age: 69 +// }); + +// pouchdb.changes().on('change', function() { +// logger.info('Ch-Ch-Changes'); +// }); + + +// pouchdb.replicate.to('http://example.com/mydb'); +// console.log(numeric.add([1,2],[3,4],[5,6],[7,8])) server.listen(port); +httpsServer.listen(sshport); logger.info("Restful API server run on port", port) +logger.info("Restful SSH API server run on port", sshport)