|
|
@@ -0,0 +1,720 @@
|
|
|
+#!/bin/bash
|
|
|
+
|
|
|
+installApps()
|
|
|
+{
|
|
|
+ clear
|
|
|
+ OS="$REPLY" ## <-- This $REPLY is about OS Selection
|
|
|
+ echo "We can install Docker-CE, Docker-Compose, NGinX Proxy Manager, and Portainer-CE."
|
|
|
+ echo "Please select 'y' for each item you would like to install."
|
|
|
+ echo "NOTE: Without Docker you cannot use Docker-Compose, NGinx Proxy Manager, or Portainer-CE."
|
|
|
+ echo " You also must have Docker-Compose for NGinX Proxy Manager to be installed."
|
|
|
+ echo ""
|
|
|
+ echo ""
|
|
|
+
|
|
|
+ ISACT=$( (sudo systemctl is-active docker ) 2>&1 )
|
|
|
+ ISCOMP=$( (docker-compose -v ) 2>&1 )
|
|
|
+
|
|
|
+ #### Try to check whether docker is installed and running - don't prompt if it is
|
|
|
+ if [[ "$ISACT" != "active" ]]; then
|
|
|
+ read -rp "Docker-CE (y/n): " DOCK
|
|
|
+ else
|
|
|
+ echo "Docker appears to be installed and running."
|
|
|
+ echo ""
|
|
|
+ echo ""
|
|
|
+ fi
|
|
|
+
|
|
|
+ if [[ "$ISCOMP" == *"command not found"* ]]; then
|
|
|
+ read -rp "Docker-Compose (y/n): " DCOMP
|
|
|
+ else
|
|
|
+ echo "Docker-compose appears to be installed."
|
|
|
+ echo ""
|
|
|
+ echo ""
|
|
|
+ fi
|
|
|
+
|
|
|
+ read -rp "NGinX Proxy Manager (y/n): " NPM
|
|
|
+ read -rp "Navidrome (y/n): " NAVID
|
|
|
+ read -rp "Portainer-CE (y/n): " PTAIN
|
|
|
+ read -rp "Remotely - Remote Desktop Support (y/n): " REMOTELY
|
|
|
+ read -rp "Guacamole - Remote Desktop Protocol in the Browser (y/n): " GUAC
|
|
|
+
|
|
|
+ if [[ "$PTAIN" == [yY] ]]; then
|
|
|
+ echo ""
|
|
|
+ echo ""
|
|
|
+ PS3="Please choose either Portainer-CE or just Portainer Agent: "
|
|
|
+ select _ in \
|
|
|
+ " Full Portainer-CE (Web GUI for Docker, Swarm, and Kubernetes)" \
|
|
|
+ " Portainer Agent - Remote Agent to Connect from Portainer-CE" \
|
|
|
+ " Nevermind -- I don't need Portainer after all."
|
|
|
+ do
|
|
|
+ PORT="$REPLY"
|
|
|
+ case $REPLY in
|
|
|
+ 1) startInstall ;;
|
|
|
+ 2) startInstall ;;
|
|
|
+ 3) startInstall ;;
|
|
|
+ *) echo "Invalid selection, please try again..." ;;
|
|
|
+ esac
|
|
|
+ done
|
|
|
+ fi
|
|
|
+
|
|
|
+ startInstall
|
|
|
+}
|
|
|
+
|
|
|
+startInstall()
|
|
|
+{
|
|
|
+ clear
|
|
|
+ echo "#######################################################"
|
|
|
+ echo "### Preparing for Installation ###"
|
|
|
+ echo "#######################################################"
|
|
|
+ echo ""
|
|
|
+ sleep 3s
|
|
|
+
|
|
|
+
|
|
|
+#######################################################
|
|
|
+### Install for Arm64 / Raspbian ###
|
|
|
+#######################################################
|
|
|
+
|
|
|
+ if [[ "$OS" == "7" ]]; then
|
|
|
+ echo " 1. Installing System Updates..."
|
|
|
+ (sudo apt update && sudoa apt upgrade -y) > ~/docker-script-install.loc 2>&1 &
|
|
|
+ ## Show a spinner for activity progress
|
|
|
+ pid=$ # Process ID of the previous running command
|
|
|
+ spin='-\|/'
|
|
|
+ i=0
|
|
|
+ while kill -0 $pid 2>/dev/null
|
|
|
+ do
|
|
|
+ i=$(( (i+1) %4 ))
|
|
|
+ printf "\r${spin:$i:1}"
|
|
|
+ sleep .25
|
|
|
+ done
|
|
|
+ printf "\r"
|
|
|
+
|
|
|
+ echo " 2. Install Prerequisite Packages..."
|
|
|
+ (sudo apt install curl wget git -y) >> ~/docker-script-install.log 2>&1
|
|
|
+ ## Spinner time...
|
|
|
+ pid=$ # Process ID of the previous running command
|
|
|
+ spin='-\|/'
|
|
|
+ i=0
|
|
|
+ while kill -0 $pid 2>/dev/null
|
|
|
+ do
|
|
|
+ i=$(( (i+1) %4 ))
|
|
|
+ printf "\r${spin:$i:1}"
|
|
|
+ sleep .25
|
|
|
+ done
|
|
|
+ printf "\r"
|
|
|
+
|
|
|
+ if [[ "$ISACT" != "active" ]]; then
|
|
|
+ echo " 3. Installing Docker-CE (Community Edition)..."
|
|
|
+ sleep 2s
|
|
|
+
|
|
|
+
|
|
|
+ curl -fsSL https://get.docker.com | sh >> ~/docker-script-install.log 2>&1
|
|
|
+ # Time to spin
|
|
|
+ pid=$ # Process ID of the previous running command
|
|
|
+ spin='-\|/'
|
|
|
+ i=0
|
|
|
+ while kill -0 $pid 2>/dev/null
|
|
|
+ do
|
|
|
+ i=$(( (i+1) %4 ))
|
|
|
+ printf "\r${spin:$i:1}"
|
|
|
+ sleep .25
|
|
|
+ done
|
|
|
+ printf "\r"
|
|
|
+
|
|
|
+ echo " - docker-ce version is now:"
|
|
|
+ DOCKERV=$(docker -v)
|
|
|
+ echo " "${DOCKERV}
|
|
|
+ sleep 3s
|
|
|
+
|
|
|
+ if [[ "$OS" == 2 ]]; then
|
|
|
+ echo " 5. Starting Docker Service"
|
|
|
+ sudo systemctl docker start >> ~/docker-script-install.log 2>&1
|
|
|
+ fi
|
|
|
+ fi
|
|
|
+ fi
|
|
|
+
|
|
|
+#######################################################
|
|
|
+### Install for Debian / Ubuntu ###
|
|
|
+#######################################################
|
|
|
+
|
|
|
+ if [[ "$OS" == [234] ]]; then
|
|
|
+ echo " 1. Installing System Updates... this may take a while...be patient. If it is being done on a Digial Ocean VPS, you should run updates before running this script."
|
|
|
+ (sudo apt update && sudo apt upgrade -y) > ~/docker-script-install.log 2>&1 &
|
|
|
+ ## Show a spinner for activity progress
|
|
|
+ pid=$! # Process Id of the previous running command
|
|
|
+ spin='-\|/'
|
|
|
+ i=0
|
|
|
+ while kill -0 $pid 2>/dev/null
|
|
|
+ do
|
|
|
+ i=$(( (i+1) %4 ))
|
|
|
+ printf "\r${spin:$i:1}"
|
|
|
+ sleep .1
|
|
|
+ done
|
|
|
+ printf "\r"
|
|
|
+
|
|
|
+ echo " 2. Install Prerequisite Packages..."
|
|
|
+ sleep 2s
|
|
|
+
|
|
|
+ sudo apt install curl wget git -y >> ~/docker-script-install.log 2>&1
|
|
|
+
|
|
|
+ if [[ "$ISACT" != "active" ]]; then
|
|
|
+ echo " 3. Installing Docker-CE (Community Edition)..."
|
|
|
+ sleep 2s
|
|
|
+
|
|
|
+
|
|
|
+ curl -fsSL https://get.docker.com | sh >> ~/docker-script-install.log 2>&1
|
|
|
+ echo " - docker-ce version is now:"
|
|
|
+ DOCKERV=$(docker -v)
|
|
|
+ echo " "${DOCKERV}
|
|
|
+ sleep 3s
|
|
|
+
|
|
|
+ if [[ "$OS" == 2 ]]; then
|
|
|
+ echo " 5. Starting Docker Service"
|
|
|
+ sudo systemctl start docker >> ~/docker-script-install.log 2>&1
|
|
|
+ fi
|
|
|
+ fi
|
|
|
+
|
|
|
+ fi
|
|
|
+
|
|
|
+
|
|
|
+#######################################################
|
|
|
+### Install for CentOS 7 or 8 ###
|
|
|
+#######################################################
|
|
|
+ if [[ "$OS" == "1" ]]; then
|
|
|
+ if [[ "$DOCK" == [yY] ]]; then
|
|
|
+ echo " 1. Updating System Packages..."
|
|
|
+ sudo yum check-update > ~/docker-script-install.log 2>&1
|
|
|
+
|
|
|
+ echo " 2. Installing Prerequisite Packages..."
|
|
|
+ sudo dnf install git curl wget -y >> ~/docker-script-install.log 2>&1
|
|
|
+
|
|
|
+ if [[ "$ISACT" != "active" ]]; then
|
|
|
+ echo " 3. Installing Docker-CE (Community Edition)..."
|
|
|
+
|
|
|
+ sleep 2s
|
|
|
+ (curl -fsSL https://get.docker.com/ | sh) >> ~/docker-script-install.log 2>&1
|
|
|
+
|
|
|
+ echo " 4. Starting the Docker Service..."
|
|
|
+
|
|
|
+ sleep 2s
|
|
|
+
|
|
|
+
|
|
|
+ sudo systemctl start docker >> ~/docker-script-install.log 2>&1
|
|
|
+
|
|
|
+ echo " 5. Enabling the Docker Service..."
|
|
|
+ sleep 2s
|
|
|
+
|
|
|
+ sudo systemctl enable docker >> ~/docker-script-install.log 2>&1
|
|
|
+
|
|
|
+ echo " - docker version is now:"
|
|
|
+ DOCKERV=$(docker -v)
|
|
|
+ echo " "${DOCKERV}
|
|
|
+ sleep 3s
|
|
|
+ fi
|
|
|
+ fi
|
|
|
+ fi
|
|
|
+
|
|
|
+#######################################################
|
|
|
+### Install for Arch Linux ###
|
|
|
+#######################################################
|
|
|
+
|
|
|
+ if [[ "$OS" == "5" ]]; then
|
|
|
+ read -rp "Do you want to install system updates prior to installing Docker-CE? (y/n): " UPDARCH
|
|
|
+ if [[ "$UPDARCH" == [yY] ]]; then
|
|
|
+ echo " 1. Installing System Updates... this may take a while...be patient."
|
|
|
+ (sudo pacman -Syu --noconfirm) > ~/docker-script-install.log 2>&1 &
|
|
|
+ ## Show a spinner for activity progress
|
|
|
+ pid=$! # Process Id of the previous running command
|
|
|
+ spin='-\|/'
|
|
|
+ i=0
|
|
|
+ while kill -0 $pid 2>/dev/null
|
|
|
+ do
|
|
|
+ i=$(( (i+1) %4 ))
|
|
|
+ printf "\r${spin:$i:1}"
|
|
|
+ sleep .1
|
|
|
+ done
|
|
|
+ printf "\r"
|
|
|
+ else
|
|
|
+ echo " 1. Skipping system update..."
|
|
|
+ sleep 2s
|
|
|
+ fi
|
|
|
+
|
|
|
+ echo " 2. Installing Prerequisite Packages..."
|
|
|
+ sudo pacman -Sy git curl wget --noconfirm >> ~/docker-script-install.log 2>&1
|
|
|
+
|
|
|
+ if [[ "$ISACT" != "active" ]]; then
|
|
|
+ echo " 3. Installing Docker-CE (Community Edition)..."
|
|
|
+ sleep 2s
|
|
|
+
|
|
|
+ sudo pacman -Sy docker --noconfirm >> ~/docker-script-install.log 2>&1
|
|
|
+
|
|
|
+ echo " - docker-ce version is now:"
|
|
|
+ DOCKERV=$(docker -v)
|
|
|
+ echo " "${DOCKERV}
|
|
|
+ sleep 3s
|
|
|
+ fi
|
|
|
+ fi
|
|
|
+
|
|
|
+#######################################################
|
|
|
+### Install for Open Suse ###
|
|
|
+#######################################################
|
|
|
+
|
|
|
+ if [[ "$OS" == "6" ]]; then
|
|
|
+ # install system updates first
|
|
|
+ read -rp "Do you want to install system updates prior to installing Docker-CE? (y/n): " UPDSUSE
|
|
|
+ if [[ "$UPDSUSE" == [yY] ]]; then
|
|
|
+ echo " 1. Installing System Updates... this may take a while...be patient."
|
|
|
+
|
|
|
+ (sudo zypper -n update) > docker-script-install.log 2>&1 &
|
|
|
+ ## Show a spinner for activity progress
|
|
|
+ pid=$! # Process Id of the previous running command
|
|
|
+ spin='-\|/'
|
|
|
+ i=0
|
|
|
+ while kill -0 $pid 2>/dev/null
|
|
|
+ do
|
|
|
+ i=$(( (i+1) %4 ))
|
|
|
+ printf "\r${spin:$i:1}"
|
|
|
+ sleep .1
|
|
|
+ done
|
|
|
+ printf "\r"
|
|
|
+ else
|
|
|
+ echo " 1. Skipping system update..."
|
|
|
+ sleep 2s
|
|
|
+ fi
|
|
|
+
|
|
|
+ echo " 2. Installing Prerequisite Packages..."
|
|
|
+ sudo zypper -n install git curl wget >> ~/docker-script-install.log 2>&1
|
|
|
+
|
|
|
+ if [[ "$ISACT" != "active" ]]; then
|
|
|
+ echo " 3. Installing Docker-CE (Community Edition)..."
|
|
|
+ sleep 2s
|
|
|
+
|
|
|
+ sudo zypper -n install docker-compose >> ~/docker-script-install.log 2>&1
|
|
|
+ sudo zypper -n remove docker-compose
|
|
|
+ echo "Giving the Docker service time to start..."
|
|
|
+
|
|
|
+ sudo systemctl start docker >> ~/docker-script-install.log 2>&1
|
|
|
+ sleep 5s &
|
|
|
+ pid=$! # Process Id of the previous running command
|
|
|
+ spin='-\|/'
|
|
|
+ i=0
|
|
|
+ while kill -0 $pid 2>/dev/null
|
|
|
+ do
|
|
|
+ i=$(( (i+1) %4 ))
|
|
|
+ printf "\r${spin:$i:1}"
|
|
|
+ sleep .1
|
|
|
+ done
|
|
|
+ printf "\r"
|
|
|
+ sudo systemctl enable docker >> ~/docker-script-install.log 2>&1
|
|
|
+
|
|
|
+ echo " - docker-ce version is now:"
|
|
|
+ DOCKERV=$(docker -v)
|
|
|
+ echo " "${DOCKERV}
|
|
|
+ sleep 3s
|
|
|
+ fi
|
|
|
+ fi
|
|
|
+
|
|
|
+ if [[ "$ISACT" != "active" ]]; then
|
|
|
+ if [[ "$DOCK" == [yY] ]]; then
|
|
|
+ # add current user to docker group so sudo isn't needed
|
|
|
+ echo ""
|
|
|
+ echo " - Attempting to add the currently logged in user to the docker group..."
|
|
|
+
|
|
|
+ sleep 2s
|
|
|
+ sudo usermod -aG docker "${USER}" >> ~/docker-script-install.log 2>&1
|
|
|
+ echo " - You'll need to log out and back in to finalize the addition of your user to the docker group."
|
|
|
+ echo ""
|
|
|
+ echo ""
|
|
|
+ sleep 3s
|
|
|
+ fi
|
|
|
+ fi
|
|
|
+
|
|
|
+ if [[ "$DCOMP" = [yY] ]]; then
|
|
|
+ echo "############################################"
|
|
|
+ echo "###### Install Docker-Compose ######"
|
|
|
+ echo "############################################"
|
|
|
+
|
|
|
+ # install docker-compose
|
|
|
+ echo ""
|
|
|
+ echo " 1. Installing Docker-Compose..."
|
|
|
+ echo ""
|
|
|
+ echo ""
|
|
|
+ sleep 2s
|
|
|
+
|
|
|
+ ######################################
|
|
|
+ ### Install Raspbian / Arm64 ###
|
|
|
+ ######################################
|
|
|
+
|
|
|
+ if [[ "$OS" == "7" ]]; then
|
|
|
+ echo " 1. Installing dependencies..."
|
|
|
+ (sudo apt-get install -y libffi-dev libssl-dev python3-dev python3 python3-pip) >> ~/docker-script-install.log 2>&1
|
|
|
+ # Show our spinner
|
|
|
+ pid=$ # Process ID of the previous running command
|
|
|
+ spin='-\|/'
|
|
|
+ i=0
|
|
|
+ while kill -0 $pid 2>/dev/null
|
|
|
+ do
|
|
|
+ i=$(( (i+1) %4 ))
|
|
|
+ printf "\r${spin:$i:1}"
|
|
|
+ sleep .25
|
|
|
+ done
|
|
|
+ printf "\r"
|
|
|
+
|
|
|
+ (sudo pip3 install docker-compose) >> ~/docker-script-install.log 2>&1
|
|
|
+ # Show the spinner again...
|
|
|
+ pid=$ # Process ID of the previous running command
|
|
|
+ spin='-\|/'
|
|
|
+ i=0
|
|
|
+ while kill -0 $pid 2>/dev/null
|
|
|
+ do
|
|
|
+ i=$(( (i+1) %4 ))
|
|
|
+ printf "\r${spin:$i:1}"
|
|
|
+ sleep .25
|
|
|
+ done
|
|
|
+ printf "\r"
|
|
|
+ fi
|
|
|
+
|
|
|
+ ######################################
|
|
|
+ ### Install Debian / Ubuntu ###
|
|
|
+ ######################################
|
|
|
+
|
|
|
+ if [[ "$OS" == "2" || "$OS" == "3" || "$OS" == "4" ]]; then
|
|
|
+ VERSION=$(curl --silent https://api.github.com/repos/docker/compose/releases/latest | grep -Po '"tag_name": "\K.*\d')
|
|
|
+ sudo curl -SL https://github.com/docker/compose/releases/download/$VERSION/docker-compose-linux-x86_64 -o /usr/local/bin/docker-compose
|
|
|
+ #sudo curl -L "https://github.com/docker/compose/releases/download/$(curl https://github.com/docker/compose/releases | grep -m1 '<a href="/docker/compose/releases/download/' | grep -o 'v[0-9:].[0-9].[0-9]')/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
|
|
|
+
|
|
|
+ sleep 2
|
|
|
+ sudo chmod +x /usr/local/bin/docker-compose
|
|
|
+ fi
|
|
|
+ ######################################
|
|
|
+ ### Install CentOS 7 or 8 ###
|
|
|
+ ######################################
|
|
|
+
|
|
|
+ if [[ "$OS" == "1" ]]; then
|
|
|
+ VERSION=$(curl --silent https://api.github.com/repos/docker/compose/releases/latest | grep -Po '"tag_name": "\K.*\d')
|
|
|
+ sudo curl -SL https://github.com/docker/compose/releases/download/$VERSION/docker-compose-linux-x86_64 -o /usr/bin/docker-compose >> ~/docker-script-install.log 2>&1
|
|
|
+
|
|
|
+ sudo chmod +x /usr/bin/docker-compose >> ~/docker-script-install.log 2>&1
|
|
|
+ fi
|
|
|
+
|
|
|
+ ######################################
|
|
|
+ ### Install Arch Linux ###
|
|
|
+ ######################################
|
|
|
+
|
|
|
+ if [[ "$OS" == "5" ]]; then
|
|
|
+ sudo pacman -Sy docker-compose --noconfirm > ~/docker-script-install.log 2>&1
|
|
|
+ fi
|
|
|
+
|
|
|
+ ######################################
|
|
|
+ ### Install Open Suse ###
|
|
|
+ ######################################
|
|
|
+
|
|
|
+ if [[ "$OS" == "6" ]]; then
|
|
|
+ VERSION=$(curl --silent https://api.github.com/repos/docker/compose/releases/latest | grep -Po '"tag_name": "\K.*\d')
|
|
|
+ sudo curl -SL https://github.com/docker/compose/releases/download/$VERSION/docker-compose-linux-x86_64 -o /usr/bin/docker-compose >> ~/docker-script-install.log 2>&1
|
|
|
+
|
|
|
+ sudo chmod +x /usr/bin/docker-compose >> ~/docker-script-install.log 2>&1
|
|
|
+ fi
|
|
|
+
|
|
|
+ echo ""
|
|
|
+
|
|
|
+ echo " - Docker Compose Version is now: "
|
|
|
+ DOCKCOMPV=$(docker-compose --version)
|
|
|
+ echo " "${DOCKCOMPV}
|
|
|
+ echo ""
|
|
|
+ echo ""
|
|
|
+ sleep 3s
|
|
|
+ fi
|
|
|
+
|
|
|
+ ##########################################
|
|
|
+ #### Test if Docker Service is Running ###
|
|
|
+ ##########################################
|
|
|
+ ISACT=$( (sudo systemctl is-active docker ) 2>&1 )
|
|
|
+ if [[ "$ISACt" != "active" ]]; then
|
|
|
+ echo "Giving the Docker service time to start..."
|
|
|
+ while [[ "$ISACT" != "active" ]] && [[ $X -le 10 ]]; do
|
|
|
+ sudo systemctl start docker >> ~/docker-script-install.log 2>&1
|
|
|
+ sleep 10s &
|
|
|
+ pid=$! # Process Id of the previous running command
|
|
|
+ spin='-\|/'
|
|
|
+ i=0
|
|
|
+ while kill -0 $pid 2>/dev/null
|
|
|
+ do
|
|
|
+ i=$(( (i+1) %4 ))
|
|
|
+ printf "\r${spin:$i:1}"
|
|
|
+ sleep .1
|
|
|
+ done
|
|
|
+ printf "\r"
|
|
|
+ ISACT=`sudo systemctl is-active docker`
|
|
|
+ let X=X+1
|
|
|
+ echo "$X"
|
|
|
+ done
|
|
|
+ fi
|
|
|
+
|
|
|
+ echo "################################################"
|
|
|
+ echo "###### Creating a Docker Network #######"
|
|
|
+ echo "################################################"
|
|
|
+
|
|
|
+ sudo docker network create my-main-net
|
|
|
+ sleep 2s
|
|
|
+ # move to home directory of user
|
|
|
+ cd
|
|
|
+
|
|
|
+ if [[ "$NPM" == [yY] ]]; then
|
|
|
+ echo "##########################################"
|
|
|
+ echo "### Install NGinX Proxy Manager ###"
|
|
|
+ echo "##########################################"
|
|
|
+
|
|
|
+ # pull an nginx proxy manager docker-compose file from github
|
|
|
+ echo " 1. Pulling a default NGinX Proxy Manager docker-compose.yml file."
|
|
|
+
|
|
|
+ mkdir -p docker/nginx-proxy-manager
|
|
|
+ cd docker/nginx-proxy-manager
|
|
|
+
|
|
|
+ curl https://gitlab.com/bmcgonag/docker_installs/-/raw/main/docker_compose.nginx_proxy_manager.yml -o docker-compose.yml >> ~/docker-script-install.log 2>&1
|
|
|
+
|
|
|
+ echo " 2. Running the docker-compose.yml to install and start NGinX Proxy Manager"
|
|
|
+ echo ""
|
|
|
+ echo ""
|
|
|
+
|
|
|
+ if [[ "$OS" == "1" ]]; then
|
|
|
+ docker-compose up -d
|
|
|
+ else
|
|
|
+ sudo docker-compose up -d
|
|
|
+ fi
|
|
|
+
|
|
|
+ echo " 3. You can find NGinX Proxy Manager files at ./docker/nginx-proxy-manager"
|
|
|
+ echo ""
|
|
|
+ echo " Navigate to your server hostname / IP address on port 81 to setup"
|
|
|
+ echo " NGinX Proxy Manager admin account."
|
|
|
+ echo ""
|
|
|
+ echo " The default login credentials for NGinX Proxy Manager are:"
|
|
|
+ echo " username: admin@example.com"
|
|
|
+ echo " password: changeme"
|
|
|
+
|
|
|
+ echo ""
|
|
|
+ sleep 3s
|
|
|
+ cd
|
|
|
+ fi
|
|
|
+
|
|
|
+ if [[ "$PORT" == "1" ]]; then
|
|
|
+ echo "########################################"
|
|
|
+ echo "### Installing Portainer-CE ###"
|
|
|
+ echo "########################################"
|
|
|
+ echo ""
|
|
|
+ echo " 1. Preparing to Install Portainer-CE"
|
|
|
+ echo ""
|
|
|
+ echo " 2. Creating the folder structure for Portainer."
|
|
|
+ echo " 3. You can find Portainer-CE files in ./docker/portainer"
|
|
|
+
|
|
|
+ #sudo docker volume create portainer_data >> ~/docker-script-install.log 2>&1
|
|
|
+ mkdir -p docker/portainer/portainer_data
|
|
|
+ cd docker/portainer
|
|
|
+ curl https://gitlab.com/bmcgonag/docker_installs/-/raw/main/docker_compose_portainer_ce.yml -o docker-compose.yml >> ~/docker-script-install.log 2>&1
|
|
|
+ echo ""
|
|
|
+
|
|
|
+ if [[ "$OS" == "1" ]]; then
|
|
|
+ docker-compose up -d
|
|
|
+ else
|
|
|
+ sudo docker-compose up -d
|
|
|
+ fi
|
|
|
+
|
|
|
+ echo ""
|
|
|
+ echo " Navigate to your server hostname / IP address on port 9000 and create your admin account for Portainer-CE"
|
|
|
+
|
|
|
+ echo ""
|
|
|
+ echo ""
|
|
|
+ echo ""
|
|
|
+ sleep 3s
|
|
|
+ cd
|
|
|
+ fi
|
|
|
+
|
|
|
+ if [[ "$PORT" == "2" ]]; then
|
|
|
+ echo "###########################################"
|
|
|
+ echo "### Installing Portainer Agent ###"
|
|
|
+ echo "###########################################"
|
|
|
+ echo ""
|
|
|
+ echo " 1. Preparing to install Portainer Agent"
|
|
|
+ echo " 2. Creating the folder structure for Portainer."
|
|
|
+ echo " 3. You can find Portainer-Agent files in ./docker/portainer"
|
|
|
+
|
|
|
+ sudo docker volume create portainer_data
|
|
|
+ mkdir -p docker/portainer
|
|
|
+ cd docker/portainer
|
|
|
+ curl https://gitlab.com/bmcgonag/docker_installs/-/raw/main/docker_compose_portainer_ce_agent.yml -o docker-compose.yml >> ~/docker-script-install.log 2>&1
|
|
|
+ echo ""
|
|
|
+
|
|
|
+ if [[ "$OS" == "1" ]]; then
|
|
|
+ docker-compose up -d
|
|
|
+ else
|
|
|
+ sudo docker-compose up -d
|
|
|
+ fi
|
|
|
+
|
|
|
+ echo ""
|
|
|
+ echo " From Portainer or Portainer-CE add this Agent instance via the 'Endpoints' option in the left menu."
|
|
|
+ echo " #### Use the IP address of this server and port 9001"
|
|
|
+ echo ""
|
|
|
+ echo ""
|
|
|
+ echo ""
|
|
|
+ sleep 3s
|
|
|
+ cd
|
|
|
+ fi
|
|
|
+
|
|
|
+ if [[ "$NAVID" == [yY] ]]; then
|
|
|
+ echo "###########################################"
|
|
|
+ echo "### Installing Navidrome ###"
|
|
|
+ echo "###########################################"
|
|
|
+ echo ""
|
|
|
+ echo " 1. Preparing to install Navidrome"
|
|
|
+
|
|
|
+ mkdir -p docker/navidrome
|
|
|
+ cd docker/navidrome
|
|
|
+
|
|
|
+ curl https://gitlab.com/bmcgonag/docker_installs/-/raw/main/docker_compose_navidrome.yml -o docker-compose.yml >> ~/docker-script-install.log 2>&1
|
|
|
+
|
|
|
+ echo " 2. Running the docker-compose.yml to install and start Navidrome"
|
|
|
+ echo ""
|
|
|
+ echo ""
|
|
|
+
|
|
|
+ if [[ "$OS" == "1" ]]; then
|
|
|
+ docker-compose up -d
|
|
|
+ else
|
|
|
+ sudo docker-compose up -d
|
|
|
+ fi
|
|
|
+
|
|
|
+ echo " 3. You can find your Navidrome files in ./docker/navidrome"
|
|
|
+ echo ""
|
|
|
+ echo " Navigate to your server hostname / IP address on port 4533 to setup"
|
|
|
+ echo " your new Navidrome admin account."
|
|
|
+ echo ""
|
|
|
+ sleep 3s
|
|
|
+ cd
|
|
|
+ fi
|
|
|
+
|
|
|
+ if [[ "$REMOTELY" == [yY] ]]; then
|
|
|
+ echo "##########################################"
|
|
|
+ echo "### Install Remotely ###"
|
|
|
+ echo "##########################################"
|
|
|
+
|
|
|
+ # pull a remotely docker-compose file from gitlab
|
|
|
+ echo " 1. Pulling a default Remotely docker-compose.yml file."
|
|
|
+
|
|
|
+ mkdir -p docker/remotely
|
|
|
+ cd docker/remotely
|
|
|
+
|
|
|
+ curl https://gitlab.com/bmcgonag/docker_installs/-/raw/main/docker_compose_remotely.yml -o docker-compose.yml >> ~/docker-script-install.log 2>&1
|
|
|
+
|
|
|
+ echo ""
|
|
|
+ echo ""
|
|
|
+ echo " 2. Running the docker-compose.yml to pull and start Remotely..."
|
|
|
+ echo ""
|
|
|
+
|
|
|
+ if [[ "$OS" == "1" ]]; then
|
|
|
+ docker-compose up -d
|
|
|
+ else
|
|
|
+ sudo docker-compose up -d
|
|
|
+ fi
|
|
|
+
|
|
|
+ echo " 3. You can find the Remotely folder at ~/docker/remotely..."
|
|
|
+ echo ""
|
|
|
+ echo " Navigate to your server hostname / IP address on port 8188 to setup"
|
|
|
+ echo " your new Remotely installation."
|
|
|
+ echo ""
|
|
|
+ echo " You will likely want to create a reverse proxy entry in NGinX Proxy Manager"
|
|
|
+ echo " for your new Remotely server. If so, also make sure to set the"
|
|
|
+ echo " 'Require https' option in the Remotely Settings."
|
|
|
+ echo ""
|
|
|
+ echo ""
|
|
|
+ sleep 3s
|
|
|
+ cd
|
|
|
+ fi
|
|
|
+
|
|
|
+ if [[ "$GUAC" == [yY] ]]; then
|
|
|
+ echo "##########################################"
|
|
|
+ echo "### Installing Guacamole ###"
|
|
|
+ echo "##########################################"
|
|
|
+
|
|
|
+ # pull a guacamole docker-compose file from gitlab
|
|
|
+ echo " 1. Pulling a default Guacamole docker-compose.yml file."
|
|
|
+
|
|
|
+ mkdir -p docker/guacamole
|
|
|
+ cd docker/guacamole
|
|
|
+
|
|
|
+ curl https://gitlab.com/bmcgonag/docker_installs/-/raw/main/docker_compose_guacamole.yml -o docker-compose.yml >> ~/docker-script-install.log 2>&1
|
|
|
+
|
|
|
+ echo ""
|
|
|
+ echo ""
|
|
|
+ echo " 2. Running the docker-compose.yml to pull and start Guacamole..."
|
|
|
+ echo ""
|
|
|
+
|
|
|
+ if [[ "$OS" == "1" ]]; then
|
|
|
+ docker-compose up -d
|
|
|
+ else
|
|
|
+ sudo docker-compose up -d
|
|
|
+ fi
|
|
|
+
|
|
|
+ echo " 3. You can find the Guacamole folder at ~/docker/guacamole..."
|
|
|
+ echo ""
|
|
|
+ echo " You can now navigate in your browser to yoru server IP at"
|
|
|
+ echo " port number 8080 to reach the Guacamole login page."
|
|
|
+ echo ""
|
|
|
+ echo " Use the default credentials to loging the first time:"
|
|
|
+ echo " username: guacadmin"
|
|
|
+ echo " password: guacadmin"
|
|
|
+ echo ""
|
|
|
+ echo " It is highly recommended that you create a new admin user, and"
|
|
|
+ echo " delete / disable the default user."
|
|
|
+ echo ""
|
|
|
+ echo ""
|
|
|
+ sleep 3s
|
|
|
+ cd
|
|
|
+ fi
|
|
|
+
|
|
|
+ echo "All docker applications have been added to the docker network my-main-net"
|
|
|
+ echo ""
|
|
|
+ echo "If you add more docker applications to this server, make sure to add them to the my-main-net network."
|
|
|
+ echo "You can then use them by container name in NGinX Proxy Manager if so desired."
|
|
|
+
|
|
|
+ exit 1
|
|
|
+}
|
|
|
+
|
|
|
+echo ""
|
|
|
+echo ""
|
|
|
+
|
|
|
+clear
|
|
|
+echo ""
|
|
|
+echo ""
|
|
|
+echo "Let's figure out which OS / Distro you are running."
|
|
|
+echo ""
|
|
|
+echo ""
|
|
|
+echo " From some basic information on your system, you appear to be running: "
|
|
|
+echo " -- OS Name " $(lsb_release -i)
|
|
|
+echo " -- Description " $(lsb_release -d)
|
|
|
+echo " -- OS Version " $(lsb_release -r)
|
|
|
+echo " -- Code Name " $(lsb_release -c)
|
|
|
+echo ""
|
|
|
+echo "------------------------------------------------------"
|
|
|
+echo ""
|
|
|
+
|
|
|
+PS3="Please select the number for your OS / distro: "
|
|
|
+select _ in \
|
|
|
+ "CentOS 7 / 8 / Fedora" \
|
|
|
+ "Debian 10 / 11" \
|
|
|
+ "Ubuntu 18.04" \
|
|
|
+ "Ubuntu 20.04 / 21.04 / 22.04+" \
|
|
|
+ "Arch Linux" \
|
|
|
+ "Open Suse"\
|
|
|
+ "Arm64 / Raspbian"\
|
|
|
+ "End this Installer"
|
|
|
+do
|
|
|
+ case $REPLY in
|
|
|
+ 1) installApps ;;
|
|
|
+ 2) installApps ;;
|
|
|
+ 3) installApps ;;
|
|
|
+ 4) installApps ;;
|
|
|
+ 5) installApps ;;
|
|
|
+ 6) installApps ;;
|
|
|
+ 7) installApps ;;
|
|
|
+ 8) exit ;;
|
|
|
+ *) echo "Invalid selection, please try again..." ;;
|
|
|
+ esac
|
|
|
+done
|