diff --git a/code_server.sh b/code_server.sh index d5f4615..725f99b 100644 --- a/code_server.sh +++ b/code_server.sh @@ -1,7 +1,12 @@ #!/bin/bash +function header_info { +echo +echo -e " ${DGN}${APP}${CL}" +echo +} -echo Installing Coder Code Server - +APP="Coder Code Server" +hostname="$(hostname)" IP=$(hostname -I | awk '{print $1}') YW=$(echo "\033[33m") BL=$(echo "\033[36m") @@ -10,17 +15,31 @@ BGN=$(echo "\033[4;92m") GN=$(echo "\033[1;92m") DGN=$(echo "\033[32m") CL=$(echo "\033[m") +# print overwrite message +BFR="\\r\\033[K" +HOLD="-" +CM="${GN}✓${CL}" -APP="Coder Code Server" -hostname="$(hostname)" -set -o errexit -set -o errtrace -set -o nounset -set -o pipefail -shopt -s expand_aliases -alias die='EXIT=$? LINE=$LINENO error_exit' -trap die ERR - +# show header info +header_info +# Can't Install on Proxmox or Alpine +if command -v pveversion >/dev/null 2>&1; then + echo -e " Can't Install on Proxmox " + exit +fi +if [ -e /etc/alpine-release ]; then + echo -e " Can't Install on Alpine" + exit +fi +while true; do + read -p "This will Install ${APP} on $hostname. Proceed(y/n)?" yn + case $yn in + [Yy]*) break ;; + [Nn]*) exit ;; + *) echo "Please answer yes or no." ;; + esac +done +# ----------------------installing--------------------------------- echo "Installing Dependencies" apt update &>/dev/null apt install -y curl &>/dev/null diff --git a/docker_portainer.sh b/docker_portainer.sh new file mode 100644 index 0000000..3203867 --- /dev/null +++ b/docker_portainer.sh @@ -0,0 +1,68 @@ +#!/bin/bash +function header_info { +echo +echo -e " ${DGN}${APP}${CL}" +echo +} + +APP="Docker and Portainer" +hostname="$(hostname)" +IP=$(hostname -I | awk '{print $1}') +YW=$(echo "\033[33m") +BL=$(echo "\033[36m") +RD=$(echo "\033[01;31m") +BGN=$(echo "\033[4;92m") +GN=$(echo "\033[1;92m") +DGN=$(echo "\033[32m") +CL=$(echo "\033[m") +# print overwrite message +BFR="\\r\\033[K" +HOLD="-" +CM="${GN}✓${CL}" +CN="${RD}✗${CL}" + +# show header info +header_info +# Can't Install on Proxmox or Alpine +if command -v pveversion >/dev/null 2>&1; then + echo -e " Can't Install on Proxmox " + exit +fi +if [ -e /etc/alpine-release ]; then + echo -e " Can't Install on Alpine" + exit +fi +while true; do + read -p "This will Install ${APP} on $hostname. Proceed(y/n)?" yn + case $yn in + [Yy]*) break ;; + [Nn]*) kill -INT $$ ;; + *) echo "Please answer yes or no." ;; + esac +done +# ----------------------installing--------------------------------- +echo "Installing updates" +apt update &>/dev/null +echo "Installed updates" + +if command -v docker &> /dev/null; then + echo -e "${CM} Docker is installed" +else + echo -e "${CN} Docker is not installed" + apt-get install docker.io -y &>/dev/null + echo -e "${CM} Docker is installed" +fi + + +CONTAINER=portainer +if [ "$(docker ps -a -q -f name=^/${CONTAINER}$)" ]; then + echo -e "${CM} $CONTAINER exists" +else + echo -e "${CN} '$CONTAINER' does not exist, creating it now" + docker volume create portainer_data &>/dev/null + docker run -d -p 8000:8000 -p 9443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest &>/dev/null + echo -e "${BFR}${BFR}${CM} $CONTAINER installed" + echo -e "Portainer should be reachable by going to the following URL. + ${BL}https://$IP:9443${CL} \n" + +fi diff --git a/functions_test.sh b/functions_test.sh index 0a681ca..82bf5f7 100644 --- a/functions_test.sh +++ b/functions_test.sh @@ -1,10 +1,46 @@ #!/bin/bash +function header_info { +echo +echo -e " ${DGN}${APP}${CL}" +echo +} +APP="Coder Code Server" +hostname="$(hostname)" +IP=$(hostname -I | awk '{print $1}') +YW=$(echo "\033[33m") +BL=$(echo "\033[36m") +RD=$(echo "\033[01;31m") +BGN=$(echo "\033[4;92m") +GN=$(echo "\033[1;92m") +DGN=$(echo "\033[32m") +CL=$(echo "\033[m") +# print overwrite message +BFR="\\r\\033[K" +HOLD="-" +CM="${GN}✓${CL}" + +# show header info +header_info +# Can't Install on Proxmox or Alpine if command -v pveversion >/dev/null 2>&1; then - echo -e "⚠️ Can't Install on Proxmox " + echo -e " Can't Install on Proxmox " exit fi +if [ -e /etc/alpine-release ]; then + echo -e " Can't Install on Alpine" + exit +fi +while true; do + read -p "This will Install ${APP} on $hostname. Proceed(y/n)?" yn + case $yn in + [Yy]*) break ;; + [Nn]*) exit ;; + *) echo "Please answer yes or no." ;; + esac +done -header_info +echo -e "${BL}Ready yo install ${APP} on $hostname${CL}" +echo bye