diff --git a/README.md b/README.md index 563f4c4..48433a1 100644 --- a/README.md +++ b/README.md @@ -52,7 +52,7 @@ Deployment via Installer 2. Run the [deploy script](https://raw.githubusercontent.com/Snipa22/nodejs-pool/master/deployment/deploy.bash) as a **NON-ROOT USER**. This is very important! This script will install the pool to whatever user it's running under! Also. Go get a coffee, this sucker bootstraps the monero installation. 3. Once it's complete, change as `config.json` appropriate. It is pre-loaded for a local install of everything, running on 127.0.0.1. This will work perfectly fine if you're using a single node setup. You will also want to run: source ~/.bashrc This will activate NVM and get things working for the following pm2 steps. 4. You'll need to change the API end point for the frontend code in the `poolui/app/utils/services.js` -- This will usually be `http:///api` unless you tweak caddy! -5. Change the `db_storage_path` in `config.json` for your database directory to: `/home//pool_db/` The directory's already been created during startup. Or change as appropriate! Just make sure your user has write permissions, then run: `pm2 restart api` to reload the API for usage You'll also want to set `bind_ip` to the external IP of the pool server, and hostname to the resolvable hostname for the pool server. `pool_id` is mostly used for multi-server installations to provide unique identifiers in the backend. +5. Check `config.json` and change as appropriate. The default database directory `/home//pool_db/` is already been created during startup. If you change the `db_storage_path` just make sure your user has write permissions for new path. Run: `pm2 restart api` to reload the API for usage. You'll also want to set `bind_ip` to the external IP of the pool server, and `hostname` to the resolvable hostname for the pool server. `pool_id` is mostly used for multi-server installations to provide unique identifiers in the backend. 6. Hop into the web interface (Should be at `http:///#/admin`), then login with `Administrator/Password123`, **MAKE SURE TO CHANGE THIS PASSWORD ONCE YOU LOGIN**. *<- This step is currently not active, we're waiting for the frontend to catch up! Head down to the Manual SQL Configuration to take a look at what needs to be done by hand for now*. 7. From the admin panel, you can configure all of your pool's settings for addresses, payment thresholds, etc. 8. Once you're happy with the settings, go ahead and start all the pool daemons, commands follow. diff --git a/config_example.json b/config_example.json index 8900670..cf3ea8a 100644 --- a/config_example.json +++ b/config_example.json @@ -11,4 +11,4 @@ "user": "pool", "password": "98erhfiuehw987fh23d" } -} \ No newline at end of file +} diff --git a/deployment/caddyfile b/deployment/caddyfile index c5bd7df..e2331b7 100644 --- a/deployment/caddyfile +++ b/deployment/caddyfile @@ -12,4 +12,4 @@ } gzip mime .manifest text/cache-manifest -} \ No newline at end of file +} diff --git a/deployment/deploy.bash b/deployment/deploy.bash index 8e27d17..7abc513 100644 --- a/deployment/deploy.bash +++ b/deployment/deploy.bash @@ -31,12 +31,13 @@ sudo git clone https://github.com/monero-project/monero.git cd monero sudo git checkout 15eb2bcf6f2132c5410e937186b6a3121147d628 sudo git apply ~/nodejs-pool/deployment/fluffy.patch -sudo make -j 4 +sudo make -j$(nproc) sudo cp ~/nodejs-pool/deployment/monero.service /lib/systemd/system/ sudo useradd -m monerodaemon -d /home/monerodaemon -wget -O /tmp/blockchain.raw https://downloads.getmonero.org/blockchain.raw -sudo -u monerodaemon /usr/local/src/monero/build/release/bin/monero-blockchain-import --input-file /tmp/blockchain.raw --batch-size 20000 --database lmdb#fastest --verify off --data-dir /home/monerodaemon/.bitmonero -rm -f /tmp/blockchain.raw +BLOCKCHAIN_DOWNLOAD_DIR=$(mktemp -d) +wget -O $BLOCKCHAIN_DOWNLOAD_DIR/blockchain.raw https://downloads.getmonero.org/blockchain.raw +sudo -u monerodaemon /usr/local/src/monero/build/release/bin/monero-blockchain-import --input-file $BLOCKCHAIN_DOWNLOAD_DIR/blockchain.raw --batch-size 20000 --database lmdb#fastest --verify off --data-dir /home/monerodaemon/.bitmonero +rm -rf $BLOCKCHAIN_DOWNLOAD_DIR sudo systemctl daemon-reload sudo systemctl enable monero sudo systemctl start monero @@ -48,7 +49,7 @@ npm install npm install -g pm2 openssl req -subj "/C=IT/ST=Pool/L=Daemon/O=Mining Pool/CN=mining.pool" -newkey rsa:2048 -nodes -keyout cert.key -x509 -out cert.pem -days 36500 mkdir ~/pool_db/ -cp config_example.json config.json +sed -r "s/(\"db_storage_path\": ).*/\1\"\/home\/$CURUSER\/pool_db\/\",/" config_example.json > config.json cd ~ git clone https://github.com/mesh0000/poolui.git cd poolui @@ -57,10 +58,10 @@ npm install ./node_modules/gulp/bin/gulp.js build cd build sudo ln -s `pwd` /var/www -cd /tmp/ -wget -O caddy.tar.gz 'https://caddyserver.com/download/build?os=linux&arch=amd64&features=cors' -tar -xf caddy.tar.gz -sudo cp caddy /usr/local/bin +CADDY_DOWNLOAD_DIR=$(mktemp -d) +cd $CADDY_DOWNLOAD_DIR +curl -sL "https://caddyserver.com/download/build?os=linux&arch=amd64&features=cors" | tar -xz caddy init/linux-systemd/caddy.service +sudo mv caddy /usr/local/bin sudo chown root:root /usr/local/bin/caddy sudo chmod 755 /usr/local/bin/caddy sudo setcap 'cap_net_bind_service=+ep' /usr/local/bin/caddy @@ -74,13 +75,13 @@ sudo chmod 0770 /etc/ssl/caddy sudo cp ~/nodejs-pool/deployment/caddyfile /etc/caddy/Caddyfile sudo chown www-data:www-data /etc/caddy/Caddyfile sudo chmod 444 /etc/caddy/Caddyfile -sudo cp /tmp/init/linux-systemd/caddy.service /etc/systemd/system/ +sudo sh -c "sed 's/ProtectHome=true/ProtectHome=false/' init/linux-systemd/caddy.service > /etc/systemd/system/caddy.service" sudo chown root:root /etc/systemd/system/caddy.service sudo chmod 744 /etc/systemd/system/caddy.service -sudo sed -i 's/ProtectHome=true/ProtectHome=false/' /etc/systemd/system/caddy.service sudo systemctl daemon-reload sudo systemctl enable caddy.service sudo systemctl start caddy.service +rm -rf $CADDY_DOWNLOAD_DIR cd ~ sudo env PATH=$PATH:`pwd`/.nvm/versions/node/v6.9.2/bin `pwd`/.nvm/versions/node/v6.9.2/lib/node_modules/pm2/bin/pm2 startup systemd -u $CURUSER --hp `pwd` cd ~/nodejs-pool