Another alternative p2pool UI. Makes use of Bootstrap, jQuery and Highcharts. Compatible with Standard p2pool and Extended p2pool (and any forks that pull these extensions)
Features:
- Important information at the top of the page
- Mobile friendly
- Each user can highlight their own miners through configuration stored on the local client
- Change themes with the click of a button (themes provided by: Bootswatch.com)
- Chart indicates when blocks are found (merged from https://github.com/roy7/p2pool-node-status)
See Screenshots:
To run this UI in parallel to your current p2pool web interface, do in your web-static directory:
git clone https://github.com/justino/p2pool-ui-punchy.git
To replace your current web-static, in the top directory of your p2pool installation:
mv web-static web-static-original
git clone https://github.com/justino/p2pool-ui-punchy.git
ln -s p2pool-ui-punchy web-static
Once you have the UI installed, you'll need to create a configuration file.
You can find the file in the /js/
directory.
Copy the example config config.example.js
to config.js
and modify to fit your needs.
See the Configuration
section below for option descriptions.
Once this is setup, you'll be able to access the UI either by:
http://<url-to-your-p2pool>:<port>/static/p2pool-ui-punchy/
if you chose to do a parallel installation
or
http://<url-to-your-p2pool>:<port>/static
is you chose to do a replacement installation
The config.js
is found in js
directory.
If you want your server miner addresses highlighted, adjust myself
variable accordingly. E.g.
var config = {
myself: [
"195ufic8mfNrDqxgFCfmw5mQYwdu2im9G5",
"1MzFr1eKzLEC1tuoZ7URMB7WWBMgHKimKe"
],
host: "",
reload_interval: 30,
reload_chart_interval: 600,
header_content_url: ""
}
You need to configure the host and port of your p2pool server in the host
variable like
var config = {
myself: [],
host: "http://p2pool.org:9332",
reload_interval: 30,
reload_chart_interval: 600,
header_content_url: ""
}
NOTE Loading content is subject to Same-Origin Policy
var config = {
myself: [],
host: "",
reload_interval: 30,
reload_chart_interval: 600,
header_content_url: "cool_content.html"
}
NOTE Loading content is subject to Same-Origin Policy
In the config hash, simply add a new key called theme
and set it's value to the name of the theme you'd like to
be the default.
var config = {
theme: 'cyborg'
}
In the config hash, simply add a new array key called available_themes
and add the theme name.
When adding custom themes, add the .min.css
file to the css
directory in the format:
./css/bootstrap-<THEME NAME>.min.css
var config = {
available_themes: [
'cool-theme'
]
}
Per default the UI updates the miner list and server stats every 30 seconds. You can adjust the reload_interval
variable like
var config = {
myself: [],
host: "",
reload_interval: 20,
reload_chart_interval: 1200,
header_content_url: ""
}
to set it to 20 seconds for example.
reload_chart_interval
sets the amount of seconds until the hashrate graph is reloaded. In above example, it's configured to 1200 seconds (20 minutes).
Beware that each API query puts network and CPU load on your p2pool installation. Avoid decreasing this value too much. In my tests, 20 to 30 seconds seem to be fair enough.
-
Replace HighCharts with another graph lib which can still be used on nodes having a fee (nodes considered as commercial)
-
Add section for recent shares and share tree in network
-
More graphs for the p2pool node
-
Individual address page with individual stats (more like tradition central pools, MPOS dashboard view)
-
jsonp.php - this was deprecated and should not be used, it was a huge security risk. Instead use standard remote host config. If that doesn't work because of cross-origin restrictions, check your p2pool HTTP config to allow it.
-
config.json - this was incorrectly designated as JSON when in fact it was really just plain javascript. Simply renaming it from
config.json
->config.js
will fix it.
If you like this UI, find it useful, or like that people out there are writing free software for everybody to use or contribute, please donate some coins:
Bitcoin: 195ufic8mfNrDqxgFCfmw5mQYwdu2im9G5
Ethereum: dee42d6b58e5d5d9f6f4c4783bea4fff34369c64
Dashpay: XerSXuygP6PeUoqVRyC2BFFHpUXXkFU8UP
The MIT License (MIT)
Copyright (c) 2014-2018 Justin La Sotten justin.otten@gmail.com
Copyright (c) 2013-2014 Alexander Zschach alex@zschach.net
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.