Ever since we started experimenting with eosio to create private testnets back in dawn 1.0 days, we had the necessity to manage our nodes (start, stop , verify logs and so on...) and it hasn't been very pratical in a security standpoint to give direct ssh access to the machine for everyone.
Then we joined public testnets and noticed that crashes were happening very often and sometimes we weren't able to relaunch our nodes, simply because we weren't in a place or time with ssh access. So came the idea to build a web based remote control panel for eos.io nodes. It will be most useful to block producers, but also to other non-producing full nodes as well.
We welcome everyone to test our tool and collaborate with future improvements
You can read the instruction on how to install on your node in:
So, how it works...
We are using the PM2 process manager for Node.js to launch and keep running two apps and also lately we decided to launch keosd (eosio wallet daemon) with it too, PM2 is very handy to manage startup launch an monitor individual apps.
This is the main app, its responsible for doing constant health checks on the nodeos process and to launch a secure web sever (https) with authentication support that hosts the control panel.
remember to change the login and password on the config.js file
The app creates a self-signed ssl certificate on the fly, but you can add your own too ;)
For now you are able to Start / Stop / Reload you node as well as to keep an eye on RAM and CPU usage, but there is much more to come!
Its an api proxy to protect the net_api_plugin from external access, while allowing any other traffic to pass through, its launched as a clustered process in PM2 which allow to lighten request load on the single-threaded (for now) nodeos process. We plan to add support for cached block request to come exclusively from this api, leaving nodeos to handle only the slower actions (such as pushing transactions)
- P2P connection management
- Fork detection
- Cached requests
- Network metrics
- Disk usage metrics
- External Alerts (email , sms maybe)
- Multi-node management support
- Master/slave node operation