Last active
March 2, 2018 03:04
-
-
Save TheSin-/5390a022e83c816b163f9a7fce663103 to your computer and use it in GitHub Desktop.
Terracoin + Supervisor + logrotate + Sentinel + Cron + terracoind-status - setup on VPS
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
#This will help anyone setup a Terracoin Masternode on a debian (Ubuntu) VPS | |
# change this values | |
version='0.12.1.8' # current terracoin release | |
coreversion='0.12.1' # current terracoin release minus last digit | |
##### don't change bellow this line ###### | |
sudo echo | |
username=`whoami` | |
rpcpass=$(tr -cd '[:alnum:]' < /dev/urandom | fold -w30 | head -n1) | |
ip=$(sudo ifconfig | grep -B1 "inet " |awk '{ if ( $1 == "inet" ) { print $2 } else if ( $2 == "Link" ) { printf "%s:" ,$1 } }' |awk -F: '{ print $1 }' | grep -v 127.0.0.1) | |
echo "Enter privkey: (from running masternode privkey in the debug console (also on wallet in masternode.conf)) " | |
read privkey | |
#Step 1 | |
sudo apt-get install python-virtualenv virtualenv git logrotate.d supervisor apache2 | |
# | |
cd ~ | |
wget https://terracoin.io/bin/terracoin-core-${version}/terracoin-${coreversion}-x86_64-linux-gnu.tar.gz | |
tar xzf terracoin-${coreversion}-x86_64-linux-gnu.tar.gz | |
wget https://services.terracoin.io/downloads/terracoinservices-updater-v1.tgz | |
tar xzf terracoinservices-updater-v1.tgz | |
if [ ! -d /usr/local/bin ]; then | |
sudo mkdir -p /usr/local/bin | |
fi | |
sudo cp terracoin-${coreversion}/bin/terracoind terracoin-${coreversion}/bin/terracoin-cli /usr/local/bin/ | |
mkdir ~/.terracoincore | |
cd ~/.terracoincore | |
git clone https://github.com/terracoin/sentinel.git && cd sentinel | |
virtualenv ./venv | |
./venv/bin/pip install -r requirements.txt | |
cd /var/www | |
git clone https://github.com/TheSin-/terracoind-status.git | |
sudo mv /var/www/html /var/www/html.orig | |
sudo ln -s /var/www/terracoind-status /var/www/html | |
sudo apache2ctl reload | |
sudo cat <<EOF > /etc/cron.d/terracoin | |
SHELL=/bin/sh | |
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin | |
0 */4 * * * ${username} cd /home/${username}/terracoincore/sentinel && git pull > /dev/null | |
* * * * * ${username} cd /home/${username}/.terracoincore/sentinel && test -x venv/bin/python && test -e bin/sentinel.py && SENTINEL_DEBUG=1 ./venv/bin/python bin/sentinel.py >> /var/log/sentinel.log 2>/dev/null | |
*/2 * * * * ${username} /home/${username}/terracoinservices-updater/trcupdater >> /var/log/trcupdater.log 2>&1 | |
0 */4 * * * root cd /var/www/terracoind-status && git pull > /dev/null | |
*/5 * * * * root curl -Ssk http://127.0.0.1/stats.php > /dev/null | |
*/5 * * * * root curl -Ssk http://127.0.0.1/peercount.php > /dev/null | |
*/5 * * * * root curl -Ssk http://127.0.0.1/masternodecount.php > /dev/null | |
*/5 * * * * root curl -Ssk http://127.0.0.1/difficulty.php > /dev/null | |
EOF | |
sudo cat <<EOF > /etc/logrotate.d/terracoin | |
/var/log/sentinel*.log, | |
/var/llog/trcupdater.log { | |
daily | |
missingok | |
rotate 7 | |
compress | |
delaycompress | |
notifempty | |
create 640 ${username} adm | |
} | |
/var/log/terracoind*.log { | |
daily | |
missingok | |
rotate 7 | |
compress | |
delaycompress | |
notifempty | |
sharedscripts | |
postrotate | |
/bin/kill -HUP `cat /home/${username}/.terracoincore/terracoind.pid 2>/dev/null` 2>/dev/null || true | |
endscript | |
} | |
EOF | |
sudo cat <<EOF > /etc/supervisor/cron.d/terracoind.conf | |
[program:terracoind] | |
environment = HOME="/home/${username}" | |
command = /usr/local/bin/terracoind -printtoconsole | |
user = ${username} | |
autostart = true | |
autorestart = true | |
stopsignal = INT | |
stdout_logfile = /var/log/terracoind.log | |
stderr_logfile = /var/log/terracoind.log | |
EOF | |
cat <<EOF > /home/${username}/.terracoincore/terracoin.conf | |
server=1 | |
rpcbind=127.0.0.1 | |
rpcbind=[::1] | |
rpcuser=terracoincore | |
rpcpassword=${rpcpass} | |
rpcallowip=127.0.0.1 | |
rpcallowip=::1 | |
disablewallet=1 | |
externalip=${ip}:13333 | |
masternode=1 | |
masternodeprivkey=${privkey} | |
EOF | |
sudo service restart supervisor | |
echo "rpcuser = terracoincore, rpcpass = ${rpcpass}" | |
echo "please setup /home/${username}/terracoinservices-updater/terracoinservices.conf" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment