Security News
Fluent Assertions Faces Backlash After Abandoning Open Source Licensing
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
This is the official repo for the bPanel project, a full featured, enterprise level GUI for your Bcoin Bitcoin node.
NOTE: It is important to be using at least this version of npm
because of a bug that removes node_modules
that are installed from
GitHub and doesn't reinstall them which breaks the build
The standard docker-compose.yml
file brings up multiple containers
Some plugins require TLS to function properly
This is primarily a setup for development purposes (though it could be used in production with some modification).
To spin up your webapp, reverse-proxy, server, a bcoin node on regtest, and generate 50 regtest BTC for your primary wallet, clone & navigate to this repo then:
npm install
to create a secrets.env file.docker-compose up -d
to start everything.Requests to /node
will get forwarded to your bcoin node.
For local development, you run just the bcoin docker container (docker-compose up -d bcoin
)
and then npm run start:dev
(or npm run start:poll
for Mac since webpack's watch behaves strangely
on mac sometimes) to run the app and app server from your local box.
bPanel comes pre-installed with a default theme called Genesis Theme
,
that bundles together a set of useful starter plugins and a custom theme called bMenace.
If you want, you can disable the Genesis Theme by removing it from the list in pluginsConfig.js
,
but if you want to keep using some of the plugins from the theme, feel free to add
them individually to your config!
To install plugins, simply add the name as a string to the plugins
array in pluginsConfig.js
.
Make sure to match the name to the package name on npm
(localPlugins
can be used for plugins you are developing in the plugins/local
directory).
Once you save the file, bPanel will automatically install the plugins and rebuild.
Note that if you have some plugins or themes being loaded,
this can take around 30 seconds as npm install
is run for you.
There are three docker services in the compose file: app
, bcoin
and securityc
.
The app
service acts as a static file server and as a request router to backend services.
The bcoin
service is an instance of bcoin
that supports an http server, a wallet server and a bitcoin p2p server.
The securityc
service generates TLS keys and certs and runs a TLS terminating reverse proxy.
You can use custom configs to connect to an existing node,
or use the bcoin docker service to spin up a bcoin node that the webapp will connect to.
Configurations are shared between the two docker containers using ENV files.
Your bcoin node will expect an API key given to it.
If you are connecting to an existing node, you can set an API key
by adding it to the secrets.env
file and set BCOIN_API_KEY=[YOUR-AWESOME-KEY]
.
This key can be any value you want (but if you are running a node with real Bitcoins, make sure it's secure!).
NOTE: DO NOT CHECK THIS FILE IN TO VERSION CONTROL.
If you run npm install
and there is no secrets.env
present,
one will automatically be generated for you with a cryptographically secure api key.
The configs are managed through environment variables set in a bcoin.env
file
(this is not ignored by git, so make sure to only put sensitive information in the secrets.env
file).
These get used by both the app and bcoin containers.
NOTE: runtime environment vars will override the values set in the env files.
If you want to connect to an existing node on a remote server, update the environment configs to point to your remote node. To deploy in a docker container run:
$ docker-compose up app
Otherwise, for local development, run
$ npm run start:poll
(For Linux you can run npm run start:dev
instead)
If you want to stop any of the containers, you can run the command:
$ docker-compose stop [SERVICE_NAME]
This is useful if you do not want to develop with all of the services running.
Setup scripts are also supported. This will allow you to run scripts on your node for a repeatable and predictable environment for testing or development.
Three circumstances need to be met to run a script:
scripts
directory that exports a function to runBCOIN_INIT_SCRIPT
in the docker-composeThese checks are done in the docker-bcoin-init.js
which sets up a node
based on the configs described above.
Setup scripts will also be passed the bcoin node object that has been created.
By default, the bcoin and wallet DBs persist in ~/.bcoin_bpanel
.
If you want docker to start bcoin with a fresh DB, comment out the .bcoin
volume in docker-compose.yml
then run docker-compose up -d
.
Uncomment the relevant build:
sections in docker-compose.yml
for the services you want to build, then run docker-compose build
The bPanel UI is built entirely around plugins. All visual elements can be extended or overridden via the plugin system including the header, footer, sidebar, and main panel/view element. To get started making your own plugin, use the bPanel-cli
The simplest thing to do, is to create your own server file that includes server/index.js
.
const bpanel = require('bpanel')({
network: 'main', // Put bPanel configs here (optional)
});
const app = require('express')();
app.use( /* Put your own middleware here */ );
app.use( bpanel.app );
app.listen( 5000 );
FAQs
GUI application to interact with a Bcoin Bitcoin node
We found that bpanel demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
Research
Security News
Socket researchers uncover the risks of a malicious Python package targeting Discord developers.
Security News
The UK is proposing a bold ban on ransomware payments by public entities to disrupt cybercrime, protect critical services, and lead global cybersecurity efforts.