#!/bin/bash update_system() { echo "Updating system and installing mandatory tools" apt-get update apt-get install sudo nmon tmux tcpdump nano iputils-ping net-tools -y } install_docker() { echo "Installing Docker" apt-get install ca-certificates curl gnupg lsb-release -y curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null apt-get update apt-get install docker-ce docker-ce-cli containerd.io -y systemctl start docker echo "Docker installation completed" } install_caddy() { echo "Installing Caddy" apt-get install -y debian-keyring debian-archive-keyring apt-transport-https curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | tee /etc/apt/trusted.gpg.d/caddy-stable.asc curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | tee /etc/apt/sources.list.d/caddy-stable.list apt-get update apt-get install caddy -y echo "Caddy installation completed." } setup_tf_users() { echo "Setting up TFUsers" wget https://docs.grid.tf/threefold_public/public/raw/branch/master/add-tf-users.sh sh add-tf-users.sh rm add-tf-users.sh } configure_ssh() { echo "Configuring SSH" wget https://docs.grid.tf/threefold_public/public/raw/branch/master/sshd_config mv sshd_config /etc/ssh/ systemctl restart ssh } update_system setup_tf_users configure_ssh while getopts ":dc" opt; do case ${opt} in d ) install_docker ;; c ) install_caddy ;; \? ) echo "Invalid option: $OPTARG" 1>&2 ;; esac done shift $((OPTIND -1)) echo "Preping VM Completed."