# Arise
[![Bitcoin-only](https://img.shields.io/badge/bitcoin-only-FF9900?logo=bitcoin)](https://twentyone.world)
[![Docker](https://img.shields.io/badge/docker-2496ED?&logo=docker&logoColor=white)](https://hub.docker.com)
[![Top](https://img.shields.io/github/languages/top/krutt/arise)](https://github.com/krutt/arise)
[![Languages](https://img.shields.io/github/languages/count/krutt/arise)](https://github.com/krutt/arise)
[![Size](https://img.shields.io/github/repo-size/krutt/arise)](https://github.com/krutt/arise)
[![Last commit](https://img.shields.io/github/last-commit/krutt/arise/master)](https://github.com/krutt/arise)
[![Arise Banner](static/arise-banner.svg)](https://github.com/krutt/arise/blob/master/static/arise-banner.svg)
## Getting started
You can use `arise` simply by installing via `pip` on your Terminal.
```sh
pip install arise
```
<details>
<summary> Sample output when running install command </summary>
![Sample Pip Install](https://github.com/krutt/arise/blob/master/static/pip-install.gif)
</details>
And build required images with `build` command. The following shows you how to build a `Testnet`
Bitcoin-Core node as well as [electrs](https://github.com/aekasitt/electrs),
[mempool](https://github.com/mempool/mempool) and [mutiny-web](https://github.com/MutinyWallet/mutiny-web)
```sh
arise build --testnet --electrs --mempool --mutiny-web
```
<details>
<summary> Sample output when running build command </summary>
![Sample Arise Build](https://github.com/krutt/arise/blob/master/static/arise-build.gif)
</details>
The initial build may take some time as it is downloading source codes from different repositories
and interfacing with `Docker Daemon` to build according to flagged requirements. Once the build process
completes, you can begin deploying local network with peripherals as such:
```sh
arise deploy --testnet --with-electrs --with-mempool --with-mutiny-web
```
<details>
<summary>Sample output when running deploy command</summary>
![Sample Arise Deploy](https://github.com/krutt/arise/blob/master/static/arise-deploy.gif)
</details>
You will have docker containers running in the backend, ready to be interfaced by your local
environment applications you are developing.
## Dashboard
Arise not only facilitates the deployment of intermingling [Bitcoin](https://twentyone.world) services
but allows you to view Node's Blockchain Information, Mempool Information, Peripheral Details and etc.
In order to view relevant metrics, launch the dashboard using the following command.
```sh
arise dashboard
```
<details>
<summary> Sample output when running dashboard command </summary>
![Sample Arise Dashboard](https://github.com/krutt/arise/blob/master/static/arise-dashboard.gif)
</details>
## Contributions
### Prerequisites
* [python](https://www.python.org) version 3.8 and above
* [uv](https://docs.astral.sh/uv)
* [docker](https://www.docker.com)
### Set up local environment
The following guide walks through setting up your local working environment using `pyenv`
as Python version manager and `uv` as Python package manager. If you do not have `pyenv`
installed, run the following command.
<details>
<summary> Install using Homebrew (Darwin) </summary>
```sh
brew install pyenv --head
```
</details>
<details>
<summary> Install using standalone installer (Darwin and Linux) </summary>
```sh
curl https://pyenv.run | bash
```
</details>
If you do not have `uv` installed, run the following command.
<details>
<summary> Install using Homebrew (Darwin) </summary>
```sh
brew install uv
```
</details>
<details>
<summary> Install using standalone installer (Darwin and Linux) </summary>
```sh
curl -LsSf https://astral.sh/uv/install.sh | sh
```
</details>
Once you have `pyenv` Python version manager installed, you can
install any version of Python above version 3.8 for this project.
The following commands help you set up and activate a Python virtual
environment where `uv` can download project dependencies from the `PyPI`
open-sourced registry defined under `pyproject.toml` file.
<details>
<summary> Set up environment and synchronize project dependencies </summary>
```sh
pyenv shell 3.11.9
uv venv --python-preference system
source .venv/bin/activate
uv sync --dev
```
</details>
Now you have the entire project set-up and ready to be tinkered with. Try out the
standard `arise` command which brings up a help menu.
<details>
<summary> Launch Arise Help </summary>
```sh
$ arise
> Usage: arise [OPTIONS] COMMAND [ARGS]...
>
> arise
>
> Options:
> --help Show this message and exit.
>
> Commands:
> auth Persist authentications in desired run-control file.
> build Build peripheral images for the desired cluster.
> clean Remove all active "arise-*" containers, drop network.
> dashboard Dashboard for checking current state of images deployed.
> deploy Deploy cluster.
> pull Pull core and peripheral images from GitHub container registry
```
</details>
## Attributions
1. [Dutch Golden Age Prints and Paintings](https://picryl.com/media/soldaat-die-zijn-roer-met-beide-handen-rechtop-voor-zich-vasthoudt-nr-20-ca-1c5eb2) - Rijksmuseum, Public Domain Marked.
2. [ปฐวี - Patavi](https://www.f0nt.com/release/sov-patavi) font by [uvSOV - Worawut Thanawatanawanich](fb.com/worawut.thanawatanawanich)
3. [Florent Galon](https://flo.rent) for flame animation used as Tusk's HellFire.
4. [Avinash Vytla](https://github.com/SnippetsDevelop) for breaking down Florent's process on [YouTube](https://youtu.be/RP_x_F7m1UI)
### Known issues
You may run into this setback when first running this project. This is a
[docker-py](https://github.com/docker/docker-py/issues/3059) issue widely known as of October 2022.
```python
docker.errors.DockerException:
Error while fetching server API version: (
'Connection aborted.', FileNotFoundError(
2, 'No such file or directory'
)
)
```
See the following issue for Mac OSX troubleshooting.
[docker from_env and pull is broken on mac](https://github.com/docker/docker-py/issues/3059#issuecomment-1294369344)
Recommended fix is to run the following command:
```sh
sudo ln -s "$HOME/.docker/run/docker.sock" /var/run/docker.sock
```
## License
This project is licensed under the terms of the MIT license.
Raw data
{
"_id": null,
"home_page": null,
"name": "arise",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "anonymous, bitcoin, cli, lightning, terminal, tui, ui, user-interface",
"author": null,
"author_email": "Sitt Guruvanich <aekasitt.g+github@siamintech.co.th>",
"download_url": "https://files.pythonhosted.org/packages/e3/2b/bb7c6691f384857d6bd491fcc6504379fc28fdfb554166b480e5c2d0eae1/arise-0.2.2.tar.gz",
"platform": null,
"description": "# Arise\n\n[![Bitcoin-only](https://img.shields.io/badge/bitcoin-only-FF9900?logo=bitcoin)](https://twentyone.world)\n[![Docker](https://img.shields.io/badge/docker-2496ED?&logo=docker&logoColor=white)](https://hub.docker.com)\n[![Top](https://img.shields.io/github/languages/top/krutt/arise)](https://github.com/krutt/arise)\n[![Languages](https://img.shields.io/github/languages/count/krutt/arise)](https://github.com/krutt/arise)\n[![Size](https://img.shields.io/github/repo-size/krutt/arise)](https://github.com/krutt/arise)\n[![Last commit](https://img.shields.io/github/last-commit/krutt/arise/master)](https://github.com/krutt/arise)\n\n[![Arise Banner](static/arise-banner.svg)](https://github.com/krutt/arise/blob/master/static/arise-banner.svg)\n\n## Getting started\n\nYou can use `arise` simply by installing via `pip` on your Terminal.\n\n```sh\npip install arise\n```\n<details>\n <summary> Sample output when running install command </summary>\n\n![Sample Pip Install](https://github.com/krutt/arise/blob/master/static/pip-install.gif)\n\n</details>\n\nAnd build required images with `build` command. The following shows you how to build a `Testnet`\nBitcoin-Core node as well as [electrs](https://github.com/aekasitt/electrs),\n[mempool](https://github.com/mempool/mempool) and [mutiny-web](https://github.com/MutinyWallet/mutiny-web)\n\n```sh\narise build --testnet --electrs --mempool --mutiny-web\n```\n\n<details>\n <summary> Sample output when running build command </summary>\n\n![Sample Arise Build](https://github.com/krutt/arise/blob/master/static/arise-build.gif)\n\n</details>\n\nThe initial build may take some time as it is downloading source codes from different repositories\nand interfacing with `Docker Daemon` to build according to flagged requirements. Once the build process\ncompletes, you can begin deploying local network with peripherals as such:\n\n```sh\narise deploy --testnet --with-electrs --with-mempool --with-mutiny-web\n```\n\n<details>\n<summary>Sample output when running deploy command</summary>\n\n![Sample Arise Deploy](https://github.com/krutt/arise/blob/master/static/arise-deploy.gif)\n\n\n</details>\n\nYou will have docker containers running in the backend, ready to be interfaced by your local\nenvironment applications you are developing.\n\n## Dashboard\n\nArise not only facilitates the deployment of intermingling [Bitcoin](https://twentyone.world) services\nbut allows you to view Node's Blockchain Information, Mempool Information, Peripheral Details and etc.\n\nIn order to view relevant metrics, launch the dashboard using the following command.\n\n```sh\narise dashboard\n```\n\n<details>\n <summary> Sample output when running dashboard command </summary>\n\n![Sample Arise Dashboard](https://github.com/krutt/arise/blob/master/static/arise-dashboard.gif)\n</details>\n\n## Contributions\n\n### Prerequisites\n\n* [python](https://www.python.org) version 3.8 and above\n* [uv](https://docs.astral.sh/uv)\n* [docker](https://www.docker.com)\n\n### Set up local environment\n\nThe following guide walks through setting up your local working environment using `pyenv`\nas Python version manager and `uv` as Python package manager. If you do not have `pyenv`\ninstalled, run the following command.\n\n<details>\n <summary> Install using Homebrew (Darwin) </summary>\n \n ```sh\n brew install pyenv --head\n ```\n</details>\n\n<details>\n <summary> Install using standalone installer (Darwin and Linux) </summary>\n \n ```sh\n curl https://pyenv.run | bash\n ```\n</details>\n\nIf you do not have `uv` installed, run the following command.\n\n<details>\n <summary> Install using Homebrew (Darwin) </summary>\n\n ```sh\n brew install uv\n ```\n</details>\n\n<details>\n <summary> Install using standalone installer (Darwin and Linux) </summary>\n\n ```sh\n curl -LsSf https://astral.sh/uv/install.sh | sh\n ```\n</details>\n\n\nOnce you have `pyenv` Python version manager installed, you can\ninstall any version of Python above version 3.8 for this project.\nThe following commands help you set up and activate a Python virtual\nenvironment where `uv` can download project dependencies from the `PyPI`\nopen-sourced registry defined under `pyproject.toml` file.\n\n<details>\n <summary> Set up environment and synchronize project dependencies </summary>\n\n ```sh\n pyenv shell 3.11.9\n uv venv --python-preference system\n source .venv/bin/activate\n uv sync --dev\n ```\n</details>\n\nNow you have the entire project set-up and ready to be tinkered with. Try out the\nstandard `arise` command which brings up a help menu.\n\n<details>\n <summary> Launch Arise Help </summary>\n\n ```sh\n $ arise\n > Usage: arise [OPTIONS] COMMAND [ARGS]...\n > \n > arise\n > \n > Options:\n > --help Show this message and exit.\n > \n > Commands:\n > auth Persist authentications in desired run-control file.\n > build Build peripheral images for the desired cluster.\n > clean Remove all active \"arise-*\" containers, drop network.\n > dashboard Dashboard for checking current state of images deployed.\n > deploy Deploy cluster.\n > pull Pull core and peripheral images from GitHub container registry\n ```\n</details>\n\n## Attributions\n\n1. [Dutch Golden Age Prints and Paintings](https://picryl.com/media/soldaat-die-zijn-roer-met-beide-handen-rechtop-voor-zich-vasthoudt-nr-20-ca-1c5eb2) - Rijksmuseum, Public Domain Marked.\n2. [\u0e1b\u0e10\u0e27\u0e35 - Patavi](https://www.f0nt.com/release/sov-patavi) font by [uvSOV - Worawut Thanawatanawanich](fb.com/worawut.thanawatanawanich)\n3. [Florent Galon](https://flo.rent) for flame animation used as Tusk's HellFire.\n4. [Avinash Vytla](https://github.com/SnippetsDevelop) for breaking down Florent's process on [YouTube](https://youtu.be/RP_x_F7m1UI)\n\n### Known issues\n\nYou may run into this setback when first running this project. This is a\n[docker-py](https://github.com/docker/docker-py/issues/3059) issue widely known as of October 2022.\n\n```python\ndocker.errors.DockerException:\n Error while fetching server API version: (\n 'Connection aborted.', FileNotFoundError(\n 2, 'No such file or directory'\n )\n )\n```\n\nSee the following issue for Mac OSX troubleshooting.\n[docker from_env and pull is broken on mac](https://github.com/docker/docker-py/issues/3059#issuecomment-1294369344)\nRecommended fix is to run the following command:\n\n```sh\nsudo ln -s \"$HOME/.docker/run/docker.sock\" /var/run/docker.sock\n```\n\n## License\n\nThis project is licensed under the terms of the MIT license.\n\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Running Bitcoin and peripherals via Terminal User Interface",
"version": "0.2.2",
"project_urls": null,
"split_keywords": [
"anonymous",
" bitcoin",
" cli",
" lightning",
" terminal",
" tui",
" ui",
" user-interface"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "01d913f38aa0e713dee56a71f553307548adb1796c5e7385436a1051c0c537ee",
"md5": "24cd4d9c29f69c71da547d0fa557f527",
"sha256": "9f11b2a70830bd095793335de156605c8d7f7de9f8dad3ab8aa7a8370f5faa2b"
},
"downloads": -1,
"filename": "arise-0.2.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "24cd4d9c29f69c71da547d0fa557f527",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 28391,
"upload_time": "2024-11-18T08:34:59",
"upload_time_iso_8601": "2024-11-18T08:34:59.331124Z",
"url": "https://files.pythonhosted.org/packages/01/d9/13f38aa0e713dee56a71f553307548adb1796c5e7385436a1051c0c537ee/arise-0.2.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "e32bbb7c6691f384857d6bd491fcc6504379fc28fdfb554166b480e5c2d0eae1",
"md5": "34f9c14e327efadd0da74cd9f43aaefb",
"sha256": "c31d798f545d1c4785e73cbc29a6bd2e9cb07fadfb99be34d78f6037d1584676"
},
"downloads": -1,
"filename": "arise-0.2.2.tar.gz",
"has_sig": false,
"md5_digest": "34f9c14e327efadd0da74cd9f43aaefb",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 18219287,
"upload_time": "2024-11-18T08:35:16",
"upload_time_iso_8601": "2024-11-18T08:35:16.284507Z",
"url": "https://files.pythonhosted.org/packages/e3/2b/bb7c6691f384857d6bd491fcc6504379fc28fdfb554166b480e5c2d0eae1/arise-0.2.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-11-18 08:35:16",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "arise"
}