diff --git a/deployment/bare_metal/install.sh b/deployment/bare_metal/install.sh deleted file mode 100755 index 284e40576..000000000 --- a/deployment/bare_metal/install.sh +++ /dev/null @@ -1,149 +0,0 @@ -#!/bin/bash - -# This install script requires the minimum requirements already installed. -# How to do this is described in detail in [setup.md](./setup.md) - -# Find current directory & configure paths -## For manualy use in terminal -## set -o allexport -## SCRIPT_DIR=$(pwd) -## PROJECT_ROOT=$SCRIPT_DIR/../.. -## set +o allexport -# Use here in script -set -o allexport -SCRIPT_PATH=$(realpath $0) -SCRIPT_DIR=$(dirname $SCRIPT_PATH) -PROJECT_ROOT=$SCRIPT_DIR/../.. -set +o allexport - -# Load .env or .env.dist if not present -# NOTE: all config values will be in process.env when starting -# the services and will therefore take precedence over the .env -if [ -f "$SCRIPT_DIR/.env" ]; then - set -o allexport - source $SCRIPT_DIR/.env - set +o allexport -else - set -o allexport - source $SCRIPT_DIR/.env.dist - set +o allexport -fi - -# Configure git -git config pull.ff only - -# Install mariadb -sudo apt-get install -y mariadb-server -sudo mysql_secure_installation -# Enter current password for root (enter for none): enter -# Switch to unix_socket authentication [Y/n] Y -# Change the root password? [Y/n] n -# Remove anonymous users? [Y/n] Y -# Disallow root login remotely? [Y/n] Y -# Remove test database and access to it? [Y/n] Y -# Reload privilege tables now? [Y/n] Y - -# Install nginx -sudo apt-get install -y nginx -sudo rm /etc/nginx/sites-enabled/default -sudo ln -s /home/gradido/gradido/deployment/bare_metal/nginx/sites-available/gradido.conf /etc/nginx/sites-available -# sudo ln -s /etc/nginx/sites-available/gradido.conf /etc/nginx/sites-enabled -sudo ln -s /home/gradido/gradido/deployment/bare_metal/nginx/sites-available/update-page.conf /etc/nginx/sites-available -sudo ln -s /home/gradido/gradido/deployment/bare_metal/nginx/common /etc/nginx/ -sudo rmdir /etc/nginx/conf.d -sudo ln -s /home/gradido/gradido/deployment/bare_metal/nginx/conf.d /etc/nginx/ - -# Allow nginx configuration and restart for gradido -#TODO generate file -sudo nano /etc/sudoers.d/gradido -> gradido ALL=(ALL) NOPASSWD: /etc/init.d/nginx start,/etc/init.d/nginx stop,/etc/init.d/nginx restart -sudo chmod a+rw /etc/nginx/sites-enabled - -# Install node 16.x -sudo apt-get install -y curl -curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash - -sudo apt-get install -y nodejs -sudo apt-get install -y build-essential - -# Install yarn -sudo apt-get install -y gnupg -curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - -echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list -sudo apt-get update -sudo apt-get install -y yarn - -# Install pm2 -sudo yarn global add pm2 -pm2 startup -> execute command output in shell - -# Install certbot -sudo apt-get install -y certbot -sudo apt-get install -y python3-certbot-nginx -sudo certbot -> Enter email address (used for urgent renewal and security notices) > e.g. support@supportmail.com -> Please read the Terms of Service at > Y -> Would you be willing, once your first certificate is successfully issued, to > N -> No names were found in your configuration files. Please enter in your domain > stage1.gradido.net -# Note: this will throw an error regarding not beeing able to identify the nginx corresponding -# config but produce the required certificate - thats perfectly fine this way -# Troubleshoot: to manually renew a certificate with running nginx use the following command: -# (this might be required once to properly have things setup for the cron to autorenew) -# sudo certbot --nginx -d example.com -d www.example.com -# Troubleshoot: to check ut if things working you can use -# sudo certbot renew --dry-run - -# Install logrotate -sudo apt-get install -y logrotate -envsubst "$(env | sed -e 's/=.*//' -e 's/^/\$/g')" < $SCRIPT_DIR/logrotate/gradido.conf.template > $SCRIPT_DIR/logrotate/gradido.conf -sudo cp $SCRIPT_DIR/logrotate/gradido.conf.template /etc/logrotate.d/gradido.conf -sudo chown root:root /etc/logrotate.d/gradido.conf - -# Install mysql autobackup -sudo apt-get install -y automysqlbackup - -# Webhooks (optional) (for development) -sudo apt install -y webhook -# TODO generate -# put hook into github -# TODO adjust secret -# TODO adjust branch if needed -# https://stage1.gradido.net/hooks/github -envsubst "$(env | sed -e 's/=.*//' -e 's/^/\$/g')" < $SCRIPT_DIR/webhook/hooks.json.template > ~/hooks.json - -webhook -hooks ~/hooks.json & -# or for debugging -# webhook -hooks ~/hooks.json -verbose - -# create db user -export DB_USER=gradido -export DB_PASSWORD=$(< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-32};echo); -sudo mysql < $PROJECT_ROOT/database/.env - -# Configure backend -export JWT_SECRET=$(< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c${1:-32};echo); -envsubst "$(env | sed -e 's/=.*//' -e 's/^/\$/g')" < $PROJECT_ROOT/backend/.env.template > $PROJECT_ROOT/backend/.env - -# Configure frontend -envsubst "$(env | sed -e 's/=.*//' -e 's/^/\$/g')" < $PROJECT_ROOT/frontend/.env.template > $PROJECT_ROOT/frontend/.env - -# Configure admin -envsubst "$(env | sed -e 's/=.*//' -e 's/^/\$/g')" < $PROJECT_ROOT/admin/.env.template > $PROJECT_ROOT/admin/.env - -# Configure dht-node -envsubst "$(env | sed -e 's/=.*//' -e 's/^/\$/g')" < $PROJECT_ROOT/dht-node/.env.template > $PROJECT_ROOT/dht-node/.env - -# create cronjob to delete yarn output in /tmp -# crontab -e -# hourly job: 0 * * * * find /tmp -name "yarn--*" -cmin +60 -exec rm -r {} \; > /dev/null -# daily job: 0 4 * * * find /tmp -name "yarn--*" -ctime +1 -exec rm -r {} \; > /dev/null -# Start gradido -# Note: on first startup some errors will occur - nothing serious -./start.sh diff --git a/deployment/bare_metal/start.sh b/deployment/bare_metal/start.sh index 194e879e6..4ba2229bb 100755 --- a/deployment/bare_metal/start.sh +++ b/deployment/bare_metal/start.sh @@ -184,7 +184,7 @@ cd $PROJECT_ROOT # TODO: this overfetches alot, but ensures we can use start.sh with tags git fetch --all git checkout $BRANCH_NAME -git pull +git pull origin $BRANCH_NAME git submodule update --init --recursive export BUILD_COMMIT="$(git rev-parse HEAD)"