2020-06-29 18:52:07 +02:00
|
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
|
|
# https://github.com/dennisreimann/stacking-sats-kraken
|
|
|
|
|
|
|
|
|
|
USERNAME=stackingsats
|
2020-06-30 12:18:57 +02:00
|
|
|
|
APP_DATA_DIR=/mnt/hdd/app-data/stacking-sats-kraken
|
|
|
|
|
HOME_DIR=/home/$USERNAME
|
|
|
|
|
CONFIG_FILE=$APP_DATA_DIR/.env
|
2020-07-06 17:34:17 +02:00
|
|
|
|
RASPIBLITZ_FILE=/mnt/hdd/raspiblitz.conf
|
2020-11-10 23:34:23 +01:00
|
|
|
|
SCRIPT_DIR=$HOME_DIR/stacking-sats-kraken
|
2020-07-01 09:53:24 +02:00
|
|
|
|
SCRIPT_NAME=stacksats.sh
|
2021-08-18 23:31:27 +02:00
|
|
|
|
SCRIPT_VERSION=0.4.4
|
2020-06-29 18:52:07 +02:00
|
|
|
|
|
|
|
|
|
# command info
|
|
|
|
|
if [ $# -eq 0 ] || [ "$1" = "-h" ] || [ "$1" = "-help" ]; then
|
|
|
|
|
echo "small config script to switch stacking-sats-kraken on or off"
|
|
|
|
|
echo "bonus.stacking-sats-kraken.sh [on|off]"
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# switch on
|
|
|
|
|
if [ "$1" = "1" ] || [ "$1" = "on" ]; then
|
|
|
|
|
echo "*** INSTALL STACKING-SATS-KRAKEN ***"
|
|
|
|
|
|
2020-06-30 12:18:57 +02:00
|
|
|
|
isInstalled=$(sudo ls $HOME_DIR 2>/dev/null | grep -c 'stacking-sats-kraken')
|
2020-06-29 18:52:07 +02:00
|
|
|
|
if [ ${isInstalled} -eq 0 ]; then
|
|
|
|
|
|
|
|
|
|
# install nodeJS
|
2020-07-01 09:53:24 +02:00
|
|
|
|
/home/admin/config.scripts/bonus.nodejs.sh on
|
2020-06-29 18:52:07 +02:00
|
|
|
|
|
2020-06-30 12:18:57 +02:00
|
|
|
|
# add user
|
2020-06-29 18:52:07 +02:00
|
|
|
|
sudo adduser --disabled-password --gecos "" $USERNAME
|
|
|
|
|
|
|
|
|
|
# install stacking-sats-kraken
|
2020-06-30 12:18:57 +02:00
|
|
|
|
cd $HOME_DIR
|
2020-07-01 13:44:02 +02:00
|
|
|
|
sudo -u $USERNAME wget https://github.com/dennisreimann/stacking-sats-kraken/archive/v$SCRIPT_VERSION.tar.gz
|
|
|
|
|
sudo -u $USERNAME tar -xzf v$SCRIPT_VERSION.tar.gz
|
|
|
|
|
sudo -u $USERNAME mv stacking-sats-kraken{-$SCRIPT_VERSION,}
|
|
|
|
|
sudo -u $USERNAME rm v$SCRIPT_VERSION.tar.gz
|
2020-06-29 18:52:07 +02:00
|
|
|
|
cd stacking-sats-kraken
|
|
|
|
|
sudo -u $USERNAME npm install
|
2020-08-06 14:25:00 +02:00
|
|
|
|
if ! [ $? -eq 0 ]; then
|
|
|
|
|
echo "FAIL - npm install did not run correctly, aborting"
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
2020-06-29 18:52:07 +02:00
|
|
|
|
|
|
|
|
|
# setup stacking config
|
2020-07-01 16:04:21 +02:00
|
|
|
|
sudo mkdir -p $APP_DATA_DIR
|
2020-06-30 12:18:57 +02:00
|
|
|
|
sudo chown $USERNAME:$USERNAME $APP_DATA_DIR
|
2020-06-29 22:30:01 +02:00
|
|
|
|
|
2020-07-01 16:04:21 +02:00
|
|
|
|
if [[ ! -f "$CONFIG_FILE" ]]; then
|
|
|
|
|
configFile=/home/admin/stacking-sats-kraken.env
|
|
|
|
|
touch $configFile
|
|
|
|
|
sudo chmod 600 $configFile || exit 1
|
2020-06-29 22:30:01 +02:00
|
|
|
|
echo '# Required settings
|
2020-06-29 18:52:07 +02:00
|
|
|
|
KRAKEN_API_KEY="apiKeyFromTheKrakenSettings"
|
|
|
|
|
KRAKEN_API_SECRET="privateKeyFromTheKrakenSettings"
|
|
|
|
|
KRAKEN_API_FIAT="USD"
|
|
|
|
|
KRAKEN_BUY_AMOUNT=21
|
|
|
|
|
|
2021-08-27 03:59:21 -04:00
|
|
|
|
# Enable this to buy at market price instead of placing a limit order
|
2021-04-08 00:29:36 +02:00
|
|
|
|
# KRAKEN_ORDER_TYPE="market"
|
|
|
|
|
|
|
|
|
|
# Pay fee in this currency, e.g. buying XBT for USD and paying fee in XBT
|
|
|
|
|
# KRAKEN_FEE_CURRENCY="XBT"
|
|
|
|
|
|
|
|
|
|
# Set this if you live in Germany and get the EOrder:Trading agreement required error.
|
|
|
|
|
# See https://support.kraken.com/hc/en-us/articles/360000920026
|
|
|
|
|
# KRAKEN_GERMANY_TRADING_AGREEMENT="agree"
|
|
|
|
|
|
2020-11-10 23:34:23 +01:00
|
|
|
|
# Optional settings for withdrawal
|
|
|
|
|
# KRAKEN_MAX_REL_FEE=0.5 # maximum fee in % that you are willing to pay
|
|
|
|
|
# KRAKEN_WITHDRAW_KEY="descriptionOfWithdrawalAddress"
|
|
|
|
|
|
2020-06-29 22:30:01 +02:00
|
|
|
|
# Optional settings for confirmation mail – requires `blitz.notify.sh on`
|
|
|
|
|
# KRAKEN_MAIL_SUBJECT="Sats got stacked"
|
|
|
|
|
# KRAKEN_MAIL_FROM_ADDRESS="humble@satstacker.org"
|
|
|
|
|
# KRAKEN_MAIL_FROM_NAME="Humble Satstacker"
|
|
|
|
|
|
2020-06-29 18:52:07 +02:00
|
|
|
|
# Remove this line after verifying everything works
|
|
|
|
|
KRAKEN_DRY_RUN_PLACE_NO_ORDER=1
|
2020-06-29 22:30:01 +02:00
|
|
|
|
' > $configFile
|
2020-07-01 16:04:21 +02:00
|
|
|
|
sudo mv $configFile $CONFIG_FILE
|
|
|
|
|
fi
|
|
|
|
|
|
2020-06-29 22:30:01 +02:00
|
|
|
|
sudo chown $USERNAME:$USERNAME $CONFIG_FILE
|
2020-06-29 18:52:07 +02:00
|
|
|
|
|
|
|
|
|
# setup stacking script
|
2020-07-06 17:34:17 +02:00
|
|
|
|
scriptFile="/home/admin/$SCRIPT_NAME"
|
2020-06-29 18:52:07 +02:00
|
|
|
|
touch $scriptFile
|
|
|
|
|
sudo chmod 700 $scriptFile || exit 1
|
|
|
|
|
echo '#!/bin/bash
|
|
|
|
|
set -e
|
|
|
|
|
|
|
|
|
|
# hide deprecation warning
|
|
|
|
|
export NODE_OPTIONS="--no-deprecation"
|
|
|
|
|
|
|
|
|
|
# load config
|
2020-06-29 22:30:01 +02:00
|
|
|
|
set -a; source /mnt/hdd/app-data/stacking-sats-kraken/.env; set +a
|
2020-06-29 18:52:07 +02:00
|
|
|
|
|
2020-11-10 23:34:23 +01:00
|
|
|
|
# switch directory
|
|
|
|
|
cd $(cd `dirname $0` && pwd)
|
|
|
|
|
|
2020-06-29 18:52:07 +02:00
|
|
|
|
# run script
|
2020-11-10 23:34:23 +01:00
|
|
|
|
cmd=${1:-"stack"}
|
|
|
|
|
|
2020-07-01 09:53:24 +02:00
|
|
|
|
if [[ "${KRAKEN_DRY_RUN_PLACE_NO_ORDER}" ]]; then
|
2020-11-10 23:34:23 +01:00
|
|
|
|
result=$(npm run test:$cmd --silent 2>&1)
|
2020-06-29 18:52:07 +02:00
|
|
|
|
else
|
2020-11-10 23:34:23 +01:00
|
|
|
|
result=$(npm run $cmd --silent 2>&1)
|
2020-06-29 18:52:07 +02:00
|
|
|
|
fi
|
|
|
|
|
echo "$result"
|
|
|
|
|
|
2020-06-29 22:30:01 +02:00
|
|
|
|
# send email
|
2020-07-01 09:53:24 +02:00
|
|
|
|
if [[ "${KRAKEN_MAIL_SUBJECT}" && "${KRAKEN_MAIL_FROM_ADDRESS}" && "${KRAKEN_MAIL_FROM_NAME}" ]]; then
|
2020-06-29 22:30:01 +02:00
|
|
|
|
/home/admin/config.scripts/blitz.notify.sh send "$result" \
|
|
|
|
|
--subject "$KRAKEN_MAIL_SUBJECT" \
|
|
|
|
|
--from-name "$KRAKEN_MAIL_FROM_NAME" \
|
|
|
|
|
--from-address "$KRAKEN_MAIL_FROM_ADDRESS"
|
|
|
|
|
fi
|
|
|
|
|
' > $scriptFile
|
2020-06-29 18:52:07 +02:00
|
|
|
|
|
2020-11-10 23:34:23 +01:00
|
|
|
|
sudo mv $scriptFile $SCRIPT_DIR/$SCRIPT_NAME
|
|
|
|
|
sudo chown $USERNAME:$USERNAME $SCRIPT_DIR/$SCRIPT_NAME
|
2020-06-29 18:52:07 +02:00
|
|
|
|
|
|
|
|
|
echo "OK - the STACKING-SATS-KRAKEN script is now installed."
|
|
|
|
|
echo ""
|
2020-06-29 22:30:01 +02:00
|
|
|
|
echo "Switch to the '$USERNAME' user and adapt the settings in $CONFIG_FILE"
|
2020-06-29 21:45:57 +02:00
|
|
|
|
|
|
|
|
|
# setting value in raspi blitz config
|
2020-07-06 17:34:17 +02:00
|
|
|
|
grep -q '^stackingSatsKraken' $RASPIBLITZ_FILE && sudo sed -i "s/^stackingSatsKraken=.*/stackingSatsKraken=on/g" $RASPIBLITZ_FILE || echo 'stackingSatsKraken=on' >> $RASPIBLITZ_FILE
|
2020-06-29 18:52:07 +02:00
|
|
|
|
else
|
|
|
|
|
echo "STACKING-SATS-KRAKEN already installed."
|
|
|
|
|
fi
|
|
|
|
|
|
2020-11-10 23:34:23 +01:00
|
|
|
|
cron_count=$(sudo -u $USERNAME crontab -l | grep "$SCRIPT_DIR/$SCRIPT_NAME" -c)
|
2020-06-29 22:30:01 +02:00
|
|
|
|
if [ "${cron_count}" = "0" ]; then
|
|
|
|
|
echo ""
|
|
|
|
|
echo "You might want to set up a cronjob to run the script in regular intervals."
|
|
|
|
|
echo "As the '$USERNAME' user you can run the 'crontab -e' command."
|
|
|
|
|
echo ""
|
|
|
|
|
echo "Here is an example for daily usage at 6:15am ..."
|
|
|
|
|
echo ""
|
2020-07-01 09:53:24 +02:00
|
|
|
|
echo "SHELL=/bin/bash"
|
2020-07-06 17:34:17 +02:00
|
|
|
|
echo "PATH=/bin:/usr/sbin:/usr/bin:/usr/local/bin"
|
2020-11-10 23:34:23 +01:00
|
|
|
|
echo "15 6 * * * $SCRIPT_DIR/$SCRIPT_NAME > /dev/null 2>&1"
|
2020-06-29 22:30:01 +02:00
|
|
|
|
fi
|
|
|
|
|
|
2020-06-29 18:52:07 +02:00
|
|
|
|
exit 0
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
# switch off
|
|
|
|
|
if [ "$1" = "0" ] || [ "$1" = "off" ]; then
|
|
|
|
|
echo "*** UNINSTALL STACKING-SATS-KRAKEN ***"
|
2020-06-30 12:18:57 +02:00
|
|
|
|
isInstalled=$(sudo ls $HOME_DIR 2>/dev/null | grep -c 'stacking-sats-kraken')
|
2020-06-29 18:52:07 +02:00
|
|
|
|
|
|
|
|
|
if [ ${isInstalled} -eq 1 ]; then
|
|
|
|
|
echo "*** REMOVING STACKING-SATS-KRAKEN ***"
|
|
|
|
|
|
2020-06-29 21:45:57 +02:00
|
|
|
|
# setting value in raspi blitz config
|
2020-07-06 17:34:17 +02:00
|
|
|
|
sudo sed -i "s/^stackingSatsKraken=.*/stackingSatsKraken=off/g" $RASPIBLITZ_FILE
|
2020-06-29 21:45:57 +02:00
|
|
|
|
|
2020-07-01 16:04:21 +02:00
|
|
|
|
# remove config
|
2020-06-30 12:18:57 +02:00
|
|
|
|
sudo rm -rf $APP_DATA_DIR
|
2020-06-29 18:52:07 +02:00
|
|
|
|
|
2020-06-30 12:18:57 +02:00
|
|
|
|
# delete user and home directory
|
|
|
|
|
sudo userdel -rf $USERNAME
|
2020-06-29 18:52:07 +02:00
|
|
|
|
|
2020-06-30 12:18:57 +02:00
|
|
|
|
echo "OK STACKING-SATS-KRAKEN removed."
|
2020-06-29 18:52:07 +02:00
|
|
|
|
else
|
|
|
|
|
echo "STACKING-SATS-KRAKEN is not installed."
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
exit 0
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
echo "FAIL - Unknown Parameter $1"
|
|
|
|
|
exit 1
|