diff --git a/docs/.gitignore b/docs/.gitignore new file mode 100644 index 000000000..f40fbd8ba --- /dev/null +++ b/docs/.gitignore @@ -0,0 +1,5 @@ +_site +.sass-cache +.jekyll-cache +.jekyll-metadata +vendor diff --git a/docs/README.md b/docs/README.md deleted file mode 100644 index e69de29bb..000000000 diff --git a/docs/_config.yml b/docs/_config.yml new file mode 100644 index 000000000..a606fa4e1 --- /dev/null +++ b/docs/_config.yml @@ -0,0 +1,10 @@ +title: "LNbits docs" + +remote_theme: pmarsceill/just-the-docs +logo: "/logos/lnbits-full.png" +search_enabled: true +aux_links: + "LNbits on GitHub": + - "//github.com/lnbits/lnbits" + "lnbits.com": + - "//lnbits.com" diff --git a/docs/devs/api.md b/docs/devs/api.md new file mode 100644 index 000000000..a0938d626 --- /dev/null +++ b/docs/devs/api.md @@ -0,0 +1,12 @@ +--- +layout: default +parent: For developers +title: API reference +nav_order: 3 +--- + + +API reference +============= + +Coming soon... diff --git a/docs/devs/development.md b/docs/devs/development.md new file mode 100644 index 000000000..b5db7c7ac --- /dev/null +++ b/docs/devs/development.md @@ -0,0 +1,12 @@ +--- +layout: default +title: For developers +nav_order: 3 +has_children: true +--- + + +For developers +============== + +Thanks for contributing :) diff --git a/docs/devs/extensions.md b/docs/devs/extensions.md new file mode 100644 index 000000000..2bb196a43 --- /dev/null +++ b/docs/devs/extensions.md @@ -0,0 +1,12 @@ +--- +layout: default +parent: For developers +title: Making extensions +nav_order: 2 +--- + + +Making extensions +================= + +Coming soon... diff --git a/DEV.md b/docs/devs/installation.md similarity index 56% rename from DEV.md rename to docs/devs/installation.md index 56bc068d6..c3865de92 100644 --- a/DEV.md +++ b/docs/devs/installation.md @@ -1,17 +1,27 @@ -For developers -============== +--- +layout: default +parent: For developers +title: Installation +nav_order: 1 +--- + + +Installation +============ + +LNbits uses [Flask](http://flask.pocoo.org/). -LNbits uses [Flask](http://flask.pocoo.org/). -Feel free to contribute to the project. Application dependencies ------------------------ + The application uses [Pipenv][pipenv] to manage Python packages. -While in development, you will need to install all dependencies: +While in development, you will need to install all dependencies (includes packages like `black` and `flake8`): $ pipenv shell $ pipenv install --dev + Running the server ------------------ @@ -20,10 +30,5 @@ Running the server There is an environment variable called `FLASK_ENV` that has to be set to `development` if you want to run Flask in debug mode with autoreload -Style guide ------------ -Tab size is 4 spaces. Maximum line length is 120. You should run `black` before commiting any change. - - $ black lnbits [pipenv]: https://docs.pipenv.org/#install-pipenv-today diff --git a/docs/guide/wallets.md b/docs/guide/wallets.md new file mode 100644 index 000000000..434a3ab53 --- /dev/null +++ b/docs/guide/wallets.md @@ -0,0 +1,79 @@ +--- +layout: default +title: Backend wallets +nav_order: 2 +--- + + +Backend wallets +=============== + +LNbits can run on top of many lightning-network funding sources. Currently there is support for +CLightning, LND, LNbits, LNPay, lntxbot and OpenNode, with more being added regularily. + +A backend wallet can be configured using the following LNbits environment variables: + + +### CLightning + +Using this wallet requires the installation of the `pylightning` Python package. + +- `LNBITS_BACKEND_WALLET_CLASS`: **CLightningWallet** +- `CLIGHTNING_RPC`: /file/path/lightning-rpc + + +### LND (gRPC) + +Using this wallet requires the installation of the `lnd-grpc` Python package. + +- `LNBITS_BACKEND_WALLET_CLASS`: **LndWallet** +- `LND_GRPC_ENDPOINT`: ip_address +- `LND_GRPC_PORT`: port +- `LND_CERT`: /file/path/tls.cert +- `LND_ADMIN_MACAROON`: /file/path/admin.macaroon +- `LND_INVOICE_MACAROON`: /file/path/invoice.macaroon +- `LND_READ_MACAROON`: /file/path/read.macaroon + + +### LND (REST) + +- `LNBITS_BACKEND_WALLET_CLASS`: **LndRestWallet** +- `LND_REST_ENDPOINT`: ip_address +- `LND_CERT`: /file/path/tls.cert +- `LND_ADMIN_MACAROON`: /file/path/admin.macaroon +- `LND_INVOICE_MACAROON`: /file/path/invoice.macaroon +- `LND_READ_MACAROON`: /file/path/read.macaroon + + +### LNbits + +- `LNBITS_BACKEND_WALLET_CLASS`: **LNbitsWallet** +- `LNBITS_ENDPOINT`: ex. https://lnbits.com +- `LNBITS_ADMIN_KEY`: apiKey +- `LNBITS_INVOICE_KEY`: apiKey + + +### LNPay + +- `LNBITS_BACKEND_WALLET_CLASS`: **LNPayWallet** +- `LNPAY_API_ENDPOINT`: ex. https://lnpay.co/v1/ +- `LNPAY_API_KEY`: apiKey +- `LNPAY_ADMIN_KEY`: apiKey +- `LNPAY_INVOICE_KEY`: apiKey +- `LNPAY_READ_KEY`: apiKey + + +### lntxbot + +- `LNBITS_BACKEND_WALLET_CLASS`: **LntxbotWallet** +- `LNTXBOT_API_ENDPOINT`: ex. https://lntxbot.bigsun.xyz/ +- `LNTXBOT_ADMIN_KEY`: apiKey +- `LNTXBOT_INVOICE_KEY`: apiKey + + +### OpenNode + +- `LNBITS_BACKEND_WALLET_CLASS`: **OpenNodeWallet** +- `OPENNODE_API_ENDPOINT`: ex. https://api.opennode.com/ +- `OPENNODE_ADMIN_KEY`: apiKey +- `OPENNODE_INVOICE_KEY`: apiKey diff --git a/docs/index.md b/docs/index.md new file mode 100644 index 000000000..7669b64b8 --- /dev/null +++ b/docs/index.md @@ -0,0 +1,24 @@ +--- +layout: default +title: User’s Guide +nav_order: 1 +--- + + +LNbits, free and open-source lightning-network wallet/accounts system +===================================================================== + +LNbits is a very simple Python application that sits on top of any funding source, and can be used as: + +* Accounts system to mitigate the risk of exposing applications to your full balance, via unique API keys for each wallet +* Extendable platform for exploring lightning-network functionality via LNbits extension framework +* Part of a development stack via LNbits API +* Fallback wallet for the LNURL scheme +* Instant wallet for LN demonstrations + + +LNbits as an account system +--------------------------- + +LNbits is packaged with tools to help manage funds, such as a table of transactions, line chart of spending, +export to csv + more to come... diff --git a/lnbits/wallets/lnbits.py b/lnbits/wallets/lnbits.py index 8f62a10ad..c3e0a0dc1 100644 --- a/lnbits/wallets/lnbits.py +++ b/lnbits/wallets/lnbits.py @@ -4,12 +4,13 @@ from requests import get, post from .base import InvoiceResponse, PaymentResponse, PaymentStatus, Wallet -class LnbitsWallet(Wallet): +class LNbitsWallet(Wallet): + """https://github.com/lnbits/lnbits""" def __init__(self): self.endpoint = getenv("LNBITS_ENDPOINT") - self.auth_admin = getenv("LNBITS_ADMIN_MACAROON") - self.auth_invoice = getenv("LNBITS_INVOICE_MACAROON") + self.auth_admin = {"X-Api-Key": getenv("LNBITS_ADMIN_KEY")} + self.auth_invoice = {"X-Api-Key": getenv("LNBITS_INVOICE_KEY")} def create_invoice(self, amount: int, memo: str = "") -> InvoiceResponse: r = post(