Browse Source

Merge branch 'slim' into docker-workflow-build

docker-workflow-build
Gonzalo Javier Aune 4 years ago
parent
commit
1a6837b59b
  1. 8
      app.ts
  2. 8
      dist/app.js
  3. 2
      dist/app.js.map
  4. BIN
      dist/public/favicon.ico
  5. 89
      dist/public/index.html
  6. 6
      dist/public/js/qrious.js
  7. BIN
      dist/public/sphinx-logo.png
  8. 1
      dist/src/utils/config.js
  9. 2
      dist/src/utils/config.js.map
  10. 63
      dist/src/utils/connect.js
  11. 1
      dist/src/utils/connect.js.map
  12. 31
      dist/src/utils/setup.js
  13. 2
      dist/src/utils/setup.js.map
  14. BIN
      public/favicon.ico
  15. 89
      public/index.html
  16. 6
      public/js/qrious.js
  17. BIN
      public/sphinx-logo.png
  18. 1
      src/utils/config.ts
  19. 44
      src/utils/connect.ts
  20. 31
      src/utils/setup.ts

8
app.ts

@ -7,6 +7,7 @@ import logger from './src/utils/logger'
import { pingHubInterval, checkInvitesHubInterval } from './src/hub'
import { setupDatabase, setupDone } from './src/utils/setup'
import * as controllers from './src/controllers'
import * as connect from './src/utils/connect'
import * as socket from './src/utils/socket'
import * as network from './src/network'
import { authModule, unlocker } from './src/auth'
@ -67,6 +68,9 @@ function setupApp() {
}
app.use('/static', express.static('public'));
app.get('/app', (req, res) => res.send('INDEX'))
if (config.connect_ui) {
app.get('/connect', connect.connect)
}
let server;
if ('ssl' in config && config.ssl.enabled) {
@ -92,7 +96,7 @@ function setupApp() {
if (!config.unlock) {
controllers.set(app);
socket.connect(server)
resolve()
resolve(true)
} else {
app.post('/unlock', async function (req, res) {
const ok = await unlocker(req, res)
@ -100,7 +104,7 @@ function setupApp() {
console.log('=> relay unlocked!')
controllers.set(app);
socket.connect(server)
resolve()
resolve(true)
}
})
}

8
dist/app.js

@ -18,6 +18,7 @@ const logger_1 = require("./src/utils/logger");
const hub_1 = require("./src/hub");
const setup_1 = require("./src/utils/setup");
const controllers = require("./src/controllers");
const connect = require("./src/utils/connect");
const socket = require("./src/utils/socket");
const network = require("./src/network");
const auth_1 = require("./src/auth");
@ -76,6 +77,9 @@ function setupApp() {
}
app.use('/static', express.static('public'));
app.get('/app', (req, res) => res.send('INDEX'));
if (config.connect_ui) {
app.get('/connect', connect.connect);
}
let server;
if ('ssl' in config && config.ssl.enabled) {
try {
@ -102,7 +106,7 @@ function setupApp() {
if (!config.unlock) {
controllers.set(app);
socket.connect(server);
resolve();
resolve(true);
}
else {
app.post('/unlock', function (req, res) {
@ -112,7 +116,7 @@ function setupApp() {
console.log('=> relay unlocked!');
controllers.set(app);
socket.connect(server);
resolve();
resolve(true);
}
});
});

2
dist/app.js.map

@ -1 +1 @@
{"version":3,"file":"app.js","sourceRoot":"","sources":["../app.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"app.js","sourceRoot":"","sources":["../app.ts"],"names":[],"mappings":"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"}

BIN
dist/public/favicon.ico

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

89
dist/public/index.html

@ -0,0 +1,89 @@
<!DOCTYPE html>
<html>
<head>
<style>
html {
font-family: Arial, Helvetica, sans-serif;
}
body {
background: #292a2d;
display: flex;
flex-direction: column;
align-items: center;
}
.qr-wrap {
background: white;
width: 300px;
height: 300px;
border-radius: 5px;
display: flex;
align-items: center;
justify-content: center;
margin-top: 20px;
}
canvas {
height: 280px;
width: 280px;
}
pre {
margin-top: 20px;
border-radius: 10px;
max-width: 250px;
padding: 0px 25px;
border: 1px solid tan;
background: white;
overflow: hidden;
overflow-wrap: break-word;
display: block;
white-space: pre-wrap;
}
img {
height: 100px;
width: 100px;
margin-top: 20px;
}
p {
color: white;
margin-top: 30px;
max-width: 300px;
text-align: center;
}
</style>
</head>
<body>
<img src="/static/sphinx-logo.png" alt="logo" />
<div class="qr-wrap">
<canvas id="qr"></canvas>
</div>
<p>
Scan the QR or copy the connection string into your Sphinx app
</p>
<pre>
CONNECTION_STRING
</pre>
<script src="/static/js/qrious.js"></script>
<script>
(function () {
var qr = new QRious({
element: document.getElementById('qr'),
value: 'CONNECTION_STRING',
size: 300
});
})();
</script>
</body>
</html>

6
dist/public/js/qrious.js

File diff suppressed because one or more lines are too long

BIN
dist/public/sphinx-logo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

1
dist/src/utils/config.js

@ -32,6 +32,7 @@ function loadConfig() {
log_file: ENV.LOG_FILE || config.log_file,
unlock: (ENV.unlock || config.unlock) ? true : false,
lnd_pwd_path: ENV.LND_PWD_PATH || config.lnd_pwd_path,
connect_ui: ENV.CONNECT_UI || config.connect_ui,
};
}
exports.loadConfig = loadConfig;

2
dist/src/utils/config.js.map

@ -1 +1 @@
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/utils/config.ts"],"names":[],"mappings":";;AAAA,6BAA4B;AAE5B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,aAAa,CAAC;AAClD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,uBAAuB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;AAC1E,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAA;AAEvB,SAAgB,UAAU;IACxB,OAAO;QACL,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS;QAC5C,iBAAiB,EAAE,GAAG,CAAC,iBAAiB,IAAI,MAAM,CAAC,iBAAiB;QACpE,YAAY,EAAE,GAAG,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY;QACrD,gBAAgB,EAAE,GAAG,CAAC,gBAAgB,IAAI,MAAM,CAAC,gBAAgB;QACjE,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO;QACtC,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM;QACnC,kBAAkB,EAAE,GAAG,CAAC,kBAAkB,IAAI,MAAM,CAAC,kBAAkB;QACvE,cAAc,EAAE,GAAG,CAAC,cAAc,IAAI,MAAM,CAAC,cAAc;QAC3D,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ;QACzC,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW;QAClD,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO;QACtC,cAAc,EAAE,GAAG,CAAC,cAAc,IAAI,MAAM,CAAC,cAAc;QAC3D,oBAAoB,EAAE,GAAG,CAAC,oBAAoB,IAAI,MAAM,CAAC,oBAAoB;QAC7E,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU;QAC/C,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW;QAClD,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU;QAC/C,GAAG,EAAE;YACH,OAAO,EAAE,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;YAC/E,IAAI,EAAE,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;YACtE,IAAI,EAAE,GAAG,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;SACtD;QACD,uBAAuB,EAAE,GAAG,CAAC,uBAAuB,IAAI,MAAM,CAAC,uBAAuB;QACtF,sBAAsB,EAAE,GAAG,CAAC,sBAAsB,IAAI,MAAM,CAAC,sBAAsB;QACnF,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ;QACzC,MAAM,EAAE,CAAC,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;QACpD,YAAY,EAAE,GAAG,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY;KACtD,CAAA;AACH,CAAC;AA7BD,gCA6BC"}
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/utils/config.ts"],"names":[],"mappings":";;AAAA,6BAA4B;AAE5B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,aAAa,CAAC;AAClD,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,uBAAuB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;AAC1E,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAA;AAEvB,SAAgB,UAAU;IACxB,OAAO;QACL,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS;QAC5C,iBAAiB,EAAE,GAAG,CAAC,iBAAiB,IAAI,MAAM,CAAC,iBAAiB;QACpE,YAAY,EAAE,GAAG,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY;QACrD,gBAAgB,EAAE,GAAG,CAAC,gBAAgB,IAAI,MAAM,CAAC,gBAAgB;QACjE,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO;QACtC,MAAM,EAAE,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM;QACnC,kBAAkB,EAAE,GAAG,CAAC,kBAAkB,IAAI,MAAM,CAAC,kBAAkB;QACvE,cAAc,EAAE,GAAG,CAAC,cAAc,IAAI,MAAM,CAAC,cAAc;QAC3D,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ;QACzC,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW;QAClD,OAAO,EAAE,GAAG,CAAC,OAAO,IAAI,MAAM,CAAC,OAAO;QACtC,cAAc,EAAE,GAAG,CAAC,cAAc,IAAI,MAAM,CAAC,cAAc;QAC3D,oBAAoB,EAAE,GAAG,CAAC,oBAAoB,IAAI,MAAM,CAAC,oBAAoB;QAC7E,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU;QAC/C,WAAW,EAAE,GAAG,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW;QAClD,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU;QAC/C,GAAG,EAAE;YACH,OAAO,EAAE,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;YAC/E,IAAI,EAAE,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;YACtE,IAAI,EAAE,GAAG,CAAC,QAAQ,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC;SACtD;QACD,uBAAuB,EAAE,GAAG,CAAC,uBAAuB,IAAI,MAAM,CAAC,uBAAuB;QACtF,sBAAsB,EAAE,GAAG,CAAC,sBAAsB,IAAI,MAAM,CAAC,sBAAsB;QACnF,QAAQ,EAAE,GAAG,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ;QACzC,MAAM,EAAE,CAAC,GAAG,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK;QACpD,YAAY,EAAE,GAAG,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY;QACrD,UAAU,EAAE,GAAG,CAAC,UAAU,IAAI,MAAM,CAAC,UAAU;KAChD,CAAA;AACH,CAAC;AA9BD,gCA8BC"}

63
dist/src/utils/connect.js

@ -0,0 +1,63 @@
"use strict";
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
const publicIp = require("public-ip");
const password_1 = require("../utils/password");
const config_1 = require("./config");
const fs = require('fs');
const config = config_1.loadConfig();
function getQR() {
return __awaiter(this, void 0, void 0, function* () {
let theIP;
const public_url = config.public_url;
if (public_url)
theIP = public_url;
if (!theIP) {
const ip = process.env.NODE_IP;
if (!ip) {
try {
theIP = yield publicIp.v4();
}
catch (e) { }
}
else {
const port = config.node_http_port;
theIP = port ? `${ip}:${port}` : ip;
}
}
return Buffer.from(`ip::${theIP}::${password_1.default || ''}`).toString('base64');
});
}
exports.getQR = getQR;
function connect(req, res) {
return __awaiter(this, void 0, void 0, function* () {
fs.readFile("public/index.html", function (error, pgResp) {
return __awaiter(this, void 0, void 0, function* () {
if (error) {
res.writeHead(404);
res.write('Contents you are looking are Not Found');
}
else {
console.log(pgResp, typeof pgResp);
const htmlString = Buffer.from(pgResp).toString();
const qr = yield getQR();
const rep = htmlString.replace(/CONNECTION_STRING/g, qr);
const final = Buffer.from(rep, 'utf8');
res.writeHead(200, { 'Content-Type': 'text/html' });
res.write(final);
}
res.end();
});
});
});
}
exports.connect = connect;
//# sourceMappingURL=connect.js.map

1
dist/src/utils/connect.js.map

@ -0,0 +1 @@
{"version":3,"file":"connect.js","sourceRoot":"","sources":["../../../src/utils/connect.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,sCAAqC;AACrC,gDAAwC;AACxC,qCAAmC;AACnC,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;AAExB,MAAM,MAAM,GAAG,mBAAU,EAAE,CAAA;AAE3B,SAAsB,KAAK;;QACzB,IAAI,KAAK,CAAA;QAET,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAA;QACpC,IAAI,UAAU;YAAE,KAAK,GAAG,UAAU,CAAA;QAElC,IAAI,CAAC,KAAK,EAAE;YACV,MAAM,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAA;YAC9B,IAAI,CAAC,EAAE,EAAE;gBACP,IAAI;oBACF,KAAK,GAAG,MAAM,QAAQ,CAAC,EAAE,EAAE,CAAA;iBAC5B;gBAAC,OAAO,CAAC,EAAE,GAAG;aAChB;iBAAM;gBACL,MAAM,IAAI,GAAG,MAAM,CAAC,cAAc,CAAA;gBAClC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;aACpC;SACF;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,KAAK,KAAK,kBAAQ,IAAI,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAC1E,CAAC;CAAA;AAlBD,sBAkBC;AAED,SAAsB,OAAO,CAAC,GAAG,EAAE,GAAG;;QACpC,EAAE,CAAC,QAAQ,CAAC,mBAAmB,EAAE,UAAgB,KAAK,EAAE,MAAM;;gBAC5D,IAAI,KAAK,EAAE;oBACT,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;oBACnB,GAAG,CAAC,KAAK,CAAC,wCAAwC,CAAC,CAAC;iBACrD;qBAAM;oBACL,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,MAAM,CAAC,CAAA;oBAClC,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,CAAA;oBACjD,MAAM,EAAE,GAAG,MAAM,KAAK,EAAE,CAAA;oBACxB,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAA;oBACxD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;oBACtC,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,WAAW,EAAE,CAAC,CAAC;oBACpD,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;iBAClB;gBACD,GAAG,CAAC,GAAG,EAAE,CAAC;YACZ,CAAC;SAAA,CAAC,CAAC;IACL,CAAC;CAAA;AAhBD,0BAgBC"}

31
dist/src/utils/setup.js

@ -13,13 +13,10 @@ const lightning_1 = require("./lightning");
const models_1 = require("../models");
const child_process_1 = require("child_process");
const QRCode = require("qrcode");
const publicIp = require("public-ip");
const password_1 = require("../utils/password");
const gitinfo_1 = require("../utils/gitinfo");
const fs = require("fs");
const nodeinfo_1 = require("./nodeinfo");
const config_1 = require("./config");
const config = config_1.loadConfig();
const connect_1 = require("./connect");
const USER_VERSION = 7;
const setupDatabase = () => __awaiter(void 0, void 0, void 0, function* () {
console.log('=> [db] starting setup...');
@ -183,7 +180,7 @@ const runMigrations = () => __awaiter(void 0, void 0, void 0, function* () {
reject(err);
}
else {
resolve();
resolve(true);
}
});
// Forward stdout+stderr to this process
@ -208,29 +205,11 @@ function printGitInfo() {
}
function printQR() {
return __awaiter(this, void 0, void 0, function* () {
let public_ip;
const public_url = config.public_url;
if (public_url)
public_ip = public_url;
if (!public_ip) {
const ip = process.env.NODE_IP;
if (!ip) {
try {
public_ip = yield publicIp.v4();
}
catch (e) { }
}
else {
public_ip = ip;
}
}
if (!public_ip) {
const b64 = yield connect_1.getQR();
if (!b64) {
console.log('=> no public IP provided');
return;
return '';
}
let theIP = public_ip;
// if(!theIP.includes(":")) theIP = public_ip+':3001'
const b64 = Buffer.from(`ip::${theIP}::${password_1.default || ''}`).toString('base64');
console.log('>>', b64);
connectionStringFile(b64);
const clean = yield nodeinfo_1.isClean();

2
dist/src/utils/setup.js.map

File diff suppressed because one or more lines are too long

BIN
public/favicon.ico

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

89
public/index.html

@ -0,0 +1,89 @@
<!DOCTYPE html>
<html>
<head>
<style>
html {
font-family: Arial, Helvetica, sans-serif;
}
body {
background: #292a2d;
display: flex;
flex-direction: column;
align-items: center;
}
.qr-wrap {
background: white;
width: 300px;
height: 300px;
border-radius: 5px;
display: flex;
align-items: center;
justify-content: center;
margin-top: 20px;
}
canvas {
height: 280px;
width: 280px;
}
pre {
margin-top: 20px;
border-radius: 10px;
max-width: 250px;
padding: 0px 25px;
border: 1px solid tan;
background: white;
overflow: hidden;
overflow-wrap: break-word;
display: block;
white-space: pre-wrap;
}
img {
height: 100px;
width: 100px;
margin-top: 20px;
}
p {
color: white;
margin-top: 30px;
max-width: 300px;
text-align: center;
}
</style>
</head>
<body>
<img src="/static/sphinx-logo.png" alt="logo" />
<div class="qr-wrap">
<canvas id="qr"></canvas>
</div>
<p>
Scan the QR or copy the connection string into your Sphinx app
</p>
<pre>
CONNECTION_STRING
</pre>
<script src="/static/js/qrious.js"></script>
<script>
(function () {
var qr = new QRious({
element: document.getElementById('qr'),
value: 'CONNECTION_STRING',
size: 300
});
})();
</script>
</body>
</html>

6
public/js/qrious.js

File diff suppressed because one or more lines are too long

BIN
public/sphinx-logo.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

1
src/utils/config.ts

@ -32,5 +32,6 @@ export function loadConfig() {
log_file: ENV.LOG_FILE || config.log_file,
unlock: (ENV.unlock || config.unlock) ? true : false,
lnd_pwd_path: ENV.LND_PWD_PATH || config.lnd_pwd_path,
connect_ui: ENV.CONNECT_UI || config.connect_ui,
}
}

44
src/utils/connect.ts

@ -0,0 +1,44 @@
import * as publicIp from 'public-ip'
import password from '../utils/password'
import {loadConfig} from './config'
const fs = require('fs')
const config = loadConfig()
export async function getQR():Promise<string> {
let theIP
const public_url = config.public_url
if (public_url) theIP = public_url
if (!theIP) {
const ip = process.env.NODE_IP
if (!ip) {
try {
theIP = await publicIp.v4()
} catch (e) { }
} else {
const port = config.node_http_port
theIP = port ? `${ip}:${port}` : ip
}
}
return Buffer.from(`ip::${theIP}::${password || ''}`).toString('base64')
}
export async function connect(req, res) {
fs.readFile("public/index.html", async function (error, pgResp) {
if (error) {
res.writeHead(404);
res.write('Contents you are looking are Not Found');
} else {
console.log(pgResp, typeof pgResp)
const htmlString = Buffer.from(pgResp).toString()
const qr = await getQR()
const rep = htmlString.replace(/CONNECTION_STRING/g, qr)
const final = Buffer.from(rep, 'utf8')
res.writeHead(200, { 'Content-Type': 'text/html' });
res.write(final);
}
res.end();
});
}

31
src/utils/setup.ts

@ -2,14 +2,10 @@ import { loadLightning } from './lightning'
import { sequelize, models } from '../models'
import { exec } from 'child_process'
import * as QRCode from 'qrcode'
import * as publicIp from 'public-ip'
import password from '../utils/password'
import { checkTag, checkCommitHash } from '../utils/gitinfo'
import * as fs from 'fs';
import { isClean } from './nodeinfo'
import {loadConfig} from './config'
const config = loadConfig()
import { getQR } from './connect'
const USER_VERSION = 7
@ -185,7 +181,7 @@ const runMigrations = async () => {
if (err) {
reject(err);
} else {
resolve();
resolve(true);
}
}
);
@ -211,29 +207,12 @@ async function printGitInfo() {
async function printQR() {
let public_ip
const public_url = config.public_url
if (public_url) public_ip = public_url
if (!public_ip) {
const ip = process.env.NODE_IP
if (!ip) {
try {
public_ip = await publicIp.v4()
} catch (e) { }
} else {
public_ip = ip
}
}
if (!public_ip) {
const b64 = await getQR()
if (!b64) {
console.log('=> no public IP provided')
return
return ''
}
let theIP = public_ip
// if(!theIP.includes(":")) theIP = public_ip+':3001'
const b64 = Buffer.from(`ip::${theIP}::${password || ''}`).toString('base64')
console.log('>>', b64)
connectionStringFile(b64)

Loading…
Cancel
Save