mirror of
https://github.com/fusion44/blitz_api.git
synced 2026-08-13 11:52:45 +02:00
feat: implement remote debugging on a remote machine (#207)
closes #206 * feat: implement remote debugging on a RaspiBlitz * docs: reverse the prep steps * fix: ruff line length warning
This commit is contained in:
parent
698654400c
commit
d0d1380eea
9 changed files with 669 additions and 510 deletions
12
.env_sample
12
.env_sample
|
|
@ -138,3 +138,15 @@ cln_grpc_port=9537
|
|||
|
||||
# Version of the platform. Ignored on platform Raspiblitz
|
||||
# np_version="v0.5.1beta"
|
||||
|
||||
# Enable remote debugging for the server.
|
||||
#
|
||||
# !!! Only enable this on development machines. !!!
|
||||
#
|
||||
# Note the package debugpy must be installed manually, if set to True
|
||||
# More info: https://github.com/fusion44/blitz_api/issues/206
|
||||
# Defaults to false
|
||||
# remote_debugging=false
|
||||
|
||||
# Defaults to 5678
|
||||
# remote_debugging_port=5678
|
||||
|
|
|
|||
19
.vscode/launch.json
vendored
19
.vscode/launch.json
vendored
|
|
@ -6,9 +6,26 @@
|
|||
"type": "python",
|
||||
"request": "launch",
|
||||
"module": "uvicorn",
|
||||
"args": ["app.main:app"],
|
||||
"args": [
|
||||
"app.main:app"
|
||||
],
|
||||
"jinja": true,
|
||||
"justMyCode": false
|
||||
},
|
||||
{
|
||||
"name": "Attach",
|
||||
"type": "python",
|
||||
"request": "attach",
|
||||
"pathMappings": [
|
||||
{
|
||||
"localRoot": "${workspaceFolder}",
|
||||
"remoteRoot": "."
|
||||
}
|
||||
],
|
||||
"connect": {
|
||||
"host": "192.168.1.49",
|
||||
"port": 5678
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
|||
9
Makefile
9
Makefile
|
|
@ -48,3 +48,12 @@ generate-client-libs:
|
|||
|
||||
docker-regtest-image:
|
||||
docker build -f Dockerfile.regtest -t blitz_api .
|
||||
|
||||
remote-debugging-help:
|
||||
bash scripts/remote_debugging.sh help
|
||||
|
||||
enable-remote-debugging:
|
||||
bash scripts/remote_debugging.sh enable
|
||||
|
||||
disable-remote-debugging:
|
||||
bash scripts/remote_debugging.sh disable
|
||||
|
|
|
|||
32
README.md
32
README.md
|
|
@ -21,6 +21,9 @@ This software is still considered BETA and may contain bugs. Don't expose it to
|
|||
- [Development](#development)
|
||||
- [Installation](#installation-1)
|
||||
- [Sync changes to a RaspiBlitz](#sync-changes-to-a-raspiblitz)
|
||||
- [Debugging code running on a remote machine via VSCode](#debugging-code-running-on-a-remote-machine-via-vscode)
|
||||
- [Prepare local machine](#prepare-local-machine)
|
||||
- [Prepare the RaspiBlitz](#prepare-the-raspiblitz)
|
||||
- [Unit / Integration testing](#unit--integration-testing)
|
||||
- [Run the tests with pytest](#run-the-tests-with-pytest)
|
||||
- [Run tests and generate a coverage](#run-tests-and-generate-a-coverage)
|
||||
|
|
@ -138,6 +141,35 @@ and then copy the JWT Auth string returned to `Authorize` in the top section of
|
|||
|
||||
*You can also now test the RaspiBlitz WebUI against the API by running it locally on your dev laptop when you configure it to use the backend API of your RaspiBlitz.*
|
||||
|
||||
### Debugging code running on a remote machine via VSCode
|
||||
To debug Python code that is running on another machine, like a RaspiBlitz, follow these steps.
|
||||
|
||||
#### Prepare local machine
|
||||
* run `make install-dev`.
|
||||
* open the `.vscode/launch.json` file and change the host to your remote machines IP
|
||||
* ```json
|
||||
"connect": {
|
||||
"host": "192.168.1.49",
|
||||
"port": 5678
|
||||
}
|
||||
```
|
||||
* open your `.env_sample` file and replace the line `# remote_debugging=false` with `remote_debugging=true`
|
||||
<details>
|
||||
This is necessary because we're going to synchronize the local source with the remote node. The blitz_api service will be restarted on the remote node. Any changes to the `.env' file will be overwritten by the setup script on the Blitz. This script will use the `.env_sample` file as a base and fill it with data. This way we can trick the Blitz into enabling this setting every time we change something without the Blitz explicitly supporting it.
|
||||
</details>
|
||||
* make sure you follow the steps in the [Sync changes to a RaspiBlitz](#sync-changes-to-a-raspiblitz) section
|
||||
* execute `make sync-to-blitz`
|
||||
* Make sure to chose `Attach` in the RUN AND DEBUG windows of VSCode
|
||||
* Hit F5 and voila you should be connected to your RaspiBlitz and debug code remotely
|
||||
|
||||
#### Prepare the RaspiBlitz
|
||||
* SSH into the Blitz, and run `sudo -i -u blitzapi`
|
||||
* `cd blitz_api`
|
||||
* Finally run `make enable-remote-debugging`
|
||||
|
||||
|
||||
Refer to [this documentation](https://code.visualstudio.com/docs/python/debugging#_debugging-by-attaching-over-a-network-connection) to learn how to setup VSCode correctly.
|
||||
|
||||
### Unit / Integration testing
|
||||
|
||||
Make sure to include tests for important pieces of submitted code.
|
||||
|
|
|
|||
19
app/main.py
19
app/main.py
|
|
@ -1,4 +1,5 @@
|
|||
import asyncio
|
||||
import sys
|
||||
|
||||
from decouple import config as dconfig
|
||||
from fastapi import FastAPI, Request
|
||||
|
|
@ -47,6 +48,24 @@ from app.system.service import get_hardware_info, register_hardware_info_gathere
|
|||
configure_logger()
|
||||
|
||||
|
||||
remote_debugging = dconfig("remote_debugging", cast=bool, default=False)
|
||||
if remote_debugging:
|
||||
logger.warning(
|
||||
(
|
||||
"Remote debugging is enabled, this can be a security issue. "
|
||||
"Only enable on development machines."
|
||||
)
|
||||
)
|
||||
remote_debugging_port = dconfig("remote_debugging_port", cast=int, default=5678)
|
||||
|
||||
try:
|
||||
import debugpy
|
||||
except ImportError:
|
||||
logger.error("Remote debugging is enabled, but debugpy is not installed.")
|
||||
sys.exit(1)
|
||||
|
||||
debugpy.listen(("0.0.0.0", remote_debugging_port))
|
||||
|
||||
node_type = dconfig("ln_node").lower()
|
||||
if node_type == "":
|
||||
node_type = "none"
|
||||
|
|
|
|||
580
poetry.lock
generated
580
poetry.lock
generated
File diff suppressed because it is too large
Load diff
|
|
@ -37,6 +37,7 @@ pre-commit = "2.20.0"
|
|||
isort = "5.10.1"
|
||||
pytest-asyncio = "^0.19.0"
|
||||
ruff = "^0.0.267"
|
||||
debugpy = "^1.6.7"
|
||||
|
||||
[build-system]
|
||||
requires = ["poetry-core>=1.0.0"]
|
||||
|
|
|
|||
399
requirements.txt
399
requirements.txt
|
|
@ -95,15 +95,15 @@ aioredis==2.0.1 ; python_version >= "3.9" and python_version < "4.0" \
|
|||
aiosignal==1.3.1 ; python_version >= "3.9" and python_version < "4.0" \
|
||||
--hash=sha256:54cd96e15e1649b75d6c87526a6ff0b6c1b0dd3459f43d9ca11d48c339b68cfc \
|
||||
--hash=sha256:f8376fb07dd1e86a584e4fcdec80b36b7f81aac666ebc724e2c090300dd83b17
|
||||
anyio==3.6.2 ; python_version >= "3.9" and python_version < "4.0" \
|
||||
--hash=sha256:25ea0d673ae30af41a0c442f81cf3b38c7e79fdc7b60335a4c14e05eb0947421 \
|
||||
--hash=sha256:fbbe32bd270d2a2ef3ed1c5d45041250284e31fc0a4df4a5a6071842051a51e3
|
||||
anyio==3.7.0 ; python_version >= "3.9" and python_version < "4.0" \
|
||||
--hash=sha256:275d9973793619a5374e1c89a4f4ad3f4b0a5510a2b5b939444bee8f4c4d37ce \
|
||||
--hash=sha256:eddca883c4175f14df8aedce21054bfca3adb70ffe76a9f607aef9d7fa2ea7f0
|
||||
async-timeout==4.0.2 ; python_version >= "3.9" and python_version < "4.0" \
|
||||
--hash=sha256:2163e1640ddb52b7a8c80d0a67a08587e5d245cc9c553a74a847056bc2976b15 \
|
||||
--hash=sha256:8ca1e4fcf50d07413d66d1a5e416e42cfdf5851c981d679a09851a6853383b3c
|
||||
attrs==22.2.0 ; python_version >= "3.9" and python_version < "4.0" \
|
||||
--hash=sha256:29e95c7f6778868dbd49170f98f8818f78f3dc5e0e37c0b1f474e3561b240836 \
|
||||
--hash=sha256:c9227bfc2f01993c03f68db37d1d15c9690188323c067c641f1a35ca58185f99
|
||||
attrs==23.1.0 ; python_version >= "3.9" and python_version < "4.0" \
|
||||
--hash=sha256:1f28b4522cdc2fb4256ac1a020c78acf9cba2c6b461ccd2c126f3aa8e8335d04 \
|
||||
--hash=sha256:6279836d581513a26f1bf235f9acd333bc9115683f14f7e8fae46c98fc50e015
|
||||
cchardet==2.1.7 ; python_version >= "3.9" and python_version < "4.0" \
|
||||
--hash=sha256:0b859069bbb9d27c78a2c9eb997e6f4b738db2d7039a03f8792b4058d61d1109 \
|
||||
--hash=sha256:228d2533987c450f39acf7548f474dd6814c446e9d6bd228e8f1d9a2d210f10b \
|
||||
|
|
@ -134,9 +134,9 @@ cchardet==2.1.7 ; python_version >= "3.9" and python_version < "4.0" \
|
|||
--hash=sha256:f16517f3697569822c6d09671217fdeab61dfebc7acb5068634d6b0728b86c0b \
|
||||
--hash=sha256:f86e0566cb61dc4397297696a4a1b30f6391b50bc52b4f073507a48466b6255a \
|
||||
--hash=sha256:fdac1e4366d0579fff056d1280b8dc6348be964fda8ebb627c0269e097ab37fa
|
||||
certifi==2022.12.7 ; python_version >= "3.9" and python_version < "4" \
|
||||
--hash=sha256:35824b4c3a97115964b408844d64aa14db1cc518f6562e8d7261699d1350a9e3 \
|
||||
--hash=sha256:4ad3232f5e926d6718ec31cfc1fcadfde020920e278684144551c91769c7bc18
|
||||
certifi==2023.5.7 ; python_version >= "3.9" and python_version < "4" \
|
||||
--hash=sha256:0f0d56dc5a6ad56fd4ba36484d6cc34451e1c6548c61daad8c320169f91eddc7 \
|
||||
--hash=sha256:c6c2e98f5c7869efca1f8916fed228dd91539f9f1b444c314c06eef02980c716
|
||||
cffi==1.15.1 ; python_version >= "3.9" and python_version < "4.0" and implementation_name == "pypy" \
|
||||
--hash=sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5 \
|
||||
--hash=sha256:03425bdae262c76aad70202debd780501fabeaca237cdfddc008987c0e0f59ef \
|
||||
|
|
@ -208,12 +208,15 @@ charset-normalizer==2.1.1 ; python_version >= "3.9" and python_version < "4" \
|
|||
click==8.1.3 ; python_version >= "3.9" and python_version < "4.0" \
|
||||
--hash=sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e \
|
||||
--hash=sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48
|
||||
colorama==0.4.6 ; python_version >= "3.9" and python_version < "4.0" and sys_platform == "win32" or python_version >= "3.9" and python_version < "4.0" and platform_system == "Windows" \
|
||||
colorama==0.4.6 ; python_version >= "3.9" and python_version < "4.0" and (sys_platform == "win32" or platform_system == "Windows") \
|
||||
--hash=sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44 \
|
||||
--hash=sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6
|
||||
deepdiff==5.8.1 ; python_version >= "3.9" and python_version < "4.0" \
|
||||
--hash=sha256:8d4eb2c4e6cbc80b811266419cb71dd95a157094a3947ccf937a94d44943c7b8 \
|
||||
--hash=sha256:e9aea49733f34fab9a0897038d8f26f9d94a97db1790f1b814cced89e9e0d2b7
|
||||
exceptiongroup==1.1.1 ; python_version >= "3.9" and python_version < "3.11" \
|
||||
--hash=sha256:232c37c63e4f682982c8b6459f33a8981039e5fb8756b2074364e5055c498c9e \
|
||||
--hash=sha256:d484c3090ba2889ae2928419117447a14daf3c1231d5e30d0aae34f354f01785
|
||||
fastapi-plugins==0.11.0 ; python_version >= "3.9" and python_version < "4.0" \
|
||||
--hash=sha256:bae584ba20159e6fce0b5951f949d07a8854b8841f1e9e6b42a22dade78883fb \
|
||||
--hash=sha256:d1d64c20e285dca3bf439c92278f6ad6f073fbd7c6b4eac8f0d6f2128a641278
|
||||
|
|
@ -393,96 +396,96 @@ grpcio==1.50.0 ; python_version >= "3.9" and python_version < "4.0" \
|
|||
h11==0.14.0 ; python_version >= "3.9" and python_version < "4.0" \
|
||||
--hash=sha256:8f19fbbe99e72420ff35c00b27a34cb9937e902a8b810e2c88300c6f0a3b699d \
|
||||
--hash=sha256:e3fe4ac4b851c468cc8363d500db52c2ead036020723024a109d37346efaa761
|
||||
hiredis==2.2.2 ; python_version >= "3.9" and python_version < "4.0" \
|
||||
--hash=sha256:01e2e588392b5fdcc3a6aa0eb62a2eb2a142f829082fa4c3354228029d3aa1ce \
|
||||
--hash=sha256:02b9f928dc6cd43ed0f0ffc1c75fb209fb180f004b7e2e19994805f998d247aa \
|
||||
--hash=sha256:03ab1d545794bb0e09f3b1e2c8b3adcfacd84f6f2d402bfdcd441a98c0e9643c \
|
||||
--hash=sha256:03ab760fc96e0c5d36226eb727f30645bf6a53c97f14bfc0a4d0401bfc9b8af7 \
|
||||
--hash=sha256:03dfb4ab7a2136ce1be305592553f102e1bd91a96068ab2778e3252aed20d9bc \
|
||||
--hash=sha256:0fc1f9a9791d028b2b8afa318ccff734c7fc8861d37a04ca9b3d27c9b05f9718 \
|
||||
--hash=sha256:10dc34854e9acfb3e7cc4157606e2efcb497b1c6fca07bd6c3be34ae5e413f13 \
|
||||
--hash=sha256:14dfccf4696d75395c587a5dafafb4f7aa0a5d55309341d10bc2e7f1eaa20771 \
|
||||
--hash=sha256:1570fe4f93bc1ea487fb566f2b863fd0ed146f643a4ea31e4e07036db9e0c7f8 \
|
||||
--hash=sha256:18103090b8eda9c529830e26594e88b0b1472055785f3ed29b8adc694d03862a \
|
||||
--hash=sha256:1b084fbc3e69f99865242f8e1ccd4ea2a34bf6a3983d015d61133377526c0ce2 \
|
||||
--hash=sha256:1eb39b34d15220095dc49ad1e1082580d35cd3b6d9741def52988b5075e4ff03 \
|
||||
--hash=sha256:1f1c44242c18b1f02e6d1162f133d65d00e09cc10d9165dccc78662def72abc2 \
|
||||
--hash=sha256:20cfbc469400669a5999aa34ccba3872a1e34490ec3d5c84e8c0752c27977b7c \
|
||||
--hash=sha256:20ecbf87aac4f0f33f9c55ae15cb73b485d256c57518c590b7d0c9c152150632 \
|
||||
--hash=sha256:24301ca2bf9b2f843b4c3015c90f161798fa3bbc5b95fd494785751b137dbbe2 \
|
||||
--hash=sha256:2a355aff8dfa02ebfe67f0946dd706e490bddda9ea260afac9cdc43942310c53 \
|
||||
--hash=sha256:2c18b00a382546e19bcda8b83dcca5b6e0dbc238d235723434405f48a18e8f77 \
|
||||
--hash=sha256:2d1ba0799f3487294f72b2157944d5c3a4fb33c99e2d495d63eab98c7ec7234b \
|
||||
--hash=sha256:2ddc573809ca4374da1b24b48604f34f3d5f0911fcccfb1c403ff8d8ca31c232 \
|
||||
--hash=sha256:2e10a66680023bd5c5a3d605dae0844e3dde60eac5b79e39f51395a2aceaf634 \
|
||||
--hash=sha256:2e2f0ce3e8ab1314a52f562386220f6714fd24d7968a95528135ad04e88cc741 \
|
||||
--hash=sha256:2f220b71235d2deab1b4b22681c8aee444720d973b80f1b86a4e2a85f6bcf1e1 \
|
||||
--hash=sha256:339af17bb9817f8acb127247c79a99cad63db6738c0fb2aec9fa3d4f35d2a250 \
|
||||
--hash=sha256:359e662324318baadb768d3c4ade8c4bdcfbb313570eb01e15d75dc5db781815 \
|
||||
--hash=sha256:3645590b9234cafd21c8ecfbf252ad9aa1d67629f4bdc98ba3627f48f8f7b5aa \
|
||||
--hash=sha256:3a5fefac31c84143782ec1ebc323c04e733a6e4bfebcef9907a34e47a465e648 \
|
||||
--hash=sha256:40ff3f1ec3a4046732e9e41df08dcb1a559847196755d295d43e32528aae39e6 \
|
||||
--hash=sha256:449e18506d22af40977abd0f5a8979f57f88d4562fe591478a3438d76a15133d \
|
||||
--hash=sha256:4997f55e1208af95a8fbd0fa187b04c672fcec8f66e49b9ab7fcc45cc1657dc4 \
|
||||
--hash=sha256:4cb992e3f9753c5a0c637f333c2010d1ad702aebf2d730ee4d484f32b19bae97 \
|
||||
--hash=sha256:4ee9fe7cef505e8d925c70bebcc16bfab12aa7af922f948346baffd4730f7b00 \
|
||||
--hash=sha256:5155bc1710df8e21aa48c9b2f4d4e13e4987e1efff363a1ef9c84fae2cc6c145 \
|
||||
--hash=sha256:544d52fde3a8dac7854673eac20deca05214758193c01926ffbb0d57c6bf4ffe \
|
||||
--hash=sha256:55c7e9a9e05f8c0555bfba5c16d98492f8b6db650e56d0c35cc28aeabfc86020 \
|
||||
--hash=sha256:57f73aa04d0b70ff436fb35fa7ea2b796aa7addbd7ebb8d1aa1f3d1b3e4439f1 \
|
||||
--hash=sha256:5dac177a6ab8b4eb4d5e74978c29eef7cc9eef14086f814cb3893f7465578044 \
|
||||
--hash=sha256:5f2cfd323f83985f2bed6ed013107873275025af270485b7d04c338bfb47bd14 \
|
||||
--hash=sha256:632d79fd02b03e8d9fbaebbe40bfe34b920c5d0a9c0ef6270752e0db85208175 \
|
||||
--hash=sha256:674f296c3c89cb53f97aa9ba2508d3f360ad481b9e0c0e3a59b342a15192adaf \
|
||||
--hash=sha256:688b9b7458b4f3f452fea6ed062c04fa1fd9a69d9223d95c6cb052581aba553b \
|
||||
--hash=sha256:6e6ea7532221c97fa6d79f7d19d452cd9d1141d759c54279cc4774ce24728f13 \
|
||||
--hash=sha256:75349f7c8f77eb0fd33ede4575d1e5b0a902a8176a436bf03293d7fec4bd3894 \
|
||||
--hash=sha256:82f869ca44bcafa37cd71cfa1429648fa354d6021dcd72f03a2f66bcb339c546 \
|
||||
--hash=sha256:831461abe5b63e73719621a5f31d8fc175528a05dc09d5a8aa8ef565d6deefa4 \
|
||||
--hash=sha256:855d258e7f1aee3d7fbd5b1dc87790b1b5016e23d369a97b934a25ae7bc0171f \
|
||||
--hash=sha256:8753c561b37cccbda7264c9b4486e206a6318c18377cd647beb3aa41a15a6beb \
|
||||
--hash=sha256:8c3a6998f6f88d7ca4d082fd26525074df13162b274d7c64034784b6fdc56666 \
|
||||
--hash=sha256:8d43a7bba66a800279e33229a206861be09c279e261eaa8db4824e59465f4848 \
|
||||
--hash=sha256:8e16dc949cc2e9c5fbcd08de05b5fb61b89ff65738d772863c5c96248628830e \
|
||||
--hash=sha256:9873898e26e50cd41415e9d1ea128bfdb60eb26abb4f5be28a4500fd7834dc0c \
|
||||
--hash=sha256:990916e8b0b4eedddef787e73549b562f8c9e73a7fea82f9b8ff517806774ad0 \
|
||||
--hash=sha256:99350e89f52186146938bdba0b9c6cd68802c20346707d6ca8366f2d69d89b2f \
|
||||
--hash=sha256:9c270bd0567a9c60673284e000132f603bb4ecbcd707567647a68f85ef45c4d4 \
|
||||
--hash=sha256:9e0f444d9062f7e487ef42bab2fb2e290f1704afcbca48ad3ec23de63eef0fda \
|
||||
--hash=sha256:9eb14339e399554bb436cc4628e8aaa3943adf7afcf34aba4cbd1e3e6b9ec7ec \
|
||||
--hash=sha256:a06d0dd84f10be6b15a92edbca2490b64917280f66d8267c63de99b6550308ad \
|
||||
--hash=sha256:a1ce725542133dbdda9e8704867ef52651886bd1ef568c6fd997a27404381985 \
|
||||
--hash=sha256:a32a4474f7a4abdea954f3365608edee3f90f1de9fa05b81d214d4cad04c718a \
|
||||
--hash=sha256:a7114961ed78d708142f6c6eb1d2ed65dc3da4b5ae8a4660ad889dd7fc891971 \
|
||||
--hash=sha256:a89f5afb9827eab07b9c8c585cd4dc95e5232c727508ae2c935d09531abe9e33 \
|
||||
--hash=sha256:a9b306f4e870747eea8b008dcba2e9f1e4acd12b333a684bc1cc120e633a280e \
|
||||
--hash=sha256:aa90a5ee7a7f30c3d72d3513914b8f51f953a71b8cbd52a241b6db6685e55645 \
|
||||
--hash=sha256:ac15e7e1efca51b4695e540c80c328accb352c9608da7c2df82d1fa1a3c539ef \
|
||||
--hash=sha256:ac7f8d68826f95a3652e44b0c12bfa74d3aa6531d47d5dbe6a2fbfc7979bc20f \
|
||||
--hash=sha256:b083a69e158138ffa95740ff6984d328259387b5596908021b3ccb946469ff66 \
|
||||
--hash=sha256:b11960237a3025bf248135e5b497dc4923e83d137eb798fbfe78b40d57c4b156 \
|
||||
--hash=sha256:b5d290f3d8f7a05c4adbe6c355055b87c7081bfa1eccd1ae5491216307ee5f53 \
|
||||
--hash=sha256:ba6123ff137275e2f4c31fc74b93813fcbb79160d43f5357163e09638c7743de \
|
||||
--hash=sha256:bae004a0b978bf62e38d0eef5ab9156f8101d01167b3ca7054bd0994b773e917 \
|
||||
--hash=sha256:c24d856e13c02bd9d28a189e47be70cbba6f2c2a4bd85a8cc98819db9e7e3e06 \
|
||||
--hash=sha256:c446a2007985ae49c2ecd946dd819dea72b931beb5f647ba08655a1a1e133fa8 \
|
||||
--hash=sha256:c73aa295c5369135247ff63aa1fbb116067485d0506cd787cc0c868e72bbee55 \
|
||||
--hash=sha256:c9488ffb10acc6b121c498875278b0a6715d193742dc92d21a281712169ac06d \
|
||||
--hash=sha256:c95be6f20377d5995ef41a98314542e194d2dc9c2579d8f130a1aea78d48fd42 \
|
||||
--hash=sha256:ccc33d87866d213f84f857a98f69c13f94fbf99a3304e328869890c9e49c8d65 \
|
||||
--hash=sha256:d1acb7c957e5343303b3862947df3232dc7395da320b3b9ae076dfaa56ad59dc \
|
||||
--hash=sha256:d8bc89c7e33fecb083a199ade0131a34d20365a8c32239e218da57290987ca9a \
|
||||
--hash=sha256:d995846acc8e3339fb7833cd19bf6f3946ff5157c8488a4df9c51cd119a36870 \
|
||||
--hash=sha256:e4e2da61a04251121cb551f569c3250e6e27e95f2a80f8351c36822eda1f5d2b \
|
||||
--hash=sha256:e4ec57886f20f4298537cb1ab9dbda98594fb8d7c724c5fbf9a4b55329fd4a63 \
|
||||
--hash=sha256:e61c22fda5fc25d31bbced24a8322d33c5cb8cad9ba698634c16edb5b3e79a91 \
|
||||
--hash=sha256:e7e61ab75b851aac2d6bc634d03738a242a6ef255a44178437b427c5ebac0a87 \
|
||||
--hash=sha256:e86c800c6941698777fc58419216a66a7f76504f1cea72381d2ee206888e964d \
|
||||
--hash=sha256:e97d4e650b8d933a1229f341db92b610fc52b8d752490235977b63b81fbbc2cb \
|
||||
--hash=sha256:eaff526c2fed31c971b0fa338a25237ae5513550ef75d0b85b9420ec778cca45 \
|
||||
--hash=sha256:ed44b3c711cecde920f238ac35f70ac08744f2079b6369655856e43944464a72 \
|
||||
--hash=sha256:f1f1efbe9cc29a3af39cf7eed27225f951aed3f48a1149c7fb74529fb5ab86d4 \
|
||||
--hash=sha256:fd0ca35e2cf44866137cbb5ae7e439fab18a0b0e0e1cf51d45137622d59ec012
|
||||
hiredis==2.2.3 ; python_version >= "3.9" and python_version < "4.0" \
|
||||
--hash=sha256:071c5814b850574036506a8118034f97c3cbf2fe9947ff45a27b07a48da56240 \
|
||||
--hash=sha256:08415ea74c1c29b9d6a4ca3dd0e810dc1af343c1d1d442e15ba133b11ab5be6a \
|
||||
--hash=sha256:126623b03c31cb6ac3e0d138feb6fcc36dd43dd34fc7da7b7a0c38b5d75bc896 \
|
||||
--hash=sha256:14824e457e4f5cda685c3345d125da13949bcf3bb1c88eb5d248c8d2c3dee08f \
|
||||
--hash=sha256:15c2a551f3b8a26f7940d6ee10b837810201754b8d7e6f6b1391655370882c5a \
|
||||
--hash=sha256:17e938d9d3ee92e1adbff361706f1c36cc60eeb3e3eeca7a3a353eae344f4c91 \
|
||||
--hash=sha256:1cadb0ac7ba3babfd804e425946bec9717b320564a1390f163a54af9365a720a \
|
||||
--hash=sha256:1d274d5c511dfc03f83f997d3238eaa9b6ee3f982640979f509373cced891e98 \
|
||||
--hash=sha256:20f509e3a1a20d6e5f5794fc37ceb21f70f409101fcfe7a8bde783894d51b369 \
|
||||
--hash=sha256:227c5b4bcb60f89008c275d596e4a7b6625a6b3c827b8a66ae582eace7051f71 \
|
||||
--hash=sha256:232d0a70519865741ba56e1dfefd160a580ae78c30a1517bad47b3cf95a3bc7d \
|
||||
--hash=sha256:2443659c76b226267e2a04dbbb21bc2a3f91aa53bdc0c22964632753ae43a247 \
|
||||
--hash=sha256:2d7e459fe7313925f395148d36d9b7f4f8dac65be06e45d7af356b187cef65fc \
|
||||
--hash=sha256:2fb9300959a0048138791f3d68359d61a788574ec9556bddf1fec07f2dbc5320 \
|
||||
--hash=sha256:334f2738700b20faa04a0d813366fb16ed17287430a6b50584161d5ad31ca6d7 \
|
||||
--hash=sha256:33a94d264e6e12a79d9bb8af333b01dc286b9f39c99072ab5fef94ce1f018e17 \
|
||||
--hash=sha256:33bc4721632ef9708fa44e5df0066053fccc8e65410a2c48573192517a533b48 \
|
||||
--hash=sha256:33ee3ea5cad3a8cb339352cd230b411eb437a2e75d7736c4899acab32056ccdb \
|
||||
--hash=sha256:3753df5f873d473f055e1f8837bfad0bd3b277c86f3c9bf058c58f14204cd901 \
|
||||
--hash=sha256:3759f4789ae1913b7df278dfc9e8749205b7a106f888cd2903d19461e24a7697 \
|
||||
--hash=sha256:3b7fe075e91b9d9cff40eba4fb6a8eff74964d3979a39be9a9ef58b1b4cb3604 \
|
||||
--hash=sha256:3bf4b5bae472630c229518e4a814b1b68f10a3d9b00aeaec45f1a330f03a0251 \
|
||||
--hash=sha256:3f006c28c885deb99b670a5a66f367a175ab8955b0374029bad7111f5357dcd4 \
|
||||
--hash=sha256:3f5446068197b35a11ccc697720c41879c8657e2e761aaa8311783aac84cef20 \
|
||||
--hash=sha256:3fa6811a618653164f918b891a0fa07052bd71a799defa5c44d167cac5557b26 \
|
||||
--hash=sha256:46525fbd84523cac75af5bf524bc74aaac848beaf31b142d2df8a787d9b4bbc4 \
|
||||
--hash=sha256:477c34c4489666dc73cb5e89dafe2617c3e13da1298917f73d55aac4696bd793 \
|
||||
--hash=sha256:4b3e974ad15eb32b1f537730dea70b93a4c3db7b026de3ad2b59da49c6f7454d \
|
||||
--hash=sha256:4c3b8be557e08b234774925622e196f0ee36fe4eab66cd19df934d3efd8f3743 \
|
||||
--hash=sha256:4e3e3e31423f888d396b1fc1f936936e52af868ac1ec17dd15e3eeba9dd4de24 \
|
||||
--hash=sha256:4e43e2b5acaad09cf48c032f7e4926392bb3a3f01854416cf6d82ebff94d5467 \
|
||||
--hash=sha256:4ed68a3b1ccb4313d2a42546fd7e7439ad4745918a48b6c9bcaa61e1e3e42634 \
|
||||
--hash=sha256:4f674e309cd055ee7a48304ceb8cf43265d859faf4d7d01d270ce45e976ae9d3 \
|
||||
--hash=sha256:50171f985e17970f87d5a29e16603d1e5b03bdbf5c2691a37e6c912942a6b657 \
|
||||
--hash=sha256:51341e70b467004dcbec3a6ce8c478d2d6241e0f6b01e4c56764afd5022e1e9d \
|
||||
--hash=sha256:5a4bcef114fc071d5f52c386c47f35aae0a5b43673197b9288a15b584da8fa3a \
|
||||
--hash=sha256:5a5c8019ff94988d56eb49b15de76fe83f6b42536d76edeb6565dbf7fe14b973 \
|
||||
--hash=sha256:5cda592405bbd29d53942e0389dc3fa77b49c362640210d7e94a10c14a677d4d \
|
||||
--hash=sha256:5e6674a017629284ef373b50496d9fb1a89b85a20a7fa100ecd109484ec748e5 \
|
||||
--hash=sha256:5e7bb4dd524f50b71c20ef5a12bd61da9b463f8894b18a06130942fe31509881 \
|
||||
--hash=sha256:60c4e3c258eafaab21b174b17270a0cc093718d61cdbde8c03f85ec4bf835343 \
|
||||
--hash=sha256:61995eb826009d99ed8590747bc0da683a5f4fbb4faa8788166bf3810845cd5c \
|
||||
--hash=sha256:61a72e4a523cdfc521762137559c08dfa360a3caef63620be58c699d1717dac1 \
|
||||
--hash=sha256:69536b821dd1bc78058a6e7541743f8d82bf2d981b91280b14c4daa6cdc7faba \
|
||||
--hash=sha256:6ccdcb635dae85b006592f78e32d97f4bc7541cb27829d505f9c7fefcef48298 \
|
||||
--hash=sha256:6f88cafe46612b6fa68e6dea49e25bebf160598bba00101caa51cc8c1f18d597 \
|
||||
--hash=sha256:6f969edc851efe23010e0f53a64269f2629a9364135e9ec81c842e8b2277d0c1 \
|
||||
--hash=sha256:77924b0d32fd1f493d3df15d9609ddf9d94c31a364022a6bf6b525ce9da75bea \
|
||||
--hash=sha256:7df645b6b7800e8b748c217fbd6a4ca8361bcb9a1ae6206cc02377833ec8a1aa \
|
||||
--hash=sha256:7e17d04ea58ab8cf3f2dc52e875db16077c6357846006780086fff3189fb199d \
|
||||
--hash=sha256:7f2b34a6444b8f9c1e9f84bd2c639388e5d14f128afd14a869dfb3d9af893aa2 \
|
||||
--hash=sha256:818dfd310aa1020a13cd08ee48e116dd8c3bb2e23b8161f8ac4df587dd5093d7 \
|
||||
--hash=sha256:89a258424158eb8b3ed9f65548d68998da334ef155d09488c5637723eb1cd697 \
|
||||
--hash=sha256:8eceffca3941775b646cd585cd19b275d382de43cc3327d22f7c75d7b003d481 \
|
||||
--hash=sha256:8f280ab4e043b089777b43b4227bdc2035f88da5072ab36588e0ccf77d45d058 \
|
||||
--hash=sha256:8f9dbe12f011a9b784f58faecc171d22465bb532c310bd588d769ba79a59ef5a \
|
||||
--hash=sha256:9076ce8429785c85f824650735791738de7143f61f43ae9ed83e163c0ca0fa44 \
|
||||
--hash=sha256:95d2305fd2a7b179cacb48b10f618872fc565c175f9f62b854e8d1acac3e8a9e \
|
||||
--hash=sha256:96d9ea6c8d4cbdeee2e0d43379ce2881e4af0454b00570677c59f33f2531cd38 \
|
||||
--hash=sha256:9944a2cac25ffe049a7e89f306e11b900640837d1ef38d9be0eaa4a4e2b73a52 \
|
||||
--hash=sha256:9a1a80a8fa767f2fdc3870316a54b84fe9fc09fa6ab6a2686783de6a228a4604 \
|
||||
--hash=sha256:9cd32326dfa6ce87edf754153b0105aca64486bebe93b9600ccff74fa0b224df \
|
||||
--hash=sha256:9f4a65276f6ecdebe75f2a53f578fbc40e8d2860658420d5e0611c56bbf5054c \
|
||||
--hash=sha256:a286ded34eb16501002e3713b3130c987366eee2ba0d58c33c72f27778e31676 \
|
||||
--hash=sha256:a2df98f5e071320c7d84e8bd07c0542acdd0a7519307fc31774d60e4b842ec4f \
|
||||
--hash=sha256:a7205497d7276a81fe92951a29616ef96562ed2f91a02066f72b6f93cb34b40e \
|
||||
--hash=sha256:aa17a3b22b3726d54d7af20394f65d4a1735a842a4e0f557dc67a90f6965c4bc \
|
||||
--hash=sha256:af33f370be90b48bbaf0dab32decbdcc522b1fa95d109020a963282086518a8e \
|
||||
--hash=sha256:b17baf702c6e5b4bb66e1281a3efbb1d749c9d06cdb92b665ad81e03118f78fc \
|
||||
--hash=sha256:b4f3d06dc16671b88a13ae85d8ca92534c0b637d59e49f0558d040a691246422 \
|
||||
--hash=sha256:b9953d87418ac228f508d93898ab572775e4d3b0eeb886a1a7734553bcdaf291 \
|
||||
--hash=sha256:b9a7c987e161e3c58f992c63b7e26fea7fe0777f3b975799d23d65bbb8cb5899 \
|
||||
--hash=sha256:c6cb613148422c523945cdb8b6bed617856f2602fd8750e33773ede2616e55d5 \
|
||||
--hash=sha256:c9b9e5bde7030cae83aa900b5bd660decc65afd2db8c400f3c568c815a47ca2a \
|
||||
--hash=sha256:cc36a9dded458d4e37492fe3e619c6c83caae794d26ad925adbce61d592f8428 \
|
||||
--hash=sha256:cd2614f17e261f72efc2f19f5e5ff2ee19e2296570c0dcf33409e22be30710de \
|
||||
--hash=sha256:d115790f18daa99b5c11a506e48923b630ef712e9e4b40482af942c3d40638b8 \
|
||||
--hash=sha256:d194decd9608f11c777946f596f31d5aacad13972a0a87829ae1e6f2d26c1885 \
|
||||
--hash=sha256:d1a4ce40ba11da9382c14da31f4f9e88c18f7d294f523decd0fadfb81f51ad18 \
|
||||
--hash=sha256:d1be9e30e675f5bc1cb534633324578f6f0944a1bcffe53242cf632f554f83b6 \
|
||||
--hash=sha256:d20891e3f33803b26d54c77fd5745878497091e33f4bbbdd454cf6e71aee8890 \
|
||||
--hash=sha256:d27e560eefb57914d742a837f1da98d3b29cb22eff013c8023b7cf52ae6e051d \
|
||||
--hash=sha256:dcb0569dd5bfe6004658cd0f229efa699a3169dcb4f77bd72e188adda302063d \
|
||||
--hash=sha256:e62ec131816c6120eff40dffe43424e140264a15fa4ab88c301bd6a595913af3 \
|
||||
--hash=sha256:e75163773a309e56a9b58165cf5a50e0f84b755f6ff863b2c01a38918fe92daa \
|
||||
--hash=sha256:ec58fb7c2062f835595c12f0f02dcda76d0eb0831423cc191d1e18c9276648de \
|
||||
--hash=sha256:f1eadbcd3de55ac42310ff82550d3302cb4efcd4e17d76646a17b6e7004bb42b \
|
||||
--hash=sha256:f2dcb8389fa3d453927b1299f46bdb38473c293c8269d5c777d33ea0e526b610 \
|
||||
--hash=sha256:ffaf841546905d90ff189de7397aa56413b1ce5e54547f17a98f0ebf3a3b0a3b
|
||||
idna==3.4 ; python_version >= "3.9" and python_version < "4.0" \
|
||||
--hash=sha256:814f528e8dead7d329833b91c5faa87d60bf71824cd12a7530b5526063d02cb4 \
|
||||
--hash=sha256:90b77e79eaa3eba6de819a0c442c0b4ceefc341a7a2ab77d7562bf49f425c5c2
|
||||
|
|
@ -567,20 +570,20 @@ multidict==6.0.4 ; python_version >= "3.9" and python_version < "4.0" \
|
|||
ordered-set==4.1.0 ; python_version >= "3.9" and python_version < "4.0" \
|
||||
--hash=sha256:046e1132c71fcf3330438a539928932caf51ddbc582496833e23de611de14562 \
|
||||
--hash=sha256:694a8e44c87657c59292ede72891eb91d34131f6531463aab3009191c77364a8
|
||||
protobuf==4.22.1 ; python_version >= "3.9" and python_version < "4.0" \
|
||||
--hash=sha256:3e19dcf4adbf608924d3486ece469dd4f4f2cf7d2649900f0efcd1a84e8fd3ba \
|
||||
--hash=sha256:5917412347e1da08ce2939eb5cd60650dfb1a9ab4606a415b9278a1041fb4d19 \
|
||||
--hash=sha256:651113695bc2e5678b799ee5d906b5d3613f4ccfa61b12252cfceb6404558af0 \
|
||||
--hash=sha256:67b7d19da0fda2733702c2299fd1ef6cb4b3d99f09263eacaf1aa151d9d05f02 \
|
||||
--hash=sha256:6e100f7bc787cd0a0ae58dbf0ab8bbf1ee7953f862b89148b6cf5436d5e9eaa1 \
|
||||
--hash=sha256:85aa9acc5a777adc0c21b449dafbc40d9a0b6413ff3a4f77ef9df194be7f975b \
|
||||
--hash=sha256:87a6393fa634f294bf24d1cfe9fdd6bb605cbc247af81b9b10c4c0f12dfce4b3 \
|
||||
--hash=sha256:8bc971d76c03f1dd49f18115b002254f2ddb2d4b143c583bb860b796bb0d399e \
|
||||
--hash=sha256:953fc7904ef46900262a26374b28c2864610b60cdc8b272f864e22143f8373c4 \
|
||||
--hash=sha256:9e12e2810e7d297dbce3c129ae5e912ffd94240b050d33f9ecf023f35563b14f \
|
||||
--hash=sha256:b8700792f88e59ccecfa246fa48f689d6eee6900eddd486cdae908ff706c482b \
|
||||
--hash=sha256:dce7a55d501c31ecf688adb2f6c3f763cf11bc0be815d1946a84d74772ab07a7 \
|
||||
--hash=sha256:e3fb58076bdb550e75db06ace2a8b3879d4c4f7ec9dd86e4254656118f4a78d7
|
||||
protobuf==4.23.3 ; python_version >= "3.9" and python_version < "4.0" \
|
||||
--hash=sha256:0149053336a466e3e0b040e54d0b615fc71de86da66791c592cc3c8d18150bf8 \
|
||||
--hash=sha256:08fe19d267608d438aa37019236db02b306e33f6b9902c3163838b8e75970223 \
|
||||
--hash=sha256:29660574cd769f2324a57fb78127cda59327eb6664381ecfe1c69731b83e8288 \
|
||||
--hash=sha256:2991f5e7690dab569f8f81702e6700e7364cc3b5e572725098215d3da5ccc6ac \
|
||||
--hash=sha256:3b01a5274ac920feb75d0b372d901524f7e3ad39c63b1a2d55043f3887afe0c1 \
|
||||
--hash=sha256:3bcbeb2bf4bb61fe960dd6e005801a23a43578200ea8ceb726d1f6bd0e562ba1 \
|
||||
--hash=sha256:447b9786ac8e50ae72cae7a2eec5c5df6a9dbf9aa6f908f1b8bda6032644ea62 \
|
||||
--hash=sha256:514b6bbd54a41ca50c86dd5ad6488afe9505901b3557c5e0f7823a0cf67106fb \
|
||||
--hash=sha256:5cb9e41188737f321f4fce9a4337bf40a5414b8d03227e1d9fbc59bc3a216e35 \
|
||||
--hash=sha256:7a92beb30600332a52cdadbedb40d33fd7c8a0d7f549c440347bc606fb3fe34b \
|
||||
--hash=sha256:84ea0bd90c2fdd70ddd9f3d3fc0197cc24ecec1345856c2b5ba70e4d99815359 \
|
||||
--hash=sha256:aca6e86a08c5c5962f55eac9b5bd6fce6ed98645d77e8bfc2b952ecd4a8e4f6a \
|
||||
--hash=sha256:cc14358a8742c4e06b1bfe4be1afbdf5c9f6bd094dff3e14edb78a1513893ff5
|
||||
psutil==5.9.4 ; python_version >= "3.9" and python_version < "4.0" \
|
||||
--hash=sha256:149555f59a69b33f056ba1c4eb22bb7bf24332ce631c44a319cec09f876aaeff \
|
||||
--hash=sha256:16653106f3b59386ffe10e0bad3bb6299e169d5327d3f187614b1cb8f24cf2e1 \
|
||||
|
|
@ -732,9 +735,9 @@ redis[hiredis]==4.5.4 ; python_version >= "3.9" and python_version < "4.0" \
|
|||
requests==2.28.1 ; python_version >= "3.9" and python_version < "4" \
|
||||
--hash=sha256:7c5599b102feddaa661c826c56ab4fee28bfd17f5abca1ebbe3e7f19d7c97983 \
|
||||
--hash=sha256:8fefa2a1a1365bf5520aac41836fbee479da67864514bdb821f31ce07ce65349
|
||||
setuptools==67.6.1 ; python_version >= "3.9" and python_version < "4.0" \
|
||||
--hash=sha256:257de92a9d50a60b8e22abfcbb771571fde0dbf3ec234463212027a4eeecbe9a \
|
||||
--hash=sha256:e728ca814a823bf7bf60162daf9db95b93d532948c4c0bea762ce62f60189078
|
||||
setuptools==68.0.0 ; python_version >= "3.9" and python_version < "4.0" \
|
||||
--hash=sha256:11e52c67415a381d10d6b462ced9cfb97066179f0e871399e006c4ab101fc85f \
|
||||
--hash=sha256:baf1fdb41c6da4cd2eae722e135500da913332ab3f2f5c7d33af9b492acb5235
|
||||
six==1.16.0 ; python_version >= "3.9" and python_version < "4.0" \
|
||||
--hash=sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926 \
|
||||
--hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254
|
||||
|
|
@ -747,90 +750,90 @@ starlette==0.26.1 ; python_version >= "3.9" and python_version < "4.0" \
|
|||
tenacity==8.2.2 ; python_version >= "3.9" and python_version < "4.0" \
|
||||
--hash=sha256:2f277afb21b851637e8f52e6a613ff08734c347dc19ade928e519d7d2d8569b0 \
|
||||
--hash=sha256:43af037822bd0029025877f3b2d97cc4d7bb0c2991000a3d59d71517c5c969e0
|
||||
typing-extensions==4.5.0 ; python_version >= "3.9" and python_version < "4.0" \
|
||||
--hash=sha256:5cb5f4a79139d699607b3ef622a1dedafa84e115ab0024e0d9c044a9479ca7cb \
|
||||
--hash=sha256:fb33085c39dd998ac16d1431ebc293a8b3eedd00fd4a32de0ff79002c19511b4
|
||||
urllib3==1.26.15 ; python_version >= "3.9" and python_version < "4" \
|
||||
--hash=sha256:8a388717b9476f934a21484e8c8e61875ab60644d29b9b39e11e4b9dc1c6b305 \
|
||||
--hash=sha256:aa751d169e23c7479ce47a0cb0da579e3ede798f994f5816a74e4f4500dcea42
|
||||
typing-extensions==4.6.3 ; python_version >= "3.9" and python_version < "4.0" \
|
||||
--hash=sha256:88a4153d8505aabbb4e13aacb7c486c2b4a33ca3b3f807914a9b4c844c471c26 \
|
||||
--hash=sha256:d91d5919357fe7f681a9f2b5b4cb2a5f1ef0a1e9f59c4d8ff0d3491e05c0ffd5
|
||||
urllib3==1.26.16 ; python_version >= "3.9" and python_version < "4" \
|
||||
--hash=sha256:8d36afa7616d8ab714608411b4a3b13e58f463aee519024578e062e141dce20f \
|
||||
--hash=sha256:8f135f6502756bde6b2a9b28989df5fbe87c9970cecaa69041edcce7f0589b14
|
||||
uvicorn==0.20.0 ; python_version >= "3.9" and python_version < "4.0" \
|
||||
--hash=sha256:a4e12017b940247f836bc90b72e725d7dfd0c8ed1c51eb365f5ba30d9f5127d8 \
|
||||
--hash=sha256:c3ed1598a5668208723f2bb49336f4509424ad198d6ab2615b7783db58d919fd
|
||||
win32-setctime==1.1.0 ; python_version >= "3.9" and python_version < "4.0" and sys_platform == "win32" \
|
||||
--hash=sha256:15cf5750465118d6929ae4de4eb46e8edae9a5634350c01ba582df868e932cb2 \
|
||||
--hash=sha256:231db239e959c2fe7eb1d7dc129f11172354f98361c4fa2d6d2d7e278baa8aad
|
||||
yarl==1.8.2 ; python_version >= "3.9" and python_version < "4.0" \
|
||||
--hash=sha256:009a028127e0a1755c38b03244c0bea9d5565630db9c4cf9572496e947137a87 \
|
||||
--hash=sha256:0414fd91ce0b763d4eadb4456795b307a71524dbacd015c657bb2a39db2eab89 \
|
||||
--hash=sha256:0978f29222e649c351b173da2b9b4665ad1feb8d1daa9d971eb90df08702668a \
|
||||
--hash=sha256:0ef8fb25e52663a1c85d608f6dd72e19bd390e2ecaf29c17fb08f730226e3a08 \
|
||||
--hash=sha256:10b08293cda921157f1e7c2790999d903b3fd28cd5c208cf8826b3b508026996 \
|
||||
--hash=sha256:1684a9bd9077e922300ecd48003ddae7a7474e0412bea38d4631443a91d61077 \
|
||||
--hash=sha256:1b372aad2b5f81db66ee7ec085cbad72c4da660d994e8e590c997e9b01e44901 \
|
||||
--hash=sha256:1e21fb44e1eff06dd6ef971d4bdc611807d6bd3691223d9c01a18cec3677939e \
|
||||
--hash=sha256:2305517e332a862ef75be8fad3606ea10108662bc6fe08509d5ca99503ac2aee \
|
||||
--hash=sha256:24ad1d10c9db1953291f56b5fe76203977f1ed05f82d09ec97acb623a7976574 \
|
||||
--hash=sha256:272b4f1599f1b621bf2aabe4e5b54f39a933971f4e7c9aa311d6d7dc06965165 \
|
||||
--hash=sha256:2a1fca9588f360036242f379bfea2b8b44cae2721859b1c56d033adfd5893634 \
|
||||
--hash=sha256:2b4fa2606adf392051d990c3b3877d768771adc3faf2e117b9de7eb977741229 \
|
||||
--hash=sha256:3150078118f62371375e1e69b13b48288e44f6691c1069340081c3fd12c94d5b \
|
||||
--hash=sha256:326dd1d3caf910cd26a26ccbfb84c03b608ba32499b5d6eeb09252c920bcbe4f \
|
||||
--hash=sha256:34c09b43bd538bf6c4b891ecce94b6fa4f1f10663a8d4ca589a079a5018f6ed7 \
|
||||
--hash=sha256:388a45dc77198b2460eac0aca1efd6a7c09e976ee768b0d5109173e521a19daf \
|
||||
--hash=sha256:3adeef150d528ded2a8e734ebf9ae2e658f4c49bf413f5f157a470e17a4a2e89 \
|
||||
--hash=sha256:3edac5d74bb3209c418805bda77f973117836e1de7c000e9755e572c1f7850d0 \
|
||||
--hash=sha256:3f6b4aca43b602ba0f1459de647af954769919c4714706be36af670a5f44c9c1 \
|
||||
--hash=sha256:3fc056e35fa6fba63248d93ff6e672c096f95f7836938241ebc8260e062832fe \
|
||||
--hash=sha256:418857f837347e8aaef682679f41e36c24250097f9e2f315d39bae3a99a34cbf \
|
||||
--hash=sha256:42430ff511571940d51e75cf42f1e4dbdded477e71c1b7a17f4da76c1da8ea76 \
|
||||
--hash=sha256:44ceac0450e648de86da8e42674f9b7077d763ea80c8ceb9d1c3e41f0f0a9951 \
|
||||
--hash=sha256:47d49ac96156f0928f002e2424299b2c91d9db73e08c4cd6742923a086f1c863 \
|
||||
--hash=sha256:48dd18adcf98ea9cd721a25313aef49d70d413a999d7d89df44f469edfb38a06 \
|
||||
--hash=sha256:49d43402c6e3013ad0978602bf6bf5328535c48d192304b91b97a3c6790b1562 \
|
||||
--hash=sha256:4d04acba75c72e6eb90745447d69f84e6c9056390f7a9724605ca9c56b4afcc6 \
|
||||
--hash=sha256:57a7c87927a468e5a1dc60c17caf9597161d66457a34273ab1760219953f7f4c \
|
||||
--hash=sha256:58a3c13d1c3005dbbac5c9f0d3210b60220a65a999b1833aa46bd6677c69b08e \
|
||||
--hash=sha256:5df5e3d04101c1e5c3b1d69710b0574171cc02fddc4b23d1b2813e75f35a30b1 \
|
||||
--hash=sha256:63243b21c6e28ec2375f932a10ce7eda65139b5b854c0f6b82ed945ba526bff3 \
|
||||
--hash=sha256:64dd68a92cab699a233641f5929a40f02a4ede8c009068ca8aa1fe87b8c20ae3 \
|
||||
--hash=sha256:6604711362f2dbf7160df21c416f81fac0de6dbcf0b5445a2ef25478ecc4c778 \
|
||||
--hash=sha256:6c4fcfa71e2c6a3cb568cf81aadc12768b9995323186a10827beccf5fa23d4f8 \
|
||||
--hash=sha256:6d88056a04860a98341a0cf53e950e3ac9f4e51d1b6f61a53b0609df342cc8b2 \
|
||||
--hash=sha256:705227dccbe96ab02c7cb2c43e1228e2826e7ead880bb19ec94ef279e9555b5b \
|
||||
--hash=sha256:728be34f70a190566d20aa13dc1f01dc44b6aa74580e10a3fb159691bc76909d \
|
||||
--hash=sha256:74dece2bfc60f0f70907c34b857ee98f2c6dd0f75185db133770cd67300d505f \
|
||||
--hash=sha256:75c16b2a900b3536dfc7014905a128a2bea8fb01f9ee26d2d7d8db0a08e7cb2c \
|
||||
--hash=sha256:77e913b846a6b9c5f767b14dc1e759e5aff05502fe73079f6f4176359d832581 \
|
||||
--hash=sha256:7a66c506ec67eb3159eea5096acd05f5e788ceec7b96087d30c7d2865a243918 \
|
||||
--hash=sha256:8c46d3d89902c393a1d1e243ac847e0442d0196bbd81aecc94fcebbc2fd5857c \
|
||||
--hash=sha256:93202666046d9edadfe9f2e7bf5e0782ea0d497b6d63da322e541665d65a044e \
|
||||
--hash=sha256:97209cc91189b48e7cfe777237c04af8e7cc51eb369004e061809bcdf4e55220 \
|
||||
--hash=sha256:a48f4f7fea9a51098b02209d90297ac324241bf37ff6be6d2b0149ab2bd51b37 \
|
||||
--hash=sha256:a783cd344113cb88c5ff7ca32f1f16532a6f2142185147822187913eb989f739 \
|
||||
--hash=sha256:ae0eec05ab49e91a78700761777f284c2df119376e391db42c38ab46fd662b77 \
|
||||
--hash=sha256:ae4d7ff1049f36accde9e1ef7301912a751e5bae0a9d142459646114c70ecba6 \
|
||||
--hash=sha256:b05df9ea7496df11b710081bd90ecc3a3db6adb4fee36f6a411e7bc91a18aa42 \
|
||||
--hash=sha256:baf211dcad448a87a0d9047dc8282d7de59473ade7d7fdf22150b1d23859f946 \
|
||||
--hash=sha256:bb81f753c815f6b8e2ddd2eef3c855cf7da193b82396ac013c661aaa6cc6b0a5 \
|
||||
--hash=sha256:bcd7bb1e5c45274af9a1dd7494d3c52b2be5e6bd8d7e49c612705fd45420b12d \
|
||||
--hash=sha256:bf071f797aec5b96abfc735ab97da9fd8f8768b43ce2abd85356a3127909d146 \
|
||||
--hash=sha256:c15163b6125db87c8f53c98baa5e785782078fbd2dbeaa04c6141935eb6dab7a \
|
||||
--hash=sha256:cb6d48d80a41f68de41212f3dfd1a9d9898d7841c8f7ce6696cf2fd9cb57ef83 \
|
||||
--hash=sha256:ceff9722e0df2e0a9e8a79c610842004fa54e5b309fe6d218e47cd52f791d7ef \
|
||||
--hash=sha256:cfa2bbca929aa742b5084fd4663dd4b87c191c844326fcb21c3afd2d11497f80 \
|
||||
--hash=sha256:d617c241c8c3ad5c4e78a08429fa49e4b04bedfc507b34b4d8dceb83b4af3588 \
|
||||
--hash=sha256:d881d152ae0007809c2c02e22aa534e702f12071e6b285e90945aa3c376463c5 \
|
||||
--hash=sha256:da65c3f263729e47351261351b8679c6429151ef9649bba08ef2528ff2c423b2 \
|
||||
--hash=sha256:de986979bbd87272fe557e0a8fcb66fd40ae2ddfe28a8b1ce4eae22681728fef \
|
||||
--hash=sha256:df60a94d332158b444301c7f569659c926168e4d4aad2cfbf4bce0e8fb8be826 \
|
||||
--hash=sha256:dfef7350ee369197106805e193d420b75467b6cceac646ea5ed3049fcc950a05 \
|
||||
--hash=sha256:e59399dda559688461762800d7fb34d9e8a6a7444fd76ec33220a926c8be1516 \
|
||||
--hash=sha256:e6f3515aafe0209dd17fb9bdd3b4e892963370b3de781f53e1746a521fb39fc0 \
|
||||
--hash=sha256:e7fd20d6576c10306dea2d6a5765f46f0ac5d6f53436217913e952d19237efc4 \
|
||||
--hash=sha256:ebb78745273e51b9832ef90c0898501006670d6e059f2cdb0e999494eb1450c2 \
|
||||
--hash=sha256:efff27bd8cbe1f9bd127e7894942ccc20c857aa8b5a0327874f30201e5ce83d0 \
|
||||
--hash=sha256:f37db05c6051eff17bc832914fe46869f8849de5b92dc4a3466cd63095d23dfd \
|
||||
--hash=sha256:f8ca8ad414c85bbc50f49c0a106f951613dfa5f948ab69c10ce9b128d368baf8 \
|
||||
--hash=sha256:fb742dcdd5eec9f26b61224c23baea46c9055cf16f62475e11b9b15dfd5c117b \
|
||||
--hash=sha256:fc77086ce244453e074e445104f0ecb27530d6fd3a46698e33f6c38951d5a0f1 \
|
||||
--hash=sha256:ff205b58dc2929191f68162633d5e10e8044398d7a45265f90a0f1d51f85f72c
|
||||
yarl==1.9.2 ; python_version >= "3.9" and python_version < "4.0" \
|
||||
--hash=sha256:04ab9d4b9f587c06d801c2abfe9317b77cdf996c65a90d5e84ecc45010823571 \
|
||||
--hash=sha256:066c163aec9d3d073dc9ffe5dd3ad05069bcb03fcaab8d221290ba99f9f69ee3 \
|
||||
--hash=sha256:13414591ff516e04fcdee8dc051c13fd3db13b673c7a4cb1350e6b2ad9639ad3 \
|
||||
--hash=sha256:149ddea5abf329752ea5051b61bd6c1d979e13fbf122d3a1f9f0c8be6cb6f63c \
|
||||
--hash=sha256:159d81f22d7a43e6eabc36d7194cb53f2f15f498dbbfa8edc8a3239350f59fe7 \
|
||||
--hash=sha256:1b1bba902cba32cdec51fca038fd53f8beee88b77efc373968d1ed021024cc04 \
|
||||
--hash=sha256:22a94666751778629f1ec4280b08eb11815783c63f52092a5953faf73be24191 \
|
||||
--hash=sha256:2a96c19c52ff442a808c105901d0bdfd2e28575b3d5f82e2f5fd67e20dc5f4ea \
|
||||
--hash=sha256:2b0738fb871812722a0ac2154be1f049c6223b9f6f22eec352996b69775b36d4 \
|
||||
--hash=sha256:2c315df3293cd521033533d242d15eab26583360b58f7ee5d9565f15fee1bef4 \
|
||||
--hash=sha256:32f1d071b3f362c80f1a7d322bfd7b2d11e33d2adf395cc1dd4df36c9c243095 \
|
||||
--hash=sha256:3458a24e4ea3fd8930e934c129b676c27452e4ebda80fbe47b56d8c6c7a63a9e \
|
||||
--hash=sha256:38a3928ae37558bc1b559f67410df446d1fbfa87318b124bf5032c31e3447b74 \
|
||||
--hash=sha256:3da8a678ca8b96c8606bbb8bfacd99a12ad5dd288bc6f7979baddd62f71c63ef \
|
||||
--hash=sha256:494053246b119b041960ddcd20fd76224149cfea8ed8777b687358727911dd33 \
|
||||
--hash=sha256:50f33040f3836e912ed16d212f6cc1efb3231a8a60526a407aeb66c1c1956dde \
|
||||
--hash=sha256:52a25809fcbecfc63ac9ba0c0fb586f90837f5425edfd1ec9f3372b119585e45 \
|
||||
--hash=sha256:53338749febd28935d55b41bf0bcc79d634881195a39f6b2f767870b72514caf \
|
||||
--hash=sha256:5415d5a4b080dc9612b1b63cba008db84e908b95848369aa1da3686ae27b6d2b \
|
||||
--hash=sha256:5610f80cf43b6202e2c33ba3ec2ee0a2884f8f423c8f4f62906731d876ef4fac \
|
||||
--hash=sha256:566185e8ebc0898b11f8026447eacd02e46226716229cea8db37496c8cdd26e0 \
|
||||
--hash=sha256:56ff08ab5df8429901ebdc5d15941b59f6253393cb5da07b4170beefcf1b2528 \
|
||||
--hash=sha256:59723a029760079b7d991a401386390c4be5bfec1e7dd83e25a6a0881859e716 \
|
||||
--hash=sha256:5fcd436ea16fee7d4207c045b1e340020e58a2597301cfbcfdbe5abd2356c2fb \
|
||||
--hash=sha256:61016e7d582bc46a5378ffdd02cd0314fb8ba52f40f9cf4d9a5e7dbef88dee18 \
|
||||
--hash=sha256:63c48f6cef34e6319a74c727376e95626f84ea091f92c0250a98e53e62c77c72 \
|
||||
--hash=sha256:646d663eb2232d7909e6601f1a9107e66f9791f290a1b3dc7057818fe44fc2b6 \
|
||||
--hash=sha256:662e6016409828ee910f5d9602a2729a8a57d74b163c89a837de3fea050c7582 \
|
||||
--hash=sha256:674ca19cbee4a82c9f54e0d1eee28116e63bc6fd1e96c43031d11cbab8b2afd5 \
|
||||
--hash=sha256:6a5883464143ab3ae9ba68daae8e7c5c95b969462bbe42e2464d60e7e2698368 \
|
||||
--hash=sha256:6e7221580dc1db478464cfeef9b03b95c5852cc22894e418562997df0d074ccc \
|
||||
--hash=sha256:75df5ef94c3fdc393c6b19d80e6ef1ecc9ae2f4263c09cacb178d871c02a5ba9 \
|
||||
--hash=sha256:783185c75c12a017cc345015ea359cc801c3b29a2966c2655cd12b233bf5a2be \
|
||||
--hash=sha256:822b30a0f22e588b32d3120f6d41e4ed021806418b4c9f0bc3048b8c8cb3f92a \
|
||||
--hash=sha256:8288d7cd28f8119b07dd49b7230d6b4562f9b61ee9a4ab02221060d21136be80 \
|
||||
--hash=sha256:82aa6264b36c50acfb2424ad5ca537a2060ab6de158a5bd2a72a032cc75b9eb8 \
|
||||
--hash=sha256:832b7e711027c114d79dffb92576acd1bd2decc467dec60e1cac96912602d0e6 \
|
||||
--hash=sha256:838162460b3a08987546e881a2bfa573960bb559dfa739e7800ceeec92e64417 \
|
||||
--hash=sha256:83fcc480d7549ccebe9415d96d9263e2d4226798c37ebd18c930fce43dfb9574 \
|
||||
--hash=sha256:84e0b1599334b1e1478db01b756e55937d4614f8654311eb26012091be109d59 \
|
||||
--hash=sha256:891c0e3ec5ec881541f6c5113d8df0315ce5440e244a716b95f2525b7b9f3608 \
|
||||
--hash=sha256:8c2ad583743d16ddbdf6bb14b5cd76bf43b0d0006e918809d5d4ddf7bde8dd82 \
|
||||
--hash=sha256:8c56986609b057b4839968ba901944af91b8e92f1725d1a2d77cbac6972b9ed1 \
|
||||
--hash=sha256:8ea48e0a2f931064469bdabca50c2f578b565fc446f302a79ba6cc0ee7f384d3 \
|
||||
--hash=sha256:8ec53a0ea2a80c5cd1ab397925f94bff59222aa3cf9c6da938ce05c9ec20428d \
|
||||
--hash=sha256:95d2ecefbcf4e744ea952d073c6922e72ee650ffc79028eb1e320e732898d7e8 \
|
||||
--hash=sha256:9b3152f2f5677b997ae6c804b73da05a39daa6a9e85a512e0e6823d81cdad7cc \
|
||||
--hash=sha256:9bf345c3a4f5ba7f766430f97f9cc1320786f19584acc7086491f45524a551ac \
|
||||
--hash=sha256:a60347f234c2212a9f0361955007fcf4033a75bf600a33c88a0a8e91af77c0e8 \
|
||||
--hash=sha256:a74dcbfe780e62f4b5a062714576f16c2f3493a0394e555ab141bf0d746bb955 \
|
||||
--hash=sha256:a83503934c6273806aed765035716216cc9ab4e0364f7f066227e1aaea90b8d0 \
|
||||
--hash=sha256:ac9bb4c5ce3975aeac288cfcb5061ce60e0d14d92209e780c93954076c7c4367 \
|
||||
--hash=sha256:aff634b15beff8902d1f918012fc2a42e0dbae6f469fce134c8a0dc51ca423bb \
|
||||
--hash=sha256:b03917871bf859a81ccb180c9a2e6c1e04d2f6a51d953e6a5cdd70c93d4e5a2a \
|
||||
--hash=sha256:b124e2a6d223b65ba8768d5706d103280914d61f5cae3afbc50fc3dfcc016623 \
|
||||
--hash=sha256:b25322201585c69abc7b0e89e72790469f7dad90d26754717f3310bfe30331c2 \
|
||||
--hash=sha256:b7232f8dfbd225d57340e441d8caf8652a6acd06b389ea2d3222b8bc89cbfca6 \
|
||||
--hash=sha256:b8cc1863402472f16c600e3e93d542b7e7542a540f95c30afd472e8e549fc3f7 \
|
||||
--hash=sha256:b9a4e67ad7b646cd6f0938c7ebfd60e481b7410f574c560e455e938d2da8e0f4 \
|
||||
--hash=sha256:be6b3fdec5c62f2a67cb3f8c6dbf56bbf3f61c0f046f84645cd1ca73532ea051 \
|
||||
--hash=sha256:bf74d08542c3a9ea97bb8f343d4fcbd4d8f91bba5ec9d5d7f792dbe727f88938 \
|
||||
--hash=sha256:c027a6e96ef77d401d8d5a5c8d6bc478e8042f1e448272e8d9752cb0aff8b5c8 \
|
||||
--hash=sha256:c0c77533b5ed4bcc38e943178ccae29b9bcf48ffd1063f5821192f23a1bd27b9 \
|
||||
--hash=sha256:c1012fa63eb6c032f3ce5d2171c267992ae0c00b9e164efe4d73db818465fac3 \
|
||||
--hash=sha256:c3a53ba34a636a256d767c086ceb111358876e1fb6b50dfc4d3f4951d40133d5 \
|
||||
--hash=sha256:d4e2c6d555e77b37288eaf45b8f60f0737c9efa3452c6c44626a5455aeb250b9 \
|
||||
--hash=sha256:de119f56f3c5f0e2fb4dee508531a32b069a5f2c6e827b272d1e0ff5ac040333 \
|
||||
--hash=sha256:e65610c5792870d45d7b68c677681376fcf9cc1c289f23e8e8b39c1485384185 \
|
||||
--hash=sha256:e9fdc7ac0d42bc3ea78818557fab03af6181e076a2944f43c38684b4b6bed8e3 \
|
||||
--hash=sha256:ee4afac41415d52d53a9833ebae7e32b344be72835bbb589018c9e938045a560 \
|
||||
--hash=sha256:f364d3480bffd3aa566e886587eaca7c8c04d74f6e8933f3f2c996b7f09bee1b \
|
||||
--hash=sha256:f3b078dbe227f79be488ffcfc7a9edb3409d018e0952cf13f15fd6512847f3f7 \
|
||||
--hash=sha256:f4e2d08f07a3d7d3e12549052eb5ad3eab1c349c53ac51c209a0e5991bbada78 \
|
||||
--hash=sha256:f7a3d8146575e08c29ed1cd287068e6d02f1c7bdff8970db96683b9591b86ee7
|
||||
|
|
|
|||
108
scripts/remote_debugging.sh
Normal file
108
scripts/remote_debugging.sh
Normal file
|
|
@ -0,0 +1,108 @@
|
|||
#!/bin/bash
|
||||
|
||||
# Help function
|
||||
show_help() {
|
||||
echo
|
||||
echo "Usage: $0 [enable|disable|help] [port]"
|
||||
echo ""
|
||||
echo "Options:"
|
||||
echo " enable: Open the specified port (default is 5678), install debugpy Python package, and set remote_debugging to true in .env_sample"
|
||||
echo " disable: Close the specified port (default is 5678), uninstall debugpy Python package, and set remote_debugging to false in .env_sample"
|
||||
echo " help: Show this help message"
|
||||
echo " port: The port number to open/close (default is 5678)"
|
||||
echo ""
|
||||
echo "This script must be run as the user 'blitzapi' from the /home/blitzapi/blitz_api directory."
|
||||
}
|
||||
|
||||
# Check if help is requested
|
||||
if [ "$1" == "help" ]; then
|
||||
show_help
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Check if the script is running from the correct directory
|
||||
if [ "$(pwd)" != "/home/blitzapi/blitz_api" ]; then
|
||||
echo "This script must be run from /home/blitzapi/blitz_api"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check if the script is running as the correct user
|
||||
if [ "$(whoami)" != "blitzapi" ]; then
|
||||
echo "This script must be run as blitzapi"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check if an action is provided as a parameter
|
||||
if [ -z "$1" ] || ( [ "$1" != "enable" ] && [ "$1" != "disable" ] ); then
|
||||
echo "You must specify an action: 'enable' to open the port and install debugpy, or 'disable' to close the port and uninstall debugpy"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
|
||||
update_env_file() {
|
||||
echo "Updating .env_sample file $1"
|
||||
if [ "$1" == "enable" ]; then
|
||||
# Uncomment the line and set to true
|
||||
sed -i "s/^# remote_debugging=.*/remote_debugging=true/g" /home/blitzapi/blitz_api/.env_sample
|
||||
else
|
||||
# Comment the line and set to false
|
||||
sed -i "s/^remote_debugging=.*/# remote_debugging=false/g" /home/blitzapi/blitz_api/.env_sample
|
||||
fi
|
||||
}
|
||||
|
||||
# Default port
|
||||
PORT=5678
|
||||
|
||||
# Check if a port number is provided as a parameter
|
||||
if [ -n "$2" ]; then
|
||||
PORT=$2
|
||||
fi
|
||||
|
||||
# Ask for user confirmation
|
||||
echo "You are about to $1 remote debugging on port $PORT."
|
||||
echo "Enabling will open the port $PORT and install the debugpy package."
|
||||
echo "Disabling will reverse these operations."
|
||||
if [ "$1" == "enable" ]; then
|
||||
echo
|
||||
echo "Make sure that remote_debugging is set to true in .env_sample. Reason is that RaspiBlitz copies the sample '.env_sample' to a fresh '.env' file on each restart."
|
||||
echo
|
||||
fi
|
||||
read -p "Do you want to proceed? (y/n) " -n 1 -r
|
||||
echo # move to a new line
|
||||
if [[ ! $REPLY =~ ^[Yy]$ ]]
|
||||
then
|
||||
echo "Operation cancelled by the user."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
update_env_file $1
|
||||
|
||||
# Activate the virtual environment
|
||||
source /home/blitzapi/blitz_api/venv/bin/activate
|
||||
|
||||
# If the user confirmed
|
||||
if [ "$1" == "enable" ]; then
|
||||
# Install debugpy python package
|
||||
pip install debugpy
|
||||
|
||||
# Open the port
|
||||
echo "Opening port $PORT"
|
||||
sudo ufw allow $PORT/tcp
|
||||
|
||||
echo "Port $PORT is open and debugpy is installed"
|
||||
else
|
||||
# Uninstall debugpy python package
|
||||
pip uninstall -y debugpy
|
||||
|
||||
# Close the port
|
||||
echo "Closing port $PORT"
|
||||
sudo ufw delete allow $PORT/tcp
|
||||
|
||||
echo "Port $PORT is closed and debugpy is uninstalled"
|
||||
fi
|
||||
|
||||
# Deactivate the virtual environment
|
||||
deactivate
|
||||
|
||||
echo "Restarting Blitz API"
|
||||
sudo systemctl restart blitzapi.service
|
||||
Loading…
Add table
Add a link
Reference in a new issue