Skip to content

Instantly share code, notes, and snippets.

@TheSin-
Last active March 2, 2018 03:04
Show Gist options
  • Save TheSin-/5390a022e83c816b163f9a7fce663103 to your computer and use it in GitHub Desktop.
Save TheSin-/5390a022e83c816b163f9a7fce663103 to your computer and use it in GitHub Desktop.
Terracoin + Supervisor + logrotate + Sentinel + Cron + terracoind-status - setup on VPS
#!/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