mirror of
https://github.com/lnbits/lnbits.git
synced 2025-06-29 02:01:35 +02:00
59
.github/workflows/tests.yml
vendored
59
.github/workflows/tests.yml
vendored
@ -68,11 +68,11 @@ jobs:
|
|||||||
uses: codecov/codecov-action@v3
|
uses: codecov/codecov-action@v3
|
||||||
with:
|
with:
|
||||||
file: ./coverage.xml
|
file: ./coverage.xml
|
||||||
pipenv-sqlite:
|
poetry-sqlite:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
python-version: [3.7, 3.8, 3.9]
|
python-version: [3.9]
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v2
|
- uses: actions/checkout@v2
|
||||||
- name: Set up Python ${{ matrix.python-version }}
|
- name: Set up Python ${{ matrix.python-version }}
|
||||||
@ -80,9 +80,56 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
python-version: ${{ matrix.python-version }}
|
python-version: ${{ matrix.python-version }}
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
|
env:
|
||||||
|
VIRTUAL_ENV: ./venv
|
||||||
|
PATH: ${{ env.VIRTUAL_ENV }}/bin:${{ env.PATH }}
|
||||||
run: |
|
run: |
|
||||||
pip install pipenv
|
python -m venv ${{ env.VIRTUAL_ENV }}
|
||||||
pipenv install --dev
|
./venv/bin/python -m pip install --upgrade pip
|
||||||
pipenv install importlib-metadata
|
./venv/bin/pip install -r requirements.txt
|
||||||
|
./venv/bin/pip install pytest pytest-asyncio pytest-cov requests mock
|
||||||
- name: Run tests
|
- name: Run tests
|
||||||
run: make test-pipenv
|
run: make test
|
||||||
|
poetry-postgres:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
services:
|
||||||
|
postgres:
|
||||||
|
image: postgres:latest
|
||||||
|
env:
|
||||||
|
POSTGRES_USER: postgres
|
||||||
|
POSTGRES_PASSWORD: postgres
|
||||||
|
POSTGRES_DB: postgres
|
||||||
|
ports:
|
||||||
|
# maps tcp port 5432 on service container to the host
|
||||||
|
- 5432:5432
|
||||||
|
options: >-
|
||||||
|
--health-cmd pg_isready
|
||||||
|
--health-interval 10s
|
||||||
|
--health-timeout 5s
|
||||||
|
--health-retries 5
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
python-version: [3.9]
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Set up Python ${{ matrix.python-version }}
|
||||||
|
uses: actions/setup-python@v2
|
||||||
|
with:
|
||||||
|
python-version: ${{ matrix.python-version }}
|
||||||
|
- name: Install dependencies
|
||||||
|
env:
|
||||||
|
VIRTUAL_ENV: ./venv
|
||||||
|
PATH: ${{ env.VIRTUAL_ENV }}/bin:${{ env.PATH }}
|
||||||
|
run: |
|
||||||
|
python -m venv ${{ env.VIRTUAL_ENV }}
|
||||||
|
./venv/bin/python -m pip install --upgrade pip
|
||||||
|
./venv/bin/pip install -r requirements.txt
|
||||||
|
./venv/bin/pip install pytest pytest-asyncio pytest-cov requests mock
|
||||||
|
- name: Run tests
|
||||||
|
env:
|
||||||
|
LNBITS_DATABASE_URL: postgres://postgres:postgres@0.0.0.0:5432/postgres
|
||||||
|
run: make test
|
||||||
|
- name: Upload coverage to Codecov
|
||||||
|
uses: codecov/codecov-action@v3
|
||||||
|
with:
|
||||||
|
file: ./coverage.xml
|
46
Pipfile
46
Pipfile
@ -1,46 +0,0 @@
|
|||||||
[[source]]
|
|
||||||
name = "pypi"
|
|
||||||
url = "https://pypi.org/simple"
|
|
||||||
verify_ssl = true
|
|
||||||
|
|
||||||
[requires]
|
|
||||||
python_version = "3.8"
|
|
||||||
|
|
||||||
[packages]
|
|
||||||
bitstring = "*"
|
|
||||||
cerberus = "*"
|
|
||||||
ecdsa = "*"
|
|
||||||
environs = "*"
|
|
||||||
lnurl = "==0.3.6"
|
|
||||||
loguru = "*"
|
|
||||||
pyscss = "*"
|
|
||||||
shortuuid = "*"
|
|
||||||
typing-extensions = "*"
|
|
||||||
httpx = "*"
|
|
||||||
sqlalchemy-aio = "*"
|
|
||||||
embit = "*"
|
|
||||||
pyqrcode = "*"
|
|
||||||
pypng = "*"
|
|
||||||
sqlalchemy = "==1.3.23"
|
|
||||||
psycopg2-binary = "*"
|
|
||||||
aiofiles = "*"
|
|
||||||
asyncio = "*"
|
|
||||||
fastapi = "*"
|
|
||||||
uvicorn = {extras = ["standard"], version = "*"}
|
|
||||||
sse-starlette = "*"
|
|
||||||
jinja2 = "==3.0.1"
|
|
||||||
pyngrok = "*"
|
|
||||||
secp256k1 = "==0.14.0"
|
|
||||||
cffi = "==1.15.0"
|
|
||||||
pycryptodomex = "*"
|
|
||||||
|
|
||||||
[dev-packages]
|
|
||||||
black = "==20.8b1"
|
|
||||||
mock = "*"
|
|
||||||
mypy = "*"
|
|
||||||
pytest = "*"
|
|
||||||
pytest-asyncio = "*"
|
|
||||||
pytest-cov = "*"
|
|
||||||
requests = "*"
|
|
||||||
types-mock = "*"
|
|
||||||
types-protobuf = "*"
|
|
1224
Pipfile.lock
generated
1224
Pipfile.lock
generated
File diff suppressed because it is too large
Load Diff
@ -8,7 +8,7 @@ nav_order: 1
|
|||||||
# Installation
|
# Installation
|
||||||
|
|
||||||
This guide has been moved to the [installation guide](../guide/installation.md).
|
This guide has been moved to the [installation guide](../guide/installation.md).
|
||||||
To install the developer packages, use `pipenv install --dev`.
|
To install the developer packages for running tests etc before pr'ing, use `./venv/bin/pip install pytest pytest-asyncio pytest-cov requests mock black mypy isort`.
|
||||||
|
|
||||||
## Notes:
|
## Notes:
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@ nav_order: 2
|
|||||||
|
|
||||||
# Basic installation
|
# Basic installation
|
||||||
|
|
||||||
You can choose between four package managers, `poetry`, `pipenv`, `venv` and `nix`.
|
You can choose between four package managers, `poetry`, `nix` and `venv`.
|
||||||
|
|
||||||
By default, LNbits will use SQLite as its database. You can also use PostgreSQL which is recommended for applications with a high load (see guide below).
|
By default, LNbits will use SQLite as its database. You can also use PostgreSQL which is recommended for applications with a high load (see guide below).
|
||||||
|
|
||||||
@ -33,35 +33,25 @@ poetry run lnbits
|
|||||||
# To change port/host pass 'poetry run lnbits --port 9000 --host 0.0.0.0'
|
# To change port/host pass 'poetry run lnbits --port 9000 --host 0.0.0.0'
|
||||||
```
|
```
|
||||||
|
|
||||||
## Option 2: pipenv
|
## Option 2: Nix
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
git clone https://github.com/lnbits/lnbits-legend.git
|
git clone https://github.com/lnbits/lnbits-legend.git
|
||||||
cd lnbits-legend/
|
cd lnbits-legend/
|
||||||
|
# Modern debian distros usually include Nix, however you can install with:
|
||||||
|
# 'sh <(curl -L https://nixos.org/nix/install) --daemon', or use setup here https://nixos.org/download.html#nix-verify-installation
|
||||||
|
|
||||||
sudo apt update && sudo apt install -y pipenv
|
nix build .#lnbits
|
||||||
pipenv install --dev
|
mkdir data
|
||||||
# pipenv --python 3.9 install --dev (if you wish to use a version of Python higher than 3.7)
|
|
||||||
pipenv shell
|
|
||||||
# pipenv --python 3.9 shell (if you wish to use a version of Python higher than 3.7)
|
|
||||||
|
|
||||||
# If any of the modules fails to install, try checking and upgrading your setupTool module
|
|
||||||
# pip install -U setuptools wheel
|
|
||||||
|
|
||||||
# install libffi/libpq in case "pipenv install" fails
|
|
||||||
# sudo apt-get install -y libffi-dev libpq-dev
|
|
||||||
|
|
||||||
mkdir data && cp .env.example .env
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Running the server
|
|
||||||
|
|
||||||
```sh
|
|
||||||
pipenv run python -m uvicorn lnbits.__main__:app --port 5000 --host 0.0.0.0
|
|
||||||
```
|
```
|
||||||
|
|
||||||
Add the flag `--reload` for development (includes hot-reload).
|
#### Running the server
|
||||||
|
|
||||||
|
```sh
|
||||||
|
# .env variables are currently passed when running
|
||||||
|
LNBITS_DATA_FOLDER=data LNBITS_BACKEND_WALLET_CLASS=LNbitsWallet LNBITS_ENDPOINT=https://legend.lnbits.com LNBITS_KEY=7b1a78d6c78f48b09a202f2dcb2d22eb ./result/bin/lnbits --port 9000
|
||||||
|
```
|
||||||
|
|
||||||
## Option 3: venv
|
## Option 3: venv
|
||||||
|
|
||||||
@ -84,26 +74,6 @@ mkdir data && cp .env.example .env
|
|||||||
|
|
||||||
If you want to host LNbits on the internet, run with the option `--host 0.0.0.0`.
|
If you want to host LNbits on the internet, run with the option `--host 0.0.0.0`.
|
||||||
|
|
||||||
## Option 4: Nix
|
|
||||||
|
|
||||||
```sh
|
|
||||||
git clone https://github.com/lnbits/lnbits-legend.git
|
|
||||||
cd lnbits-legend/
|
|
||||||
# Modern debian distros usually include Nix, however you can install with:
|
|
||||||
# 'sh <(curl -L https://nixos.org/nix/install) --daemon', or use setup here https://nixos.org/download.html#nix-verify-installation
|
|
||||||
|
|
||||||
nix build .#lnbits
|
|
||||||
mkdir data
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Running the server
|
|
||||||
|
|
||||||
```sh
|
|
||||||
# .env variables are currently passed when running
|
|
||||||
LNBITS_DATA_FOLDER=data LNBITS_BACKEND_WALLET_CLASS=LNbitsWallet LNBITS_ENDPOINT=https://legend.lnbits.com LNBITS_KEY=7b1a78d6c78f48b09a202f2dcb2d22eb ./result/bin/lnbits --port 9000
|
|
||||||
```
|
|
||||||
|
|
||||||
### Troubleshooting
|
### Troubleshooting
|
||||||
|
|
||||||
Problems installing? These commands have helped us install LNbits.
|
Problems installing? These commands have helped us install LNbits.
|
||||||
@ -112,10 +82,10 @@ Problems installing? These commands have helped us install LNbits.
|
|||||||
sudo apt install pkg-config libffi-dev libpq-dev
|
sudo apt install pkg-config libffi-dev libpq-dev
|
||||||
|
|
||||||
# if the secp256k1 build fails:
|
# if the secp256k1 build fails:
|
||||||
# if you used pipenv (option 1)
|
# if you used venv
|
||||||
pipenv install setuptools wheel
|
|
||||||
# if you used venv (option 2)
|
|
||||||
./venv/bin/pip install setuptools wheel
|
./venv/bin/pip install setuptools wheel
|
||||||
|
# if you used poetry
|
||||||
|
poetry add setuptools wheel
|
||||||
# build essentials for debian/ubuntu
|
# build essentials for debian/ubuntu
|
||||||
sudo apt install python3-dev gcc build-essential
|
sudo apt install python3-dev gcc build-essential
|
||||||
```
|
```
|
||||||
|
Reference in New Issue
Block a user