A mobile-first responsive Web UI for the RaspiBlitz
Go to file
Christoph Stenglein 28891223fc
fix button styling in Action & DebugLogBox; Add header to ChangePwModal (#822)
* fix button styling in Action & DebugLogBox; Add header to ChangePwModal

* (InputPassword): use onPress
2025-02-14 21:47:03 +01:00
.github Chore/nodejs handling (#808) 2025-01-02 11:14:20 +01:00
.husky (dev): update dependencies 2024-02-17 07:17:03 +01:00
.idea fix: prettier config and prettier run to sort imports; add intellij files (#783) 2024-10-05 18:00:47 +02:00
.vscode chore: adjust vscode linting settings (#821) 2025-02-14 20:58:53 +01:00
backend-mock (feat): add alby hub to available apps (#806) 2024-12-19 20:38:42 +01:00
public (feat): add alby hub to available apps (#806) 2024-12-19 20:38:42 +01:00
src fix button styling in Action & DebugLogBox; Add header to ChangePwModal (#822) 2025-02-14 21:47:03 +01:00
tests chore: switch from eslint/prettier to biome (#802) 2024-12-25 13:21:10 +01:00
.gitignore Chore/playwright (#737) 2024-07-09 21:52:45 +02:00
.prettierrc (feat): add alby hub to available apps (#806) 2024-12-19 20:38:42 +01:00
.tool-versions Chore/nodejs handling (#808) 2025-01-02 11:14:20 +01:00
biome.json chore: switch from eslint/prettier to biome (#802) 2024-12-25 13:21:10 +01:00
index.html remove light mode; set dark as default for dashboard (#745) 2024-07-09 21:52:45 +02:00
LICENSE Create LICENSE 2021-03-28 18:34:26 +00:00
package-lock.json chore: react v19 (#820) 2025-02-14 21:27:51 +01:00
package.json chore: react v19 (#820) 2025-02-14 21:27:51 +01:00
playwright.config.ts chore: switch from eslint/prettier to biome (#802) 2024-12-25 13:21:10 +01:00
postcss.config.cjs chore: switch from eslint/prettier to biome (#802) 2024-12-25 13:21:10 +01:00
preview.png update readme and preview image 2022-07-27 07:04:17 +02:00
README.md Chore/nodejs handling (#808) 2025-01-02 11:14:20 +01:00
tailwind.config.js Chore/deps heroui (#819) 2025-02-14 21:13:50 +01:00
tsconfig.json login again if token still valid after page reload (#758) 2024-07-27 15:27:58 +02:00
vite.config.ts chore: switch from eslint/prettier to biome (#802) 2024-12-25 13:21:10 +01:00

Raspiblitz Web - a responsive Web UI for the RaspiBlitz

Raspiblitz Dashboard

In collaboration with Bitcoin Design.

Images of the WebUI can be found at raspiblitz-web-progress

Built with React & Tailwind CSS.

Translations

If you want to bring the Raspiblitz WebUI to other languages, please help us translate it via Weblate :)

Big thanks to our translators, which you can find in this README.

Development

Dependencies

Update npm dependencies

npm update

Dev workflow

Simple dev setup

npm install
cd backend-mock
npm install
cd ..
npm run dev:local

The npm run dev:local command starts the frontend and the backend mock server.

The backend mock server restarts automatically when you change a file in the backend-mock folder.

Frontend

npm install
npm run start

Backend

For the backend, there currently exist three options:

  • Use an existing RaspiBlitz
    • Easy to setup, but needs a RaspiBlitz
  • Using the provided Mock backend
    • Easy to setup, but limited data
  • Using blitz_api with Polar
    • Some changes needed for local development
    • Possibly more data (depending on your ln setup :) )
Mock backend

See backend-mock folder

Open another terminal

cd backend-mock
npm install
npm run start

Then go to http://localhost:3000 and use the password password.

Testing

Unit tests

npm test

E2E tests

Run tests headless:
npx playwright test

Run test with UI:
npx playwright test --ui

Blitz API

This guide uses Polar for easier development, but you can also use a real lightning node.

  • Download Polar and run it.
    • Create at least one bitcoin and one lightning node.
  • Clone the blitz_api and install the dependencies.
    • In addition, you will need redis installed for blitz_api to work.
  • Create a .env file (see .env_sample in blitz_api) and copy the bitcoin and ln info into it.
    • 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)
  • Make the following change in blitz_api:
    • In main/app/main.py, change the prefix_format from /v{major} to /api/v{major}.
  • Change the BACKEND_SERVER value in vite.config.ts to your local blitz_api installation.

Now you can start the blitz_api and run npm run start in raspiblitz-web.

Please do not commit the above changes.

Use a external RaspiBlitz as Backend

  • (Optional): Make sure asdf is installed
  • (Optional): Run asdf install nodejs latest:20
  • Install the dependencies with npm install
  • Change the BACKEND_SERVER value in 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
  • with npm run start it should now connect to your external RaspiBlitz

Credits & Licenses

Icons

App logos