Recommit everything because of credentials
This commit is contained in:
commit
11fb50a2f1
11 changed files with 267 additions and 0 deletions
24
.gitignore
vendored
Normal file
24
.gitignore
vendored
Normal file
|
|
@ -0,0 +1,24 @@
|
||||||
|
lib-cov
|
||||||
|
*.seed
|
||||||
|
*.log
|
||||||
|
*.csv
|
||||||
|
*.dat
|
||||||
|
*.out
|
||||||
|
*.pid
|
||||||
|
*.gz
|
||||||
|
|
||||||
|
pids
|
||||||
|
logs
|
||||||
|
results
|
||||||
|
node_modules
|
||||||
|
npm-debug.log
|
||||||
|
mochahelper.js
|
||||||
|
|
||||||
|
.idea/
|
||||||
|
.settings/
|
||||||
|
|
||||||
|
dist
|
||||||
|
.tmp
|
||||||
|
.sass-cache
|
||||||
|
app/bower_components
|
||||||
|
options.mine.js
|
||||||
35
.jshintrc
Normal file
35
.jshintrc
Normal file
|
|
@ -0,0 +1,35 @@
|
||||||
|
{
|
||||||
|
"white": false,
|
||||||
|
"node": true,
|
||||||
|
"browser": true,
|
||||||
|
"esnext": true,
|
||||||
|
"bitwise": true,
|
||||||
|
"camelcase": true,
|
||||||
|
"curly": true,
|
||||||
|
"eqeqeq": true,
|
||||||
|
"immed": true,
|
||||||
|
"indent": 2,
|
||||||
|
"latedef": true,
|
||||||
|
"newcap": true,
|
||||||
|
"noarg": true,
|
||||||
|
"quotmark": "single",
|
||||||
|
"regexp": true,
|
||||||
|
"undef": true,
|
||||||
|
"unused": true,
|
||||||
|
"strict": true,
|
||||||
|
"trailing": true,
|
||||||
|
"smarttabs": true,
|
||||||
|
"globals": {
|
||||||
|
"angular": true,
|
||||||
|
"document": true,
|
||||||
|
"nf": true,
|
||||||
|
"$":true,
|
||||||
|
"_":true,
|
||||||
|
"Highcharts": true,
|
||||||
|
"timeseries": true,
|
||||||
|
"describe": true,
|
||||||
|
"beforeEach": true,
|
||||||
|
"afterEach": true,
|
||||||
|
"it": true
|
||||||
|
}
|
||||||
|
}
|
||||||
1
Procfile
Normal file
1
Procfile
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
web: node lib/app.js
|
||||||
38
README.md
Normal file
38
README.md
Normal file
|
|
@ -0,0 +1,38 @@
|
||||||
|
# lamassu-server
|
||||||
|
|
||||||
|
Lamassu remote server.
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
```sh
|
||||||
|
git clone git@github.com:lamassu/lamassu-server.git
|
||||||
|
cd lamassu-server
|
||||||
|
npm install
|
||||||
|
```
|
||||||
|
|
||||||
|
If you're working on this stack, you probably want to `npm link`
|
||||||
|
[`lamassu-atm-protocol`](https://github.com/lamassu/lamassu-atm-protocol).
|
||||||
|
|
||||||
|
```sh
|
||||||
|
git clone git@github.com:lamassu/lamassu-atm-protocol.git
|
||||||
|
cd lamassu-atm-protocol
|
||||||
|
npm install
|
||||||
|
npm link
|
||||||
|
```
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# Back in lamassu-server
|
||||||
|
npm link lamassu-atm-protocol
|
||||||
|
```
|
||||||
|
|
||||||
|
## Running
|
||||||
|
```sh
|
||||||
|
node lib/app.js --https
|
||||||
|
```
|
||||||
|
|
||||||
|
The https flag is required for local testing. When deployed to a PAAS environment - such as heroku, the https flag is not required,
|
||||||
|
as the SSL connection typically terminates on the load balancer and the application will see http only.
|
||||||
|
|
||||||
|
## Deployment
|
||||||
|
Deployment of this application is described in
|
||||||
|
[`lamassu-admin`](https://github.com/lamassu/lamassu-admin) documentation.
|
||||||
6
config/postgres.json
Normal file
6
config/postgres.json
Normal file
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"user": "lamassu",
|
||||||
|
"pwd": "lamassu",
|
||||||
|
"host": "localhost",
|
||||||
|
"db": "lamassu"
|
||||||
|
}
|
||||||
15
deploy.sh
Executable file
15
deploy.sh
Executable file
|
|
@ -0,0 +1,15 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
git remote | grep heroku
|
||||||
|
if [ $? -ne 0 ]; then
|
||||||
|
echo "Creating Heroku application..."
|
||||||
|
heroku apps:create
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -n "$DATABASE_URL" ]; then
|
||||||
|
echo "Setting DATABASE_URL..."
|
||||||
|
heroku config:set DATABASE_URL="$DATABASE_URL"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Deploying..."
|
||||||
|
git push heroku master
|
||||||
69
lib/app.js
Normal file
69
lib/app.js
Normal file
|
|
@ -0,0 +1,69 @@
|
||||||
|
/*jshint globalstrict: true, white: false, unused:false */
|
||||||
|
/*globals require, exports, console, module, process */
|
||||||
|
/*
|
||||||
|
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
|
||||||
|
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
|
||||||
|
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
* DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
|
||||||
|
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||||
|
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
|
||||||
|
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
|
||||||
|
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
'use strict';
|
||||||
|
|
||||||
|
var path = require('path');
|
||||||
|
var express = require('express');
|
||||||
|
var argv = require('optimist').argv;
|
||||||
|
var app = express();
|
||||||
|
var fs = require('fs');
|
||||||
|
var argv = require('optimist').argv;
|
||||||
|
var LamassuConfig = require('lamassu-config');
|
||||||
|
var atm = require('lamassu-atm-protocol');
|
||||||
|
var format = require('util').format;
|
||||||
|
|
||||||
|
var conString, dbConfig, config;
|
||||||
|
|
||||||
|
if (process.env.DATABASE_URL) {
|
||||||
|
conString = process.env.DATABASE_URL;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
dbConfig = require('../config/postgres.json');
|
||||||
|
conString = format('postgres://%s:%s@%s/%s', dbConfig.user, dbConfig.pwd, dbConfig.host, dbConfig.db);
|
||||||
|
}
|
||||||
|
|
||||||
|
config = new LamassuConfig(conString);
|
||||||
|
|
||||||
|
var port = process.env.PORT || 3000;
|
||||||
|
app.use(express.logger());
|
||||||
|
app.use(express.favicon());
|
||||||
|
app.use(express.bodyParser());
|
||||||
|
app.use(express.methodOverride());
|
||||||
|
app.use(express.cookieParser('your secret here'));
|
||||||
|
app.use(express.session());
|
||||||
|
|
||||||
|
config.load(function(err, conf) {
|
||||||
|
if (err) { console.log(err); process.exit(1); }
|
||||||
|
atm.init(app, conf.config);
|
||||||
|
|
||||||
|
if (argv.https) {
|
||||||
|
var https = require('https');
|
||||||
|
var testkeys = path.join(__dirname, '..', 'testkeys');
|
||||||
|
var privateKey = fs.readFileSync(path.join(testkeys, 'privatekey.pem'));
|
||||||
|
var certificate = fs.readFileSync(path.join(testkeys, 'certificate.pem'));
|
||||||
|
var credentials = {key: privateKey, cert: certificate};
|
||||||
|
https.createServer(credentials, app).listen(port, function () {
|
||||||
|
console.log('Express server listening on port ' + port + ' (https)');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
var http = require('http');
|
||||||
|
http.createServer(app).listen(port, function () {
|
||||||
|
console.log('Express server listening on port ' + port + ' (http)');
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
34
package.json
Normal file
34
package.json
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
{
|
||||||
|
"name": "lamassu-server",
|
||||||
|
"description": "bitcoin atm client server protocol module",
|
||||||
|
"keywords": [],
|
||||||
|
"version": "0.0.1",
|
||||||
|
"license": "MIT",
|
||||||
|
"author": "Peter Elger (http://nearform.com/)",
|
||||||
|
"contributors": [
|
||||||
|
"Peter Elger <elger.peter@gmail.com> (http://peterelger.com/)"
|
||||||
|
],
|
||||||
|
"engines": {
|
||||||
|
"node": "0.10.x"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"express": "~3.4.7",
|
||||||
|
"optimist": "~0.6.0",
|
||||||
|
"lamassu-config": "~0.1.1",
|
||||||
|
"lamassu-atm-protocol": "git+https://github.com/lamassu/lamassu-atm-protocol.git"
|
||||||
|
},
|
||||||
|
"repository": {
|
||||||
|
"type": "git",
|
||||||
|
"url": "https://github.com/lamassu/lamassu-server.git"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"grunt": "~0.4.1",
|
||||||
|
"grunt-contrib-jshint": "~0.6.0",
|
||||||
|
"load-grunt-tasks": "~0.1.0",
|
||||||
|
"chai": "~1.8.1",
|
||||||
|
"matchdep": "~0.3.0",
|
||||||
|
"mocha": "~1.13.0",
|
||||||
|
"grunt-mocha-test": "~0.7.0",
|
||||||
|
"grunt-mocha-cov": "0.0.7"
|
||||||
|
}
|
||||||
|
}
|
||||||
17
testkeys/certificate.pem
Normal file
17
testkeys/certificate.pem
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIICozCCAgwCCQCSX2bhri8GETANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UEBhMC
|
||||||
|
SUUxEjAQBgNVBAgTCVdhdGVyZm9yZDESMBAGA1UEBxMJV2F0ZXJmb3JkMREwDwYD
|
||||||
|
VQQKEwhuZWFyRm9ybTEMMAoGA1UECxMDZGV2MRQwEgYDVQQDEwtQZXRlciBFbGdl
|
||||||
|
cjEnMCUGCSqGSIb3DQEJARYYcGV0ZXIuZWxnZXJAbmVhcmZvcm0uY29tMB4XDTE0
|
||||||
|
MDEyMDExMjc1NloXDTE0MDIxOTExMjc1NlowgZUxCzAJBgNVBAYTAklFMRIwEAYD
|
||||||
|
VQQIEwlXYXRlcmZvcmQxEjAQBgNVBAcTCVdhdGVyZm9yZDERMA8GA1UEChMIbmVh
|
||||||
|
ckZvcm0xDDAKBgNVBAsTA2RldjEUMBIGA1UEAxMLUGV0ZXIgRWxnZXIxJzAlBgkq
|
||||||
|
hkiG9w0BCQEWGHBldGVyLmVsZ2VyQG5lYXJmb3JtLmNvbTCBnzANBgkqhkiG9w0B
|
||||||
|
AQEFAAOBjQAwgYkCgYEAtZBpc6ZpF3rVSOq0D2zD2PMgR4hBzka0tD7coEDRWgjH
|
||||||
|
CFCtwtB97yuV3zq6V0zcApogXIIM6NQm6vcSAna9hqEiQCJV18GEAylC7Z/AW7HP
|
||||||
|
L63kYTMAXhdoztLFrkczUbtHwCB6wyUehszSzWaozpS9+ESpf/bPxMJjfhuqOvcC
|
||||||
|
AwEAATANBgkqhkiG9w0BAQUFAAOBgQCF3oZsXXC4QIm5Say8AVPYlhyb0liUSmr8
|
||||||
|
owvESnPFy2PYFHMwzLCE4wnVsXcRq4gK0rXiiuBQsNEw/v93RfLWV4DLAlf9DoB2
|
||||||
|
sO3LA/LSj4ptjZ4Dki5NKfTK9b6QJoQkc/u68hEEOe/WYZPIxdaeki4aVCcnrv1v
|
||||||
|
zJ9YTluP7w==
|
||||||
|
-----END CERTIFICATE-----
|
||||||
13
testkeys/certrequest.csr
Normal file
13
testkeys/certrequest.csr
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
-----BEGIN CERTIFICATE REQUEST-----
|
||||||
|
MIICBDCCAW0CAQAwgZUxCzAJBgNVBAYTAklFMRIwEAYDVQQIEwlXYXRlcmZvcmQx
|
||||||
|
EjAQBgNVBAcTCVdhdGVyZm9yZDERMA8GA1UEChMIbmVhckZvcm0xDDAKBgNVBAsT
|
||||||
|
A2RldjEUMBIGA1UEAxMLUGV0ZXIgRWxnZXIxJzAlBgkqhkiG9w0BCQEWGHBldGVy
|
||||||
|
LmVsZ2VyQG5lYXJmb3JtLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA
|
||||||
|
tZBpc6ZpF3rVSOq0D2zD2PMgR4hBzka0tD7coEDRWgjHCFCtwtB97yuV3zq6V0zc
|
||||||
|
ApogXIIM6NQm6vcSAna9hqEiQCJV18GEAylC7Z/AW7HPL63kYTMAXhdoztLFrkcz
|
||||||
|
UbtHwCB6wyUehszSzWaozpS9+ESpf/bPxMJjfhuqOvcCAwEAAaAuMBMGCSqGSIb3
|
||||||
|
DQEJBzEGEwRhc2RmMBcGCSqGSIb3DQEJAjEKEwhuZWFyRm9ybTANBgkqhkiG9w0B
|
||||||
|
AQUFAAOBgQC0+vxHKcdpeiUYYXJjUVHUC9xSR19l+8F7FNtehXyGNoxmpMwmEVkM
|
||||||
|
J1TUokG/HgBoh9vy8TxleHldDdA+9jjWfaPHk8LaRIkNguJ9IMvv3yctjcCD39lJ
|
||||||
|
Yb1mQWOYaDOsgsEqiN/U2K6yUneYGGKIndA/PrEmd1aBMOTQ7R9Tvg==
|
||||||
|
-----END CERTIFICATE REQUEST-----
|
||||||
15
testkeys/privatekey.pem
Normal file
15
testkeys/privatekey.pem
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
-----BEGIN RSA PRIVATE KEY-----
|
||||||
|
MIICXAIBAAKBgQC1kGlzpmkXetVI6rQPbMPY8yBHiEHORrS0PtygQNFaCMcIUK3C
|
||||||
|
0H3vK5XfOrpXTNwCmiBcggzo1Cbq9xICdr2GoSJAIlXXwYQDKULtn8Bbsc8vreRh
|
||||||
|
MwBeF2jO0sWuRzNRu0fAIHrDJR6GzNLNZqjOlL34RKl/9s/EwmN+G6o69wIDAQAB
|
||||||
|
AoGAS35aen3tIJgwavs8F1XQMTsWZuffBNgddvzUW8XXxqnzqB9zwJdUZcgnrwQK
|
||||||
|
SxZoPKS9Y/mnSIA+FmDZGjEpKEeLrFePYz9UHpSW3j3vmLwWNTyAFl/DjqyrCIpE
|
||||||
|
+qB309t9NYEdd7LTeJyfIfideyEDAZUaQ2VsVDQDypYeoUECQQDrNstTpkv24MLA
|
||||||
|
4rFiXSSiC5IT86QuXbmXeHNTdChhqFS8C5LVKqt4Prpq4QvwQksiHJkipp5zvy2V
|
||||||
|
zfvfVTNnAkEAxZvnnYR5XyIPMVRQtlV0iskbvnQovJ4l3B7UfHeP9DZ9uhAR4MUo
|
||||||
|
ttJGjDjUMo78w381KEAqePpKn+RhF70R8QJADqwEUtt0sZmjjFSXrAMTXehK3GO+
|
||||||
|
QgYmpYQl7Xa5bh4J6xDtv85Bk+aVykTvcbUw6pfOFZM/Hwk11rpak7vE0QJAEFGD
|
||||||
|
mvppm3WQk55G3AfKi/t3kw68nnbg4YCaQ30MIjqtv0O8djdR2Wcb9FBtFY/BR9Ol
|
||||||
|
bCGAYGUq7HFLo041wQJBAL2x2OvwnYYtXXOBY27tox3B1hDye7jRI5Q/IvcRB7YE
|
||||||
|
00q8L0XVaV4lmyd7tfFDQq/bfDUgTuwvkSPnQcpJDDw=
|
||||||
|
-----END RSA PRIVATE KEY-----
|
||||||
Loading…
Add table
Add a link
Reference in a new issue