ADD: about page

This commit is contained in:
igor 2018-12-09 22:46:14 +00:00
parent af657c568d
commit d1de8cf447
11 changed files with 626 additions and 82 deletions

View File

@ -16,6 +16,12 @@ router.get('/', function(req, res) {
});
});
router.get('/about', function(req, res) {
let html = fs.readFileSync('./templates/about.html').toString('utf8');
res.setHeader('Content-Type', 'text/html');
return res.status(200).send(mustache.render(html, {}));
});
router.use(function(req, res) {
res.status(404).send('404');
});

View File

@ -29,6 +29,7 @@ let config = require('./config');
app.use(bodyParser.urlencoded({ extended: false })); // parse application/x-www-form-urlencoded
app.use(bodyParser.json(null)); // parse application/json
app.use('/static', express.static('static'));
app.use(require('./controllers/api'));
app.use(require('./controllers/website'));

View File

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 23 KiB

View File

Before

Width:  |  Height:  |  Size: 180 KiB

After

Width:  |  Height:  |  Size: 180 KiB

View File

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 47 KiB

View File

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View File

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

96
templates/about.html Normal file
View File

@ -0,0 +1,96 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="LNDhub - Open source Bank on top of the lightning network">
<meta name="author" content="Nuno Coelho">
<meta content="http://lndhub.io" property="og:url">
<meta content="lndhub.io" property="og:title">
<meta content="lndhub" property="og:description">
<meta content="http://lndhub.io/img/lndhub.svg" property="og:image">
<meta content="800" property="og:image:width">
<meta content="800" property="og:image:height">
<link rel="icon" href="/static/favicon.png">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
<title>LNDhub - Open source Bank</title>
<!-- Custom styles for this template -->
<link href="/static/css/lndhub.css" rel="stylesheet">
</head>
<body>
<div class="cover-container mx-auto">
<header class="masthead mb-auto">
<div class="inner">
<h3 class="masthead-brand"><img src="/static/img/lndhub.svg"></h3>
</div>
</header>
<main role="main" class="inner cover">
<h1 class="cover-heading">An open source bank</h1>
<p class="lead"><strong>LNDHub is an opensource wrapper for Lightning Network Daemon. It provides <br/>
separate accounts and trust minimization for end users.</strong></p>
<p class="lead">We want to hide the complexity of running a node, and take over the work of a hub operator. Users want to make payments without the hassle of operating a node, opening channels, take care of liquidity or watching these channels.</p>
<p class="lead">We want to bring Lightning payments to everyone and speed up Bitcoin adoption.</p>
<p class="lead">We called it <strong>LNDhub</strong>.</p>
<div class="github">
<!-- Place this tag where you want the button to render. -->
<a class="github-button" href="https://github.com/bluewallet/lndhub" data-size="large" data-show-count="true" aria-label="Star bluewallet/lndhub on GitHub">Star</a>
</div>
<div class="clear"></div>
</main>
</div>
<div class="explain">
<div class="cover-container mx-auto">
<h2>How does it work?</h2>
<img class="lndhub-graph" src="/static/img/lndhub-graph.png">
<p class="lead">When the user sends Bitcoin to a dedicated top-up address, this balance is added to his account on LNDhub. Then, the user can use this balance to pay Lightning invoices, from everything to coffees to any micro-transaction he wants. But under the hood, its actually LNDhub who pays the invoice, deducting the users account balance. It works the same way when the user wants to receive a Lightning payment - its LNDhub who creates a Lightning invoice and actually receives the value on one of its channels.</p>
</div>
</div>
<div class="promote">
<div class="cover-container mx-auto">
<h2>Where can I test it?</h1>
<div class="row">
<div class="col-md-6 text-center">
<img class="lndhub-graph" src="/static/img/iphoneX.png">
</div>
<div class="col-md-6">
<p class="lead">Live on <strong>Blue wallet</strong>, a bitcoin wallet for iOS and android. <strong>LNDhub</strong> implementation on Blue wallet takes full advantage of this revolutionary payments network.</p>
<p>Enabling Blue wallet users to have unfairly cheap and fast Bitcoin transactions..
</p>
<ul class="list-unstyled cta">
<li><a class="badge-link2" href="https://itunes.apple.com/us/app/bluewallet-bitcoin-wallet/id1376878040?l=ru&amp;ls=1&amp;mt=8" target="_blank">
<img src="/static/img/app-store-badge.svg" alt="app store link"></a></li>
<li><a href="https://play.google.com/store/apps/details?id=io.bluewallet.bluewallet" target="_blank">
<img src="/static/img/play-store-badge.svg" alt="play store link"></a></li>
</ul>
</div>
</div>
</div>
</div>
<div class="promote">
<div class="cover-container mx-auto">
<h2>Why should you use it?</h1>
<div class="row">
<div class="col-md-8">
<p class="lead">Read our article on Medium on the reasoning behind the system and the pros and cons.</p>
</div>
<div class="col-md-4">
<a href="#" class="btn btn-lg btn-block btn-dark">read here &rarr;</a>
</div>
</div>
<footer class="mastfoot mt-auto">
<div class="inner">
<p>&nbsp;</p>
</div>
</footer>
<!-- Place this tag in your head or just before your close body tag. -->
<script async defer src="https://buttons.github.io/buttons.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
</body>
</html>

View File

@ -1,92 +1,533 @@
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="description" content="LNDhub - Open source Bank on top of the lightning network">
<meta name="author" content="Nuno Coelho">
<!DOCTYPE html>
<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<style type="text/css">
@charset "UTF-8";
</style>
<meta content="width=640, maximum-scale=1.0" name="viewport">
<meta content="http://lndhub.io" property="og:url">
<meta content="lndhub.io" property="og:title">
<meta content="lndhub" property="og:description">
<meta content="http://lndhub.io/img/lndhub.svg" property="og:image">
<meta content="http://url.here/logo.png" property="og:image">
<meta content="800" property="og:image:width">
<meta content="800" property="og:image:height">
<link rel="icon" href="favicon.png">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
<title>LNDhub - Open source Bank</title>
<!-- Custom styles for this template -->
<link href="css/lndhub.css" rel="stylesheet">
</head>
<title>LndHub</title>
<meta content="command line, lndhub" name="keywords">
<meta content="command-line lndhub" name="description">
</head>
<body class="theme-dark" style="background: none;">
<body>
<div class="holder">
<div class="cover-container mx-auto">
<header class="masthead mb-auto">
<div class="inner">
<h3 class="masthead-brand"><img src="img/lndhub.svg"></h3>
<div class="container">
<div class="terminal-output">
<pre class="line"> _________________________</pre>
<pre class="line">/ Hi! How are you? \</pre>
<pre class="line">| |</pre>
<pre class="line">\ Welcome to LNDHUB! /</pre>
<pre class="line"> -------------------------</pre>
<pre class="line"> \ ^__^</pre>
<pre class="line"> \ (oo)\_______</pre>
<pre class="line"> (__)\ )\/\</pre>
<pre class="line"> ||----w |</pre>
<pre class="line"> || ||</pre>
<pre class="line"> </pre>
<pre class="line"> </pre>
<pre class="line"> </pre>
<pre class="line"><span class="dyer-white">Hello world!</span></pre>
<pre class="line"><span class="dyer-orange">Welcome to LndHub, opensource wrapper for Lightning Network Daemon</span></pre>
<pre class="line"><span class="dyer-orange">It provides separate accounts and trust minimization for end users</span></pre>
<pre class="line"> </pre>
<pre class="line"><span class="dyer-white">LND uris:</span></pre>
{{#uris}}
<pre class="line">{{.}}</pre>
{{/uris}}
<pre class="line"> </pre>
<pre class="line"><span class="dyer-white">num_active_channels:</span></pre>
<pre class="line">{{num_active_channels}}</pre>
<pre class="line"> </pre>
<pre class="line"><span class="dyer-white">num_peers:</span></pre>
<pre class="line">{{num_peers}}</pre>
<pre class="line"> </pre>
<pre class="line"><span class="dyer-white">version:</span></pre>
<pre class="line">{{version}}</pre>
<pre class="line"> </pre>
<pre class="line"><span class="dyer-white">Fork me on GitHub!</span></pre>
<pre class="line"><a href="https://github.com/BlueWallet/LndHub" target="_blank">https://github.com/BlueWallet/LndHub</a></pre>
<pre class="line"> </pre>
<pre class="line"><span class="dyer-white">Start using it on MainNet (zero configuration required):</span></pre>
<pre class="line"><a href="https://bluewallet.io" target="_blank">https://bluewallet.io</a></pre>
<pre class="line"> </pre>
<pre class="line"><a href="/about" target="_blank">Click here to find out more!</a></pre>
<pre class="line"> </pre>
<pre class="line"> </pre>
<pre class="line"> </pre>
</div>
</header>
<main role="main" class="inner cover">
<h1 class="cover-heading">An open source bank</h1>
<p class="lead">We want to hide the complexity of running a node, and take over the work of a hub operator. Users want to make payments without the hassle of operating a node, opening channels, take care of liquidity or watching these channels.</p>
<p class="lead">We want to bring Lightning payments to everyone and speed up Bitcoin adoption.</p>
<p class="lead">We called it <strong>LNDhub</strong>, a custodian Lightning wallet. <strong>A 3rd layer solution</strong>.</p>
<div class="github">
<!-- Place this tag where you want the button to render. -->
<a class="github-button" href="https://github.com/bluewallet/lndhub" data-size="large" data-show-count="true" aria-label="Star bluewallet/lndhub on GitHub">Star</a>
</div>
<div class="clear"></div>
</main>
</div>
<div class="explain">
<div class="cover-container mx-auto">
<h2>How does it work?</h1>
<img class="lndhub-graph" src="img/lndhub-graph.png">
<p class="lead">When the user sends Bitcoin to a dedicated top-up address, this balance is added to his account on LNDhub. Then, the user can use this balance to pay Lightning invoices, from everything to coffees to any micro-transaction he wants. But under the hood, its actually LNDhub who pays the invoice, deducting the users account balance. It works the same way when the user wants to receive a Lightning payment - its LNDhub who creates a Lightning invoice and actually receives the value on one of its channels.</p>
<div class="terminal-input-holder">
<div class="pre-query">
$
</div>
</div>
<div class="promote">
<div class="cover-container mx-auto">
<h2>Where can I test it?</h1>
<div class="row">
<div class="col-md-6 text-center">
<img class="lndhub-graph" src="img/iphonex.png">
</div>
<div class="col-md-6">
<p class="lead">Live on <strong>Blue wallet</strong>, a bitcoin wallet for iOS and android. <strong>LNDhub</strong> implementation on Blue wallet takes full advantage of this revolutionary payments network.</p>
<p>Enabling Blue wallet users to have unfairly cheap and fast Bitcoin transactions..
</p>
<ul class="list-unstyled cta">
<li><a class="badge-link2" href="https://itunes.apple.com/us/app/bluewallet-bitcoin-wallet/id1376878040?l=ru&amp;ls=1&amp;mt=8" target="_blank">
<img src="img/app-store-badge.svg" alt="app store link"></a></li>
<li><a href="https://play.google.com/store/apps/details?id=io.bluewallet.bluewallet" target="_blank">
<img src="img/play-store-badge.svg" alt="play store link"></a></li>
</ul>
</div>
</div>
</div>
</div>
<div class="promote">
<div class="cover-container mx-auto">
<h2>Why should you use it?</h1>
<div class="row">
<div class="col-md-8">
<p class="lead">Read our article on Medium on the reasoning behind the system and the pros and cons.</p>
</div>
<div class="col-md-4">
<a href="#" class="btn btn-lg btn-block btn-dark">read here &rarr;</a>
</div>
</div>
<footer class="mastfoot mt-auto">
<div class="inner">
<p>&nbsp;</p>
</div>
</footer>
<!-- Place this tag in your head or just before your close body tag. -->
<script async defer src="https://buttons.github.io/buttons.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script>
</body>
</html>
<input autocomplete="off" class="terminal-input " eb-caret="caretPosition" style="width: 967px;" type="text">
</div>
</div>
<style>
html, body {
height: 100%;
background: #000;
overflow-y: scroll!important
}
html {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box
}
*, :before, :after {
box-sizing: inherit
}
body {
margin: 0;
font-family: Monaco, Menlo, Consolas, "Courier New", monospace;
word-wrap: break-word;
font-weight: 400;
height: 100%;
width: 100%;
float: left
}
body.theme-dark {
background-color: #000;
color: #f7f7f7
}
body.theme-light {
background-color: #f7f7f7;
color: #191919
}
a {
color: inherit;
text-decoration: none
}
body.theme-dark a {
color: #f7f7f7
}
body.theme-light a {
color: #191919
}
.line a {
cursor: pointer
}
body.theme-dark cmd, body.theme-dark .line a {
color: #f7f7f7;
border-bottom: 1px dotted #f7f7f7
}
body.theme-light cmd, body.theme-light .line a {
color: #191919;
border-bottom: 1px dotted #191919
}
body.theme-dark a:hover, body.theme-dark cmd:hover {
color: #0ff
}
body.theme-light a:hover, body.theme-light cmd:hover {
color: #ff00ff
}
textarea {
resize: none;
min-height: 0;
font-family: inherit;
font-size: inherit;
font-weight: inherit;
vertical-align: middle;
overflow: none;
letter-spacing: inherit
}
.container {
padding: 10px;
width: 100%
}
.holder {
position: fixed;
width: 100%;
height: 100%;
overflow: auto;
bottom: 0;
padding-top: 30px;
padding-bottom: 0
}
.terminal-input {
font-family: inherit;
font-size: 16px;
width: 100%;
float: left;
text-align: inherit;
border: 0;
padding: 0 10px;
border-radius: 0;
margin-top: 10px;
margin-bottom: 10px;
background: 0 0
}
.prompt-input {
background-color: transparent;
font-family: inherit;
font-size: 16px;
width: 100%;
float: left;
text-align: inherit;
border: 0;
padding: 0 10px;
border-radius: 0;
margin-top: 10px;
margin-bottom: 10px
}
.terminal-input-sml {
width: 50%;
float: left
}
.prompt-input-sml {
width: 50%;
float: left
}
.pre-query {
font-size: 16px;
padding-top: 10px;
float: left;
color: #01DD06
}
.pre-prompt {
font-size: 16px;
padding-top: 10px;
float: left;
color: #01DD06
}
body.theme-dark .terminal-input {
color: #fff
}
body.theme-light .terminal-input {
color: #f7f7f7
}
body.theme-dark .prompt-input {
color: #fff
}
body.theme-light .prompt-input {
color: #f7f7f7
}
#tabs {
display: none!important;
list-style: none;
margin: 0!important;
width: 100%;
float: left;
position: fixed;
z-index: 3;
padding-left: 25px;
font-size: 14px
}
#tabs li {
float: left;
margin: 0;
margin-right: 10px;
background: #252525;
padding: 5px;
padding-right: 14px;
padding-left: 14px;
color: gray;
cursor: pointer
}
.noselect {
-webkit-touch-callout: none;
-webkit-user-select: none;
-khtml-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none
}
.close_tab_btn {
color: #b4b4b4!important;
margin-top: -2px;
float: right;
margin-left: 10px;
padding: 1px
}
.close_tab_btn:hover {
color: #2d2d2d!important
}
#tabs li:hover {
background: #fff
}
.pull-right {
float: right!important
}
#tabs li.active {
font-weight: 700;
background: #fff
}
.terminal-input:focus {
outline: 0
}
.prompt-input:focus {
outline: 0
}
.terminal-output {
padding: 0 16px;
margin-bottom: 50px
}
.divider {
width: 100%;
overflow: hidden;
white-space: nowrap;
margin-top: 5px;
margin-bottom: 5px
}
.line {
font-family: Monaco, Menlo, Consolas, "Courier New", monospace;
display: block;
float: left;
width: 100%;
font-size: 12px;
color: #C3C3C3;
margin: 0;
font-smooth: never!important;
white-space: pre-wrap;
white-space: -moz-pre-wrap;
white-space: -pre-wrap;
white-space: -o-pre-wrap;
word-wrap: break-word
}
.darkIframeBg {
background: #000!important
}
.cmdfmWidgetHolder {
position: fixed!important;
left: -1000px!important;
top: -500px!important;
width: 0!important;
height: 0!important
}
.iframeHolder iframe {
width: 100%;
height: 100%;
padding: 3%;
position: fixed;
border: none!important;
overflow: hidden!important
}
.dyer-runcmd-green {
color: #01DD06;
margin-left: -5px;
font-size: 14px
}
.dyer-runcmd-green span {
color: #d4d4d4;
font-size: 14px
}
.dyer-runcmd-green .qry {
color: #fff!important
}
.dyer-green {
color: #01DD06
}
.dyer-tomato {
color: tomato
}
.dyer-orange {
color: orange
}
.dyer-white {
color: #fff
}
.dyer-red {
color: #e74c3c
}
.dyer-darkgray {
color: #666
}
.dyer-blue {
color: #1DBAFE
}
.dyer-yellow {
color: #fff01c
}
.dyer-gr-yellow-1 {
color: #fff8e3
}
.dyer-gr-yellow-2 {
color: #fffeab
}
.dyer-gr-yellow-3 {
color: #fff85f
}
.dyer-gr-yellow-4 {
color: #ffe454
}
.dyer-gr-yellow-5 {
color: #ffb50e
}
.dyer-gr-green-1 {
color: #bdffbc
}
.dyer-gr-green-2 {
color: #78ff75
}
.dyer-gr-green-3 {
color: #35ff2a
}
.dyer-gr-green-4 {
color: #27ce21
}
.dyer-gr-green-5 {
color: #008e03
}
.dyer-gr-blue-1 {
color: #f1f6ff
}
.dyer-gr-blue-2 {
color: #e7e0ff
}
.dyer-gr-blue-3 {
color: #84cbff
}
.dyer-gr-blue-4 {
color: #38acff
}
.dyer-gr-blue-5 {
color: #0f72ff
}
span {
line-height: 15px
}
.no-animation * {
-o-transition-property: none!important;
-moz-transition-property: none!important;
-ms-transition-property: none!important;
-webkit-transition-property: none!important;
transition-property: none!important;
-o-transform: none!important;
-moz-transform: none!important;
-ms-transform: none!important;
-webkit-transform: none!important;
transform: none!important;
-webkit-animation: none!important;
-moz-animation: none!important;
-o-animation: none!important;
-ms-animation: none!important;
animation: none!important
}
.container * {
-webkit-animation: fadein .2s ease;
-moz-animation: fadein .2s ease;
-ms-animation: fadein .2s ease;
-o-animation: fadein .2s ease;
animation: fadein .2s ease
}
@keyframes fadein {
from {
transform: translateY(4px)
}
to {
transform: translateY(0px)
}
}
@-moz-keyframes fadein {
from {
-moz-transform: translateY(4px)
}
to {
-moz-transform: translateY(0px)
}
}
@-webkit-keyframes fadein {
from {
-webkit-transform: translateY(4px)
}
to {
-webkit-transform: translateY(0px)
}
}
@-ms-keyframes fadein {
from {
-ms-transform: translateY(4px)
}
to {
-ms-transform: translateY(0px)
}
}
@-o-keyframes fadein {
from {
-o-transform: translateY(4px)
}
to {
-o-transform: translateY(0px)
}
}
::-webkit-scrollbar {
width: 4px;
height: 4px
}
::-webkit-scrollbar-track {
background-color: transparent;
-webkit-border-radius: 0
}
body.theme-dark ::-webkit-scrollbar-thumb:vertical, body.theme-dark ::-webkit-scrollbar-thumb:horizontal {
background-color: orange;
-webkit-border-radius: 0
}
body.theme-light ::-webkit-scrollbar-thumb:vertical, body.theme-light ::-webkit-scrollbar-thumb:horizontal {
background-color: #191919;
-webkit-border-radius: 0
}
body.theme-dark ::-webkit-scrollbar-thumb:vertical:hover, body.theme-dark ::-webkit-scrollbar-thumb:horizontal:hover {
background-color: #0ff
}
body.theme-light ::-webkit-scrollbar-thumb:vertical:hover, body.theme-light ::-webkit-scrollbar-thumb:horizontal:hover {
background-color: #ff00ff
}
.nobot {
margin: none!important;
padding: none!important;
line-height: 1em
}
.mini-player-indicator {
background: #FF3900!important;
color: #fff!important
}
.mini-player-indicator:hover {
background: #fff!important;
color: #FF3900!important
}
.terminal-input-holder-fixed {
position: fixed;
bottom: 0;
width: 100%;
background: rgba(0, 0, 0, .7)
}
.terminal-input-holder {
float: left;
width: 100%;
display: block
}
.curtain {
width: 100%;
height: 100%;
position: fixed;
z-index: 1;
top: 0;
left: 0;
display: none;
background: #000;
opacity: .5
}
.curtain.active {
display: block
}
</style>
</body>
</html>