add commercial interface

This commit is contained in:
AJ ONeal 2018-06-07 05:26:15 +00:00
parent ab35fdc40e
commit 46599c864c
5 changed files with 144 additions and 1 deletions

View File

@ -25,7 +25,7 @@ module.exports.authenticate = function (opts) {
auth = jwtoken; auth = jwtoken;
if ('object' === typeof auth && /^.+@.+\..+$/.test(auth.subject)) { if ('object' === typeof auth && /^.+@.+\..+$/.test(auth.subject)) {
console.log('parsed'); console.log('parsed');
var id = crypto.randomBytes(16).toString('hex'); var id = crypto.randomBytes(16).toString('base64').replace(/\+/,'-').replace(/\//g,'_').replace(/=/g,'');
console.log("[DEBUG] gonna send email"); console.log("[DEBUG] gonna send email");
return requestAsync({ return requestAsync({
url: 'https://api.mailgun.net/v3/telebit.cloud/messages' url: 'https://api.mailgun.net/v3/telebit.cloud/messages'
@ -92,8 +92,11 @@ module.exports.authenticate = function (opts) {
return state.defaults.authenticate(opts.auth); return state.defaults.authenticate(opts.auth);
}; };
//var loaded = false;
var path = require('path');
var express = require('express'); var express = require('express');
var app = express(); var app = express();
app.use('/', express.static(path.join(__dirname, 'extensions/admin')));
app.use('/login', function (req, res) { app.use('/login', function (req, res) {
var tokenData; var tokenData;
var magic = req.query.magic; var magic = req.query.magic;
@ -108,6 +111,7 @@ app.use('/login', function (req, res) {
} }
}); });
module.exports.webadmin = function (state, req, res) { module.exports.webadmin = function (state, req, res) {
//if (!loaded) { loaded = true; app.use('/', state.defaults.webadmin); }
console.log('[DEBUG] extensions webadmin'); console.log('[DEBUG] extensions webadmin');
app(req, res); app(req, res);
}; };

View File

@ -0,0 +1,89 @@
<!DOCTYPE html>
<html>
<head>
<title>Telebit&trade;</title>
<meta charset="UTF-8">
<style>
/* http://www.karlgroves.com/2013/12/17/quick-tip-text-characters-as-visual-separators/ */
pre {
margin-left: 2em;
background-color: #EFEFFF;
padding: 1em;
}
footer li{
list-style-type: none;
display: inline;
margin-right: .3 em;
}
footer li:not(:last-of-type):after{
content: ' | ';
}
</style>
</head>
<body>
<script>document.body.hidden = true;</script>
<center>
<h1>Telebit</h1>
<p>Access anything, anywhere, anytime.</p>
</center>
<div style="width: 500px; margin: auto;">
<h2>1. Install Telebit</h2>
<p>We have a simple command line installer for Mac and Linux:</p>
<pre><code>curl -fsSL https://get.telebit.cloud/ | bash</code></pre>
<p>Windows requires <a href="https://git.coolaj86.com/coolaj86/telebit.js" target="_blank">manual installation</a>, but it's not too hard.</p>
<h2>2. Claim your device via Email</h2>
<p>You'll get an email that looks like this:</p>
<pre><code>You've installed Telebit on 'Jon's Macbook Pro'.
Authenticate your account and claim your device:
https://www.telebit.cloud/login/?magic=xxxxxxxxxxxxxx
</code></pre>
<h2>3. Enjoy Anytime, Anywhere Access</h2>
<p>With a free account you'll get a random name and port number, such as "lucky-duck-42" and "22222".</p>
<pre><code>HTTPS
https://lucky-duck-42.telebit.cloud
SSH
ssh ssh.telebit.cloud -p 22222
TCP
netcat tcp.telebit.cloud 22222</code></pre>
<pre><code>SSH over HTTPS (not blocked by firewalls)
# Add the following to ~/.ssh/config:
Host lucky-duck-42.telebit.cloud
ProxyCommand openssl s_client -quiet -connect %h:443
# Run ssh with (your domain, no port):
ssh lucky-duck-42.telebit.cloud</code></pre>
<center>
<p><footer>
<h3>
<li><a href="https://git.coolaj86.com/coolaj86/telebit.js" target="_blank">Read the Telebit docs</a></li>
<li><a href="https://git.coolaj86.com/coolaj86/telebitd.js" target="_blank">Host your own Telebit Relay</a></li>
</h3>
<li>&copy;2018 AJ ONeal</li>
<li><a href="https://git.coolaj86.com/coolaj86/telebit.js" target="_blank">git</a></li>
<li><a href="/legal/" target="_blank">License</a></li>
<li><a href="/legal/" target="_blank">Terms</a></li>
<li><a href="/legal/" target="_blank">Privacy</a></li>
</footer></p>
</center>
</div>
<script src="js/app.js"></script>
</body>
</html>

View File

@ -0,0 +1,6 @@
(function () {
'use strict';
document.body.hidden = false;
}());

View File

@ -0,0 +1,28 @@
<head>
<style>
body {
margin: 1em;
}
</style>
</head>
<body>
<h1>Terms of Service</h1>
<p>To be used for good, not evil.</p>
<h1>Privacy</h1>
<p>We'll keep your info to ourselves.</p>
<h1>License</h1>
<p>There are Commercial and Open Source versions of Telebit<br>(kinda like how Google has Chrome and Chromium).
</p>
<p>
The Open Source versions are available as
<li><a href="https://git.coolaj86.com/coolaj86/telebit.js" target="_blank">Telebit Remote</a> (the "client" daemon)</li>
<li><a href="https://git.coolaj86.com/coolaj86/telebit.js" target="_blank">Telebit Relay</a> (the service daemon)</li>
</p>
<h1>Trademark</h1>
<p>Telebit is a trademark of AJ ONeal
</p>
</body>

View File

@ -0,0 +1,16 @@
<!DOCTYPE html>
<html>
<head>
<title>Telebit Relay</title>
</head>
<body>
[TODO: Setup Interface]
<br>
<ul>
<li>Admin Server Name</li>
<li>Administrator Email</li>
<li>SSL ToS Agree</li>
<li>Community Member</li>
</ul>
</body>
</html>