One-click Bitcoin Lightning networks for local app development & testing
Polar was built to help Lightning Network application developers quickly spin up one or more networks locally on their computers.
With Polar you can:
- Create a regtest Lightning Network in just a few clicks
- Connect from your app to the lightning nodes via RPC
- Add more nodes using drag & drop
- Start and stop individual nodes
- Open & Close Channels
- Create & Pay Lightning Invoices
- Launch a terminal in each bitcoin/lightning node
- View streaming logs from each node
- Manually mine new blocks
- Deposit regtest coins into each Lightning node
- Export and import networks, for sharing with other Lightning developers
- Create you own docker images to use as custom nodes (ex: master branch, local fork)
Supported Network Node Versions:
- LND - v0.16.0, v0.15.5, v0.14.3, v0.13.1
- Core Lightning - v23.02.2, v22.11, v0.12.0, v0.11.2, v0.10.2
- Eclair - v0.8.0, v0.7.0, v0.6.2, v0.5.0
- Bitcoin Core - v24.0, v23.0, v22.0, v0.21.1
Polar requires that you have Docker installed to create the local networks
- On Mac & Windows, you can just install Docker Desktop
- On Linux, you need to install Docker Server and Docker Compose separately.
You will be prompted to install Docker if Polar cannot detect it automatically
- On Mac & Windows, you must uncheck "Use Docker Compose V2" in Docker Desktop settings. We're waiting on Compose v2 support in the
docker-compose
NPM package (See PDMLab/docker-compose#228) - On Linux, Docker Desktop is currently not supported due to a significant change in how it handles file sharing between host and container (See #636)
Download Polar v1.4.0 for your OS
Alternative and older version binaries can be found in the GitHub releases
Polar's translations are managed on Crowdin. The initial translations of 10 languages were done by machine (Google Translate) and are likely to not be 100% accurate. If you speak multiple languages and wish to help with translations, please feel free to head over to the project page on Crowdin and submit updated strings. This assistance would be greatly appreciated.
If you would like to learn how to package Polar from source code or want to fix a bug or add a new feature, please see CONTRIBUTING for detailed instructions.
Command | Description |
---|---|
yarn |
install dependencies |
yarn dev |
run the app with react hot reloading and electron live restarting |
yarn test |
run unit tests in watch mode |
yarn test:e2e |
run e2e tests |
yarn lint:all |
run typescript and eslint syntax checking |
yarn package |
package the app for your OS |
- Electron: cross platform desktop app framework
- Typescript: increased productivity with a typed language
- ReactJS: declarative UI library for JavaScript
- Create React App: minimize build configuration
- easy-peasy: Redux state management without the boilerplate
- Emotion: simplified CSS style composition
- Ant Design: don't reinvent the wheel with UI design
- react-i18next: support for multiple languages (english/spanish included)
- electron-log: multi-level logging to console and file
- Prettier: keep code format consistent
- ESLint: follow code quality best practices
- Github Actions: automate builds and testing on Windows/Mac/Linux
- Renovate Bot: automate dependency upgrades via GitHub bot
- Jest: delightful JavaScript testing
- React Testing Library: React specific testing utilities
- CodeCov: maintain quality of unit tests
- Testcafe: End-to-end is important
- commitlint: standardize git commit messages
- standard-version: automate release versioning and changelog generation
Huge thanks to maintainers of Lightning Joule, Zap Wallet, LND, Bitcoin Core, along with many others for the amazing apps & libraries that gave this project inspiration, ideas & sometimes even a little code 😊.