From d8d898b20b2979865a699b085de727756ee48ae6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?dni=20=E2=9A=A1?= Date: Thu, 12 Sep 2024 08:02:47 +0200 Subject: [PATCH] feat: install lnbits.sh bash script (#2684) Co-authored-by: arcbtc --- docs/guide/installation.md | 37 ++++++++++++++------------ lnbits.sh | 54 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 74 insertions(+), 17 deletions(-) create mode 100644 lnbits.sh diff --git a/docs/guide/installation.md b/docs/guide/installation.md index 909e864d4..5bed99ad5 100644 --- a/docs/guide/installation.md +++ b/docs/guide/installation.md @@ -10,22 +10,17 @@ The following sections explain how to install LNbits using varions package manag Note that by default LNbits uses SQLite as its database, which is simple and effective but you can configure it to use PostgreSQL instead which is also described in a section below. -## Option 1 (recommended): poetry +## Option 1 (recommended): Poetry -Mininum poetry version has is ^1.2, but it is recommended to use latest poetry. (including OSX) -Make sure you have Python 3.9 or 3.10 installed. +It is recommended to use the latest version of Poetry. Make sure you have Python version 3.9 or higher installed. -### install python on ubuntu +### Verify Python version ```sh -# for making sure python 3.9 is installed, skip if installed. To check your installed version: python3 --version -sudo apt update -sudo apt install software-properties-common -sudo add-apt-repository ppa:deadsnakes/ppa -sudo apt install python3.9 python3.9-distutils +python3 --version ``` -### install poetry +### Install Poetry ```sh curl -sSL https://install.python-poetry.org | python3 - @@ -38,10 +33,6 @@ git clone https://github.com/lnbits/lnbits.git cd lnbits git checkout main -# Next command, you can exchange with python3.10 or newer versions. -# Identify your version with python3 --version and specify in the next line -# command is only needed when your default python is not ^3.9 or ^3.10 -poetry env use python3.9 poetry install --only main cp .env.example .env @@ -69,7 +60,19 @@ poetry install --only main # Start LNbits with `poetry run lnbits` ``` -## Option 2: Nix +## Option 2: Install script (on Debian/Ubuntu) + +```sh +wget https://raw.githubusercontent.com/lnbits/lnbits/main/lnbits.sh && +chmod +x lnbits.sh && +./lnbits.sh +``` + +Now visit `0.0.0.0:5000` to make a super-user account. + +`./lnbits.sh` can be used to run, but for more control `cd lnbits` and use `poetry run lnbits` (see previous option). + +## Option 3: Nix ```sh # Install nix. If you have installed via another manager, remove and use this install (from https://nixos.org/download) @@ -107,7 +110,7 @@ LNBITS_ADMIN_UI=true ./result/bin/lnbits --port 9000 SUPER_USER=be54db7f245346c8833eaa430e1e0405 LNBITS_ADMIN_UI=true ./result/bin/lnbits --port 9000 ``` -## Option 3: Docker +## Option 4: Docker use latest version from docker hub @@ -129,7 +132,7 @@ mkdir data docker run --detach --publish 5000:5000 --name lnbits --volume ${PWD}/.env:/app/.env --volume ${PWD}/data/:/app/data lnbits/lnbits ``` -## Option 4: Fly.io +## Option 5: Fly.io Fly.io is a docker container hosting platform that has a generous free tier. You can host LNbits for free on Fly.io for personal use. diff --git a/lnbits.sh b/lnbits.sh new file mode 100644 index 000000000..8e2c990fc --- /dev/null +++ b/lnbits.sh @@ -0,0 +1,54 @@ +#!/bin/bash + +# Check install has not already run +if [ ! -d lnbits/data ]; then + + # Update package list and install prerequisites non-interactively + sudo apt update -y + sudo apt install -y software-properties-common + + # Add the deadsnakes PPA repository non-interactively + sudo add-apt-repository -y ppa:deadsnakes/ppa + + # Install Python 3.9 and distutils non-interactively + sudo apt install -y python3.9 python3.9-distutils + + # Install Poetry + curl -sSL https://install.python-poetry.org | python3.9 - + + # Add Poetry to PATH for the current session + export PATH="/home/$USER/.local/bin:$PATH" + + if [ ! -d lnbits/wallets ]; then + # Clone the LNbits repository + git clone https://github.com/lnbits/lnbits.git + if [ $? -ne 0 ]; then + echo "Failed to clone the repository ... FAIL" + exit 1 + fi + # Ensure we are in the lnbits directory + cd lnbits || { echo "Failed to cd into lnbits ... FAIL"; exit 1; } + fi + + git checkout main + # Make data folder + mkdir data + + # Copy the .env.example to .env + cp .env.example .env + +elif [ ! -d lnbits/wallets ]; then + # cd into lnbits + cd lnbits || { echo "Failed to cd into lnbits ... FAIL"; exit 1; } +fi + +# Install the dependencies using Poetry +poetry env use python3.9 +poetry install --only main + +# Set environment variables for LNbits +export LNBITS_ADMIN_UI=true +export HOST=0.0.0.0 + +# Run LNbits +poetry run lnbits \ No newline at end of file