Last active
March 7, 2023 06:57
-
-
Save umair313/175cc5a2e81b786a5571dd3f0ef4e9ba to your computer and use it in GitHub Desktop.
bash script to install the required packages and clone the project repository from github. Tested on Ubuntu 22.04, with digital ocean server.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
username=$1 | |
github_email="github email used to generate SSH keys and clone the repository" | |
github_repo="repository SSH link" | |
server_ip=SERVER_IP | |
# Emoji | |
strong_emoji="\U1F4AA" | |
party_emoji="\U1F973" | |
echo -e " | |
echo ------------------------------ | |
echo \"creating user ${username} \" | |
echo ------------------------------ | |
useradd -m -s /bin/bash $username | |
if [ $? -eq 0 ]; then | |
echo -e \"user created! type a storng ${strong_emoji} password for $username\" | |
passwd $username | |
usermod -aG sudo $username | |
rsync --archive --chown=$username:$username ~/.ssh /home/$username | |
fi | |
" > create_user.sh | |
echo -e " | |
echo ------------------------------ | |
echo \"Updating server \" | |
echo ------------------------------ | |
sudo apt update -y | |
echo ------------------------------ | |
echo installing packages | |
echo ------------------------------ | |
sudo apt install -y apt-transport-https ca-certificates curl software-properties-common make gnupg lsb-release | |
echo ------------------------------ | |
echo -e \"installing Docker \U1F600\" | |
echo ------------------------------ | |
sudo mkdir -m 0755 -p /etc/apt/keyrings | |
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg | |
echo \ | |
\"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ | |
$(lsb_release -cs) stable\" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null | |
sudo apt update -y | |
sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y | |
sudo docker run hello-world | |
echo -e \"\U1F600 all set up \n\n\" | |
echo ------------------------------ | |
echo generating ssh keys, add these keys to github account to clone the repository | |
echo Don't provide passphares just hit enter on all the inputs | |
echo ------------------------------ | |
ssh-keygen -t ed25519 -C \"${github_email}\" | |
echo -------------------PRIVATE KEY------------------ | |
cat ~/.ssh/id_ed25519 | |
echo -------------------PUBLIC KEY------------------- | |
cat ~/.ssh/id_ed25519.pub | |
echo ------------------------------------------------ | |
read -n 1 -s -r -p\"Press Any Key to clone ${github_repo}:\";echo | |
git clone ${github_repo} | |
" > install_packages.sh | |
echo "copying generated bash files to remote server" | |
scp create_user.sh root@$server_ip:/root/ | |
ssh -t root@$server_ip bash ./create_user.sh | |
echo "created user $username" | |
echo ------------------------------ | |
echo "SSH into server with user $username" | |
echo ------------------------------ | |
scp install_packages.sh "$username"@$server_ip:/home/"$username" | |
ssh -t "$username"@$server_ip bash ./install_packages.sh | |
echo -e " | |
${party_emoji} All setup run the bellow command to SSH into remote server\n | |
* ssh $username@$server_ip | |
" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment