{"id":18538830,"url":"https://github.com/raspiblitz/raspiblitz-web","last_synced_at":"2025-04-06T03:06:06.587Z","repository":{"id":36977846,"uuid":"352407711","full_name":"raspiblitz/raspiblitz-web","owner":"raspiblitz","description":"A mobile-first responsive Web UI for the RaspiBlitz","archived":false,"fork":false,"pushed_at":"2025-02-24T16:00:34.000Z","size":55445,"stargazers_count":68,"open_issues_count":52,"forks_count":24,"subscribers_count":9,"default_branch":"master","last_synced_at":"2025-03-30T02:04:17.862Z","etag":null,"topics":["bitcoin","raspiblitz","react","typescript","webapp"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/raspiblitz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-03-28T18:31:49.000Z","updated_at":"2025-03-22T20:45:08.000Z","dependencies_parsed_at":"2023-02-15T11:30:46.726Z","dependency_job_id":"f696548a-a0e7-4bd3-bdae-129229f55799","html_url":"https://github.com/raspiblitz/raspiblitz-web","commit_stats":null,"previous_names":["raspiblitz/raspiblitz-web"],"tags_count":9,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raspiblitz%2Fraspiblitz-web","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raspiblitz%2Fraspiblitz-web/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raspiblitz%2Fraspiblitz-web/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/raspiblitz%2Fraspiblitz-web/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/raspiblitz","download_url":"https://codeload.github.com/raspiblitz/raspiblitz-web/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247427005,"owners_count":20937200,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bitcoin","raspiblitz","react","typescript","webapp"],"created_at":"2024-11-06T19:45:07.349Z","updated_at":"2025-04-06T03:06:06.570Z","avatar_url":"https://github.com/raspiblitz.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eRaspiblitz Web - a responsive Web UI for the RaspiBlitz\u003c/h1\u003e\n\n![Raspiblitz Dashboard](preview.png)\n\nIn collaboration with [Bitcoin Design](https://bitcoin.design/).\n\nImages of the WebUI can be found at [raspiblitz-web-progress](https://github.com/cstenglein/raspiblitz-web-progress)\n\nBuilt with [React](https://reactjs.org/) \u0026 [Tailwind CSS](https://tailwindcss.com/).\n\n## Translations\n\nIf you want to bring the Raspiblitz WebUI to other languages, please help us translate it via [Weblate](https://hosted.weblate.org/projects/raspiblitz-web/translations/) :)\n\nBig thanks to our translators, which you can find in this [README](src/i18n/README.md).\n\n## Development\n\n### Dependencies\n\n- [Node.js](https://nodejs.org/en/download/)\n- [asdf](https://asdf-vm.com/) is supported but not required.\n\n#### Update npm dependencies\n\n```sh\nnpm update\n```\n\n### Dev workflow\n\n### Simple dev setup\n\n```bash\nnpm install\ncd backend-mock\nnpm install\ncd ..\nnpm run dev:local\n```\n\nThe `npm run dev:local` command starts the frontend and the backend mock server.\n\nThe backend mock server restarts automatically when you change a file in the `backend-mock` folder.\n\n#### Frontend\n\n```bash\nnpm install\nnpm run start\n```\n\n#### Backend\n\nFor the backend, there currently exist three options:\n\n- Use an existing RaspiBlitz\n  - Easy to setup, but needs a RaspiBlitz\n- Using the provided [Mock backend](#mock-backend)\n  - Easy to setup, but limited data\n- Using [blitz_api](#blitz-api) with Polar\n  - Some changes needed for local development\n  - Possibly more data (depending on your ln setup :) )\n\n##### Mock backend\n\nSee [backend-mock folder](./backend-mock)\n\nOpen another terminal\n\n```sh\ncd backend-mock\nnpm install\nnpm run start\n```\n\nThen go to `http://localhost:3000` and use the password `password`.\n\n### Testing\n\n#### Unit tests\n\n`npm test`\n\n#### E2E tests\n\nRun tests headless:\\\n`npx playwright test`\n\nRun test with UI:\\\n`npx playwright test --ui`\n\n##### Blitz API\n\nThis guide uses Polar for easier development, but you can also use a real lightning node.\n\n- Download [Polar](https://lightningpolar.com/) and run it.\n  - Create at least one bitcoin and one lightning node.\n- Clone the [blitz_api](https://github.com/fusion44/blitz_api) and install the dependencies.\n  - In addition, you will need [redis](https://redis.io/) installed for `blitz_api` to work.\n- Create a `.env` file (see [.env_sample in blitz_api](https://github.com/fusion44/blitz_api/blob/main/.env_sample)) and copy the bitcoin and ln info into it.\n  - Important: When definining `shell_script_path` you need to define a directory where a folder called `config.scripts` and a file called `blitz.debug.sh` reside in. Otherwise `blitz_api` may not work (used on the RaspiBlitz for logging)\n- Make the following change in `blitz_api`:\n  - In [main/app/main.py](https://github.com/fusion44/blitz_api/blob/main/app/main.py#L48), change the `prefix_format` from `/v{major}` to `/api/v{major}`.\n- Change the `BACKEND_SERVER` value in [vite.config.ts](vite.config.ts) to your local `blitz_api` installation.\n\nNow you can start the `blitz_api` and run `npm run start` in raspiblitz-web.\n\nPlease do not commit the above changes.\n\n### Use a external RaspiBlitz as Backend\n\n- (Optional): Make sure [asdf](https://asdf-vm.com/) is installed\n- (Optional): Run `asdf install nodejs latest:20`\n- Install the dependencies with `npm install`\n- Change the `BACKEND_SERVER` value in [vite.config.ts](vite.config.ts) to your local RaspiBlitz - for example if your RaspiBlitz is running on local IP `192.168.1.123` then change the value to `http://192.168.1.123:80`\n- with `npm run start` it should now connect to your external RaspiBlitz\n\n## Credits \u0026 Licenses\n\n### Icons\n\n- RaspiBlitz Icon from [RaspiBlitz](https://github.com/rootzoll/raspiblitz)\n  - [MIT License](https://github.com/rootzoll/raspiblitz/blob/v1.10/LICENSE)\n- Other icons from [Hero Icons](https://heroicons.com/) \u0026 [BitcoinDesign Icons](https://github.com/bitcoindesign/bitcoin-icons)\n  - [MIT License Hero Icons](https://github.com/tailwindlabs/heroicons/blob/master/LICENSE)\n  - [MIT License Bitcoin-Icons](https://github.com/BitcoinDesign/Bitcoin-Icons/blob/main/LICENSE)\n- CSS Loading Spinner from [loading.io](https://loading.io/css/)\n  - [CC0 License](https://loading.io/css/)\n- ButtonSpinner from [SpinKit](https://github.com/tobiasahlin/SpinKit)\n  - [MIT License](https://github.com/tobiasahlin/SpinKit/blob/master/LICENSE)\n\n### App logos\n\n- BTC RPC Logo from [Bitcoin Explorer](https://bitcoinexplorer.org)\n  - [MIT License](https://github.com/janoside/btc-rpc-explorer)\n- BTCPay Logo from [btcpayserver](https://github.com/btcpayserver/btcpayserver)\n  - [MIT License](https://github.com/btcpayserver/btcpayserver/blob/master/LICENSE)\n- RTL Logo from [RTL](https://github.com/Ride-The-Lightning/RTL)\n  - [MIT License](https://github.com/Ride-The-Lightning/RTL/blob/master/LICENSE)\n- Specter Logo from [specter-desktop](https://github.com/cryptoadvance/specter-desktop)\n  - [MIT License](https://github.com/cryptoadvance/specter-desktop/blob/master/LICENSE)\n- Mempool.space Logo from [mempool](https://github.com/mempool/mempool)\n  - [Mempool.space Trademark Policy](https://mempool.space/trademark-policy)\n- LNbits Logo from [lnbits-legend](https://github.com/lnbits/lnbits-legend)\n  - [MIT License](https://github.com/lnbits/lnbits-legend/blob/master/LICENSE)\n- LND Logo from [LightningLabs](https://github.com/lightningnetwork/lnd)\n  - [MIT License (?)](https://github.com/lightningnetwork/lnd/blob/master/LICENSE)\n- Core Lightning Logo from [Blockstream](https://blockstream.com/)\n  - [Blockstream Corporate Brand Guideline](https://blockstream.com/brand-assets/)\n- Alby Logo from [Alby media repo](https://github.com/getAlby/media)\n  - License unclear\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraspiblitz%2Fraspiblitz-web","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fraspiblitz%2Fraspiblitz-web","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fraspiblitz%2Fraspiblitz-web/lists"}