mirror of
https://github.com/Retropex/apolloapi-v2.git
synced 2025-05-14 20:20:49 +02:00
125 lines
3.4 KiB
Bash
Executable File
125 lines
3.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
YELLOW='\033[1;33m'
|
|
RED='\033[0;31m'
|
|
NC='\033[0m'
|
|
|
|
if [ "$EUID" -ne 0 ]
|
|
then echo -e "${RED}Install script must be run by root or with sudo${NC}"
|
|
exit
|
|
fi
|
|
|
|
echo -e "${YELLOW} ---> Installing required system packages${NC}"
|
|
|
|
apt-get update
|
|
apt-get -y upgrade
|
|
|
|
DEBIAN_FRONTEND=noninteractive apt-get -y -q install tor htop net-tools iputils-ping zip unzip whois traceroute vim openssh-server curl git libssl-dev libxslt-dev libxml2-dev imagemagick libmagickwand-dev libreadline-dev zlib1g-dev libsqlite3-dev libpq-dev build-essential libxml2-dev build-essential libxslt1-dev zlib1g-dev python-dev vim git sudo iptables network-manager
|
|
|
|
APOLLO_DIR=/opt/apolloapi
|
|
|
|
echo -e "${YELLOW} ---> Adding futurebit user${NC}"
|
|
|
|
adduser -q --disabled-password --gecos "" futurebit
|
|
|
|
grep -qxF 'futurebit ALL=(ALL) NOPASSWD:ALL' /etc/sudoers || echo 'futurebit ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
|
|
|
|
echo -e "${YELLOW} ---> Cloning Apollo app${NC}"
|
|
|
|
mkdir -p $APOLLO_DIR
|
|
|
|
if [ "$1" = "dev" ]; then
|
|
echo -e "${YELLOW} ---> Using DEV branch"
|
|
git clone --single-branch --branch dev-BTC https://github.com/jstefanop/apolloapi.git $APOLLO_DIR
|
|
rm -rf $APOLLO_DIR/apolloui
|
|
git clone --single-branch --branch dev-BTC https://github.com/jstefanop/apolloui.git $APOLLO_DIR/apolloui
|
|
else
|
|
echo -e "${YELLOW} ---> Using PRODUCTION branch"
|
|
git clone --single-branch --branch production-BTC https://github.com/jstefanop/apolloapi.git $APOLLO_DIR
|
|
rm -rf $APOLLO_DIR/apolloui
|
|
git clone --single-branch --branch production-BTC https://github.com/jstefanop/apolloui.git $APOLLO_DIR/apolloui
|
|
fi
|
|
|
|
chown -R futurebit $APOLLO_DIR
|
|
|
|
echo -e "${YELLOW} ---> Installing firewall${NC}"
|
|
|
|
RC_LOCAL=/etc/rc.local
|
|
|
|
if [ ! -f "$RC_LOCAL" ]; then
|
|
touch $RC_LOCAL
|
|
fi
|
|
|
|
grep -q -F "$APOLLO_DIR/backend/firewall" $RC_LOCAL || sed -i "\$i \/opt\/apolloapi\/backend\/firewall" $RC_LOCAL
|
|
|
|
cd $APOLLO_DIR
|
|
|
|
echo -e "${YELLOW} ---> Installing NVM${NC}"
|
|
|
|
echo "Installing nvm"
|
|
mkdir /usr/local/nvm
|
|
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | NVM_DIR=/usr/local/nvm bash
|
|
|
|
. /usr/local/nvm/nvm.sh
|
|
|
|
nvm install 14.16.1
|
|
nvm alias default 14.16.1
|
|
|
|
### API ###
|
|
echo -e "${YELLOW} ---> Installing API modules${NC}"
|
|
|
|
npm -g i yarn
|
|
|
|
yarn
|
|
|
|
|
|
### UI ###
|
|
echo -e "${YELLOW} ---> Installing UI modules${NC}"
|
|
|
|
cd $APOLLO_DIR/apolloui
|
|
|
|
yarn
|
|
|
|
echo -e "${YELLOW} ---> Building UI (could take few minutes)${NC}"
|
|
|
|
yarn build
|
|
|
|
echo -e "${YELLOW} ---> Starting firewall${NC}"
|
|
|
|
bash $APOLLO_DIR/backend/firewall
|
|
|
|
echo -e "${YELLOW} ---> Installing miner binaries${NC}"
|
|
|
|
arch=$(uname -m)
|
|
|
|
cp $APOLLO_DIR/backend/apollo-miner/bin/$arch/apollo-miner $APOLLO_DIR/backend/apollo-miner/futurebit-miner
|
|
|
|
### Bitcoind ###
|
|
cp $APOLLO_DIR/backend/node/bin/$arch/bitcoind $APOLLO_DIR/backend/node/bitcoind
|
|
cp $APOLLO_DIR/backend/node/bin/bitcoin.conf $APOLLO_DIR/backend/node/bitcoin.conf
|
|
|
|
### TOR ###
|
|
usermod -a -G debian-tor futurebit
|
|
cp $APOLLO_DIR/backend/torrc /etc/tor/torrc
|
|
|
|
|
|
### SYSTEMD ###
|
|
echo -e "${YELLOW} ---> Installing systemd files${NC}"
|
|
|
|
|
|
cp $APOLLO_DIR/backend/systemd/apollo-ui.service /etc/systemd/system/
|
|
cp $APOLLO_DIR/backend/systemd/apollo-miner.service /etc/systemd/system/
|
|
cp $APOLLO_DIR/backend/systemd/node.service /etc/systemd/system/
|
|
cp $APOLLO_DIR/backend/systemd/swap.service /etc/systemd/system/
|
|
|
|
systemctl daemon-reload
|
|
|
|
systemctl enable swap
|
|
systemctl enable apollo-ui
|
|
systemctl enable apollo-miner
|
|
systemctl enable node
|
|
systemctl start apollo-ui
|
|
systemctl start tor
|
|
|
|
echo -e "${YELLOW} Installation complete${NC}"
|