85 lines
2.0 KiB
Bash
85 lines
2.0 KiB
Bash
#!/bin/bash
|
|
|
|
if [ "$(id -u)" != "0" ]; then
|
|
echo -e "\033[31mThis script requires superuser rights.\033[0m"
|
|
exit 0
|
|
fi
|
|
|
|
if [ -z "$1" ]; then
|
|
echo "Please provide SERVER_HOST as argument"
|
|
exit 1
|
|
fi
|
|
|
|
REMOTE_USER="root"
|
|
SERVER_HOST=$1
|
|
SECRETS_PATH=/data/secrets/$SERVER_HOST/$SERVER_HOST.env
|
|
|
|
trap 'echo -e "\033[31minstall.sh: Something went wrong\033[0m"; exit 1' ERR
|
|
set -e
|
|
|
|
export DEBIAN_FRONTEND=noninteractive
|
|
|
|
source $SECRETS_PATH
|
|
|
|
|
|
#mkdir -p /data
|
|
#chown usradmin:usradmin /data
|
|
#chmod 770 /data
|
|
|
|
#mkdir -p /backups
|
|
#chown usradmin:usradmin /backups
|
|
#chmod 770 /backups
|
|
|
|
#scp install.sh $REMOTE_USER@$BACKUP_SERVER_HOST:/tmp/install.sh
|
|
|
|
if [ -f ~/.ssh/id_ed25519 ]; then
|
|
echo "SSH key already exists: ~/.ssh/id_ed25519"
|
|
else
|
|
ssh-keygen -t ed25519 -C "$SERVER_NAME" -f ~/.ssh/id_ed25519 -N ""
|
|
fi
|
|
|
|
apt install -y sshpass
|
|
|
|
# Install public SSH key from HOST to ORIGIN:
|
|
echo "Add public key to origin server..."
|
|
sshpass -p $SERVER_ORIGIN_PASSWORD ssh-copy-id -i ~/.ssh/id_ed25519.pub $REMOTE_USER@$SERVER_ORIGIN_DOMAIN
|
|
|
|
echo "Add public key to gitea app..."
|
|
SSH_PUBLIC_KEY=$(cat ~/.ssh/id_ed25519.pub)
|
|
|
|
curl -X POST \
|
|
"https://$GITEA_DOMAIN/api/v1/user/keys" \
|
|
-H "Authorization: token $GITEA_API_ADD_SSH_KEY" \
|
|
-H "Content-Type: application/json" \
|
|
-d "{
|
|
\"title\": \"$SERVER_NAME\",
|
|
\"key\": \"$SSH_PUBLIC_KEY\"
|
|
}"
|
|
|
|
|
|
# Install utils from gitea origin:
|
|
cd /data
|
|
echo "Connect to git repository on host: $GIT_SSH_DOMAIN"
|
|
echo "On username: $GIT_USER"
|
|
git clone git@"$GIT_SSH_DOMAIN":"$GIT_USER"/utils.git
|
|
cd /data/utils
|
|
|
|
# Run init-server:
|
|
echo "Run init-server.sh..."
|
|
bash init-server.sh
|
|
|
|
# Install $SERVER_NAME from gitea origin:
|
|
cd /data
|
|
echo "Connect to git repository on host: $GIT_SSH_DOMAIN"
|
|
echo "On username: $GIT_USER"
|
|
git clone git@"$GIT_SSH_DOMAIN":"$GIT_USER"/$SERVER_NAME.git
|
|
cd /data/$SERVER_NAME
|
|
|
|
bash /data/$SERVER_NAME/install.sh $SERVER_HOST
|
|
|
|
# SSH config:
|
|
#bash ssh-port.sh $SSH_PORT
|
|
#bash ssh-pw.sh n
|
|
|
|
trap - ERR
|
|
echo "Install complete. Please exit and login again on port $SSH_PORT with ssh key " |