mirror of
https://github.com/lnbits/lnbits-legend.git
synced 2024-11-19 18:11:30 +01:00
remove ngrok (#1514)
This commit is contained in:
parent
b2c580268e
commit
b5be96836c
@ -1,24 +0,0 @@
|
||||
<h1>Ngrok</h1>
|
||||
<h2>Serve lnbits over https for free using ngrok</h2>
|
||||
|
||||
<img src="https://i.ibb.co/QfDD4FS/Screenshot-2021-07-02-7-28-35-AM.png">
|
||||
|
||||
<h2>How it works</h2>
|
||||
|
||||
When enabled, ngrok creates a tunnel to ngrok.io with https support and tells you the https web address where you can access your lnbits instance. If you are not the first user to enable it, it doesn't create a new one, it just tells you the existing one. Useful for creating/managing/using lnurls, which must be served either via https or via tor. Note that if you restart your device, your device will generate a new url. If anyone is using your old one for wallets, lnurls, etc., whatever they are doing will stop working.
|
||||
|
||||
<h2>Installation</h2>
|
||||
|
||||
Check the Extensions page on your instance of lnbits. If you have copy of lnbits with ngrok as one of the built in extensions, click Enable -- that's the only thing you need to do to install it.
|
||||
|
||||
If your copy of lnbits does not have ngrok as one of the built in extensions, stop lnbits, create go into your lnbits folder, and run this command: ./venv/bin/pip install pyngrok. Then go into the lnbits subdirectory and the extensions subdirectory within that. (So lnbits > lnbits > extensions.) Create a new subdirectory in there called freetunnel, download this repository as a zip file, and unzip it in the freetunnel directory. If your unzipper creates a new "freetunnel" subdirectory, take everything out of there and put it in the freetunnel directory you created. Then go back to the top level lnbits directory and run these commands:
|
||||
|
||||
```
|
||||
./venv/bin/quart assets
|
||||
./venv/bin/quart migrate
|
||||
./venv/bin/hypercorn -k trio --bind 0.0.0.0:5000 'lnbits.app:create_app()'
|
||||
```
|
||||
|
||||
<h3>Optional: set up an ngrok.com account</h3>
|
||||
|
||||
The default setup makes a tunnel on a random subdomain, and the session times out after 24h or a certain bandwith limit. You can set up an account at ngrok.com; a free plan removes the timeout, and a paid plan lets you choose a custom subdomain (or even use your own domain). For this, get an auth token from ngrok.com, and then set it up as `NGROK_AUTHTOKEN` environment variable on your `.env` file e.g., if your auth token is xxxx, add a line NGROK_AUTHTOKEN=xxxx.
|
@ -1,15 +0,0 @@
|
||||
from fastapi import APIRouter
|
||||
|
||||
from lnbits.db import Database
|
||||
from lnbits.helpers import template_renderer
|
||||
|
||||
db = Database("ext_ngrok")
|
||||
|
||||
ngrok_ext: APIRouter = APIRouter(prefix="/ngrok", tags=["ngrok"])
|
||||
|
||||
|
||||
def ngrok_renderer():
|
||||
return template_renderer(["lnbits/extensions/ngrok/templates"])
|
||||
|
||||
|
||||
from .views import * # noqa: F401,F403
|
@ -1,6 +0,0 @@
|
||||
{
|
||||
"name": "Ngrok",
|
||||
"short_description": "Serve lnbits over https for free using ngrok",
|
||||
"icon": "trip_origin",
|
||||
"contributors": ["supertestnet"]
|
||||
}
|
@ -1,11 +0,0 @@
|
||||
# async def m001_initial(db):
|
||||
|
||||
# await db.execute(
|
||||
# """
|
||||
# CREATE TABLE example.example (
|
||||
# id TEXT PRIMARY KEY,
|
||||
# wallet TEXT NOT NULL,
|
||||
# time TIMESTAMP NOT NULL DEFAULT """ + db.timestamp_now + """
|
||||
# );
|
||||
# """
|
||||
# )
|
@ -1,60 +0,0 @@
|
||||
{% extends "base.html" %} {% from "macros.jinja" import window_vars with context
|
||||
%} {% block page %}
|
||||
|
||||
<div class="row q-col-gutter-md">
|
||||
<div class="col-12 col-lg-7 q-gutter-y-md">
|
||||
<q-card>
|
||||
<q-card-section>
|
||||
<h5 class="text-subtitle1 q-mt-none q-mb-md">
|
||||
Access this lnbits instance at the following url
|
||||
</h5>
|
||||
<q-separator class="q-my-lg"></q-separator>
|
||||
<p>
|
||||
<a class="text-secondary" href="{{ ngrok }}" target="_blank"
|
||||
>{{ ngrok }}</a
|
||||
>
|
||||
</p>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
</div>
|
||||
|
||||
<div class="col-12 col-md-5 q-gutter-y-md">
|
||||
<q-card>
|
||||
<q-card-section>
|
||||
<h6 class="text-subtitle1 q-my-none">Ngrok extension</h6>
|
||||
</q-card-section>
|
||||
<q-card-section class="q-pa-none">
|
||||
<q-card>
|
||||
<q-card-section>
|
||||
<p>
|
||||
Note that if you restart your device, your device will generate a
|
||||
new url. If anyone is using your old one for wallets, lnurls,
|
||||
etc., whatever they are doing will stop working.
|
||||
</p>
|
||||
<small
|
||||
>Created by
|
||||
<a
|
||||
class="text-secondary"
|
||||
href="https://github.com/supertestnet"
|
||||
target="_blank"
|
||||
>Supertestnet</a
|
||||
>.</small
|
||||
>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% endblock %}{% block scripts %} {{ window_vars(user) }}
|
||||
<script>
|
||||
new Vue({
|
||||
el: '#vue',
|
||||
mixins: [windowMixin],
|
||||
data: function () {
|
||||
return {}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
{% endblock %}
|
@ -1,39 +0,0 @@
|
||||
from os import getenv
|
||||
|
||||
from fastapi import Depends, Request
|
||||
from fastapi.templating import Jinja2Templates
|
||||
from pyngrok import conf, ngrok # type: ignore
|
||||
|
||||
from lnbits.core.models import User
|
||||
from lnbits.decorators import check_user_exists
|
||||
|
||||
from . import ngrok_ext, ngrok_renderer
|
||||
|
||||
templates = Jinja2Templates(directory="templates")
|
||||
|
||||
|
||||
def log_event_callback(log):
|
||||
string = str(log)
|
||||
string2 = string[string.find('url="https') : string.find('url="https') + 80]
|
||||
if string2:
|
||||
string3 = string2
|
||||
string4 = string3[4:]
|
||||
global string5
|
||||
string5 = string4.replace('"', "")
|
||||
|
||||
|
||||
conf.get_default().log_event_callback = log_event_callback
|
||||
|
||||
ngrok_authtoken = getenv("NGROK_AUTHTOKEN")
|
||||
if ngrok_authtoken is not None:
|
||||
ngrok.set_auth_token(ngrok_authtoken)
|
||||
|
||||
port = getenv("PORT")
|
||||
ngrok_tunnel = ngrok.connect(port)
|
||||
|
||||
|
||||
@ngrok_ext.get("/")
|
||||
async def index(request: Request, user: User = Depends(check_user_exists)):
|
||||
return ngrok_renderer().TemplateResponse(
|
||||
"ngrok/index.html", {"request": request, "ngrok": string5, "user": user.dict()} # type: ignore
|
||||
)
|
Loading…
Reference in New Issue
Block a user