180 lines
5.2 KiB
Markdown
180 lines
5.2 KiB
Markdown
Description
|
||
===========
|
||
|
||
mmcFE-ng is a web frontend for Pooled LTC Mining.
|
||
|
||
The web frontend layout is based on mmcFE, the original work by Greedi:
|
||
https://github.com/Greedi/mmcFE
|
||
|
||
After working a few days trying to learn to run my own pool and the
|
||
systems behind it I figured I'd look a bit deeper in the code to
|
||
understand how it works. While doing so I also migrated the existing
|
||
code over to my own framework so maintenance would be easier in the
|
||
future.
|
||
|
||
**NOTE**: This project is still under development and commits are happening on a daily basis.
|
||
I do not recommend using this for a live setup as of yet. Wait for the later Release Candidate
|
||
if you wish to run your pool with it. Testing pools are much appreciated though!
|
||
|
||
Donations
|
||
=========
|
||
|
||
I was hoping to keep this out of the README but apparently people remove or change the LTC address
|
||
at the bottom of the page. For those of you finding my project and are willing to appreciate the work
|
||
with some hard earned LTC feel free to donate to my LTC address: `Lge95QR2frp9y1wJufjUPCycVsg5gLJPW8`
|
||
|
||
Requirements
|
||
============
|
||
|
||
This setup has been tested on Ubuntu 12.04, Ubuntu 13.04 and CentOS.
|
||
It should also work on any related distribution (RHEL, Debian).
|
||
For support on how to get `litecoind` or `pushpoold` to work, please ask
|
||
in the appropriate forums.
|
||
|
||
* Apache2
|
||
* libapache2-mod-php5
|
||
* PHP 5.4+
|
||
* php5-mysqlnd
|
||
* php5-memcached
|
||
* MySQL Server
|
||
* mysql-server
|
||
* memcached
|
||
* pushpoold
|
||
* litecoind
|
||
|
||
Features
|
||
========
|
||
|
||
The following feature have been implemented so far:
|
||
|
||
* Use of memcache for statistics instead of a cronjob
|
||
* Web User accounts
|
||
* Worker accounts
|
||
* Worker activity (live, past 10 minutes)
|
||
* Worker hashrates (live, past 10 minutes)
|
||
* Pool statistics
|
||
* Minimal Block statistics
|
||
* Pool donations
|
||
* Pool fees
|
||
* Manual payout with 0.1 LTC fee
|
||
* Auto payout with 0.1 LTC fee
|
||
* Transaction list (confirmed and unconfirmed)
|
||
|
||
Installation
|
||
============
|
||
|
||
Please ensure you fullfill the minimal installation requirements listed above
|
||
and install any missing packages or software.
|
||
|
||
Download Source
|
||
---------------
|
||
|
||
Download the (stable) master branch from Github:
|
||
|
||
```
|
||
git clone -b master git://github.com/TheSerapher/php-mmcfe-ng.git mmcfe-ng
|
||
```
|
||
|
||
Or, if you are not using git, use the ZIP file provided:
|
||
|
||
```
|
||
wget https://github.com/TheSerapher/php-mmcfe-ng/archive/master.zip
|
||
unzip master.zip
|
||
mv php-mmcfe-ng-master mmcfe-ng
|
||
```
|
||
|
||
Permissions
|
||
-----------
|
||
|
||
Please ensure your webuser (e.g. `www-data`, `apache`) has write access to
|
||
the `mmcfe-ng/public/templates/compile` folder! Otherwise compiled
|
||
templates can not be stored:
|
||
|
||
```
|
||
sudo chown www-data mmcfe-ng/public/templates/compile
|
||
```
|
||
|
||
Apache2 Configuration
|
||
---------------------
|
||
|
||
Please point your website document root to the `mmcfe-ng/public` folder
|
||
and enable auto-index for `index.php`.
|
||
|
||
Memcache
|
||
--------
|
||
|
||
Please install and start a default memcache instance. Not only would you
|
||
need one for `pushpoold` but the statistics page is storing data in
|
||
`memcache` as well to improve performance. Your memcache can be
|
||
configured in the global configuration file (see below).
|
||
|
||
Configuration
|
||
-------------
|
||
|
||
Please create the `mmcfe-ng/public/include/config/global.inc.php`
|
||
configuration from the supplied template
|
||
`mmcfe-ng/public/include/config/global.inc.dist.php`.
|
||
|
||
Pushpoold
|
||
---------
|
||
|
||
Please ensure the passwords are read from the proper table by adding this to your configuration:
|
||
|
||
```
|
||
# database settings
|
||
"database" : {
|
||
"engine" : "mysql",
|
||
"port" : "3306",
|
||
"name" : "mmcfeng_database_name",
|
||
"username" : "someuser",
|
||
"password" : "somepass",
|
||
"sharelog" : true,
|
||
"stmt.pwdb":"SELECT `password` FROM `workers` WHERE `username` = ?",
|
||
"stmt.sharelog":"INSERT INTO shares (rem_host, username, our_result, upstream_result, reason, solution) VALUES (?, ?, ?, ?, ?, ?)"
|
||
},
|
||
|
||
```
|
||
|
||
Database
|
||
========
|
||
|
||
Now that the software is ready we need to import the database.
|
||
You will find the SQL file in the `mmcfe-ng/sql` folder.
|
||
Import this file into an existing database and you should
|
||
have the proper structure ready.
|
||
|
||
TODO
|
||
====
|
||
|
||
I tried to cover most features available in mmcFE. There might be some missing still
|
||
(like graphs, some stats) but if you figure there is a core function missing please let
|
||
me know by creating an [Issue][1] marked as `Feature Request`.
|
||
|
||
Disclaimer
|
||
==========
|
||
|
||
This is a **WIP Project**. Most functionality is now added, the core
|
||
features are available and the backend cronjobs are working. I would not recommend
|
||
running this on a live pool yet. You can play around and test basic functionality but
|
||
wait for any live deployment for at least a stable Release Candidate.
|
||
|
||
[1]: https://github.com/TheSerapher/php-mmcfe-ng/issues "Issue"
|
||
|
||
License and Author
|
||
==================
|
||
|
||
Copyright 2012, Sebastian Grewe
|
||
|
||
Licensed under the Apache License, Version 2.0 (the "License");
|
||
you may not use this file except in compliance with the License.
|
||
You may obtain a copy of the License at
|
||
|
||
http://www.apache.org/licenses/LICENSE-2.0
|
||
|
||
Unless required by applicable law or agreed to in writing, software
|
||
distributed under the License is distributed on an "AS IS" BASIS,
|
||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||
See the License for the specific language governing permissions and
|
||
limitations under the License.
|
||
|