5.7 KiB
Extension Install
Anyone can create an extension by following the example extension.
Extensions can be installed by an admin user after the LNbits instance has been started.
Configure Repositories
Go to Manage Server
> Server
> Extensions Manifests
An Extension Manifest
is an link to a JSON
file whitch contains information about various extensions that can be installed (repository of extensions).
Multiple repositories can be configured.
LNbits administrators should configure their instances to use repositories that they trust (like the lnbits-extensions one). Warning: extensions can have bugs or mallicious code, be carefull what you install!!
Manifest File
The manifest file is just a JSON
file that lists a collection of extensions that can be installed. This file is of the form:
{
"extensions": [...]
"repos": [...]
}
There are two ways to specify installable extensions:
Explicit Release
It goes under the extensions
object and it is of the form:
{
"id": "lnurlp",
"name": "LNURL Pay Links",
"version": 1,
"shortDescription": "Upgrade to version 111111111",
"icon": "receipt",
"details": "All charge names should be <code>111111111</code>. API panel must show: <br>",
"archive": "https://github.com/lnbits/lnbits-extensions/raw/main/new/lnurlp/1/lnurlp.zip",
"hash": "a22d02de6bf306a7a504cd344e032cc6d48837a1d4aeb569a55a57507bf9a43a",
"htmlUrl": "https://github.com/lnbits/lnbits-extensions/tree/main/new/lnurlp/1",
"infoNotification": "This is a very old version"
}
Fields Detailed Description
Field | Type | Description | |
---|---|---|---|
id | string | mandatory | The ID of the extension. Must be unique for each extensions. It is also used as the path in the URL. |
name | string | mandatory | User friendly name for the extension. It will be displayed on the installation page. |
version | string | mandatory | Version of this release. Semantic versoning is recommended. |
shortDescription | string | optional | A few words about the extension. It will be displayed on the installation page. |
icon | string | optional | quasar valid icon name |
details | string (html) | optional | Details about this particular release |
archive | string | mandatory | URL to the zip file that contains the extension source-code |
hash | string | mandatory | The hash (sha256 ) of the zip file. The extension will not be installed if the hash is incorrect. |
htmlUrl | string | optional | Link to the extension home page. |
infoNotification | string | optional | Users that have this release installed will see a info message for their extension. For example if the extension support will be terminated soon. |
criticalNotification | string | optional | Reserved for urgent notifications. The admin user will receive a message each time it visits the Install page. One example is if the extension has a critical bug. |
This mode has the advantage of strictly specifying what releases of an extension can be installed.
GitHub Repository
It goes under the repos
object and it is of the form:
{
"id": "withdraw",
"organisation": "lnbits",
"repository": "withdraw-extension"
}
Field | Type | Description |
---|---|---|
id | string | The ID of the extension. Must be unique for each extensions. It is also used as the path in the URL. |
organisation | string | The GitHub organisation (eg: lnbits ) |
repository | string | The GitHub repository name (eg: withdraw-extension ) |