intendent properly
This commit is contained in:
123
install.sh
123
install.sh
@@ -16,7 +16,8 @@ export admintoken
|
|||||||
ARCH=$(uname -m)
|
ARCH=$(uname -m)
|
||||||
|
|
||||||
# Identify OS
|
# Identify OS
|
||||||
if [ -f /etc/os-release ]; then
|
if [ -f /etc/os-release ]
|
||||||
|
then
|
||||||
# freedesktop.org and systemd
|
# freedesktop.org and systemd
|
||||||
# shellcheck source=/dev/null
|
# shellcheck source=/dev/null
|
||||||
source /etc/os-release
|
source /etc/os-release
|
||||||
@@ -25,29 +26,35 @@ if [ -f /etc/os-release ]; then
|
|||||||
UPSTREAM_ID=${ID_LIKE,,}
|
UPSTREAM_ID=${ID_LIKE,,}
|
||||||
|
|
||||||
# Fallback to ID_LIKE if ID was not 'ubuntu' or 'debian'
|
# Fallback to ID_LIKE if ID was not 'ubuntu' or 'debian'
|
||||||
if [ "${UPSTREAM_ID}" != "debian" ] && [ "${UPSTREAM_ID}" != "ubuntu" ]; then
|
if [ "${UPSTREAM_ID}" != "debian" ] && [ "${UPSTREAM_ID}" != "ubuntu" ]
|
||||||
|
then
|
||||||
UPSTREAM_ID="$(echo "${ID_LIKE,,}" | sed s/\"//g | cut -d' ' -f1)"
|
UPSTREAM_ID="$(echo "${ID_LIKE,,}" | sed s/\"//g | cut -d' ' -f1)"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
elif type lsb_release >/dev/null 2>&1; then
|
elif type lsb_release >/dev/null 2>&1
|
||||||
|
then
|
||||||
# linuxbase.org
|
# linuxbase.org
|
||||||
OS=$(lsb_release -si)
|
OS=$(lsb_release -si)
|
||||||
VER=$(lsb_release -sr)
|
VER=$(lsb_release -sr)
|
||||||
elif [ -f /etc/lsb-release ]; then
|
elif [ -f /etc/lsb-release ]
|
||||||
|
then
|
||||||
# For some versions of Debian/Ubuntu without lsb_release command
|
# For some versions of Debian/Ubuntu without lsb_release command
|
||||||
# shellcheck source=/dev/null
|
# shellcheck source=/dev/null
|
||||||
source /etc/os-release
|
source /etc/os-release
|
||||||
OS=$DISTRIB_ID
|
OS=$DISTRIB_ID
|
||||||
VER=$DISTRIB_RELEASE
|
VER=$DISTRIB_RELEASE
|
||||||
elif [ -f /etc/debian_version ]; then
|
elif [ -f /etc/debian_version ]
|
||||||
|
then
|
||||||
# Older Debian, Ubuntu, etc.
|
# Older Debian, Ubuntu, etc.
|
||||||
OS=Debian
|
OS=Debian
|
||||||
VER=$(cat /etc/debian_version)
|
VER=$(cat /etc/debian_version)
|
||||||
elif [ -f /etc/SuSE-release ]; then
|
elif [ -f /etc/SuSE-release ]
|
||||||
|
then
|
||||||
# Older SuSE, etc.
|
# Older SuSE, etc.
|
||||||
OS=SuSE
|
OS=SuSE
|
||||||
VER=$(cat /etc/SuSE-release)
|
VER=$(cat /etc/SuSE-release)
|
||||||
elif [ -f /etc/redhat-release ]; then
|
elif [ -f /etc/redhat-release ]
|
||||||
|
then
|
||||||
# Older Red Hat, CentOS, etc.
|
# Older Red Hat, CentOS, etc.
|
||||||
OS=RedHat
|
OS=RedHat
|
||||||
VER=$(cat /etc/redhat-release)
|
VER=$(cat /etc/redhat-release)
|
||||||
@@ -59,7 +66,8 @@ fi
|
|||||||
|
|
||||||
|
|
||||||
# Output debugging info if $DEBUG set
|
# Output debugging info if $DEBUG set
|
||||||
if [ "$DEBUG" = "true" ]; then
|
if [ "$DEBUG" = "true" ]
|
||||||
|
then
|
||||||
echo "OS: $OS"
|
echo "OS: $OS"
|
||||||
echo "VER: $VER"
|
echo "VER: $VER"
|
||||||
echo "UPSTREAM_ID: $UPSTREAM_ID"
|
echo "UPSTREAM_ID: $UPSTREAM_ID"
|
||||||
@@ -74,16 +82,19 @@ PREREQRPM=(bind-utils)
|
|||||||
PREREQARCH=(bind)
|
PREREQARCH=(bind)
|
||||||
|
|
||||||
echo "Installing prerequisites"
|
echo "Installing prerequisites"
|
||||||
if [ "${ID}" = "debian" ] || [ "$OS" = "Ubuntu" ] || [ "$OS" = "Debian" ] || [ "${UPSTREAM_ID}" = "ubuntu" ] || [ "${UPSTREAM_ID}" = "debian" ]; then
|
if [ "${ID}" = "debian" ] || [ "$OS" = "Ubuntu" ] || [ "$OS" = "Debian" ] || [ "${UPSTREAM_ID}" = "ubuntu" ] || [ "${UPSTREAM_ID}" = "debian" ]
|
||||||
|
then
|
||||||
sudo apt-get update
|
sudo apt-get update
|
||||||
sudo apt-get install -y "${PREREQ[@]}" "${PREREQDEB[@]}" # git
|
sudo apt-get install -y "${PREREQ[@]}" "${PREREQDEB[@]}" # git
|
||||||
elif [ "$OS" = "CentOS" ] || [ "$OS" = "RedHat" ] || [ "${UPSTREAM_ID}" = "rhel" ] || [ "${OS}" = "Almalinux" ] || [ "${UPSTREAM_ID}" = "Rocky*" ] ; then
|
elif [ "$OS" = "CentOS" ] || [ "$OS" = "RedHat" ] || [ "${UPSTREAM_ID}" = "rhel" ] || [ "${OS}" = "Almalinux" ] || [ "${UPSTREAM_ID}" = "Rocky*" ]
|
||||||
|
then
|
||||||
# openSUSE 15.4 fails to run the relay service and hangs waiting for it
|
# openSUSE 15.4 fails to run the relay service and hangs waiting for it
|
||||||
# Needs more work before it can be enabled
|
# Needs more work before it can be enabled
|
||||||
# || [ "${UPSTREAM_ID}" = "suse" ]
|
# || [ "${UPSTREAM_ID}" = "suse" ]
|
||||||
sudo yum update -y
|
sudo yum update -y
|
||||||
sudo yum install -y "${PREREQ[@]}" "${PREREQRPM[@]}" # git
|
sudo yum install -y "${PREREQ[@]}" "${PREREQRPM[@]}" # git
|
||||||
elif [ "${ID}" = "arch" ] || [ "${UPSTREAM_ID}" = "arch" ]; then
|
elif [ "${ID}" = "arch" ] || [ "${UPSTREAM_ID}" = "arch" ]
|
||||||
|
then
|
||||||
sudo pacman -Syu
|
sudo pacman -Syu
|
||||||
sudo pacman -S "${PREREQ[@]}" "${PREREQARCH[@]}"
|
sudo pacman -S "${PREREQ[@]}" "${PREREQARCH[@]}"
|
||||||
else
|
else
|
||||||
@@ -101,7 +112,8 @@ sudo ufw allow 21116/udp
|
|||||||
sudo ufw enable
|
sudo ufw enable
|
||||||
|
|
||||||
# Make folder /var/lib/rustdesk-server/
|
# Make folder /var/lib/rustdesk-server/
|
||||||
if [ ! -d "/var/lib/rustdesk-server" ]; then
|
if [ ! -d "/var/lib/rustdesk-server" ]
|
||||||
|
then
|
||||||
echo "Creating /var/lib/rustdesk-server"
|
echo "Creating /var/lib/rustdesk-server"
|
||||||
sudo mkdir -p /var/lib/rustdesk-server/
|
sudo mkdir -p /var/lib/rustdesk-server/
|
||||||
fi
|
fi
|
||||||
@@ -109,43 +121,44 @@ fi
|
|||||||
sudo chown "${usern}" -R /var/lib/rustdesk-server
|
sudo chown "${usern}" -R /var/lib/rustdesk-server
|
||||||
cd /var/lib/rustdesk-server/ || exit 1
|
cd /var/lib/rustdesk-server/ || exit 1
|
||||||
|
|
||||||
|
|
||||||
# Download latest version of RustDesk
|
# Download latest version of RustDesk
|
||||||
RDLATEST=$(curl https://api.github.com/repos/rustdesk/rustdesk-server-pro/releases/latest -s | grep "tag_name"| awk '{print substr($2, 2, length($2)-3) }')
|
RDLATEST=$(curl https://api.github.com/repos/rustdesk/rustdesk-server-pro/releases/latest -s | grep "tag_name"| awk '{print substr($2, 2, length($2)-3) }')
|
||||||
|
|
||||||
echo "Installing RustDesk Server"
|
echo "Installing RustDesk Server"
|
||||||
if [ "${ARCH}" = "x86_64" ] ; then
|
if [ "${ARCH}" = "x86_64" ]
|
||||||
wget https://github.com/rustdesk/rustdesk-server-pro/releases/download/"${RDLATEST}"/rustdesk-server-linux-amd64.tar.gz
|
then
|
||||||
tar -xf rustdesk-server-linux-amd64.tar.gz
|
wget https://github.com/rustdesk/rustdesk-server-pro/releases/download/"${RDLATEST}"/rustdesk-server-linux-amd64.tar.gz
|
||||||
mv amd64/static /var/lib/rustdesk-server/
|
tar -xf rustdesk-server-linux-amd64.tar.gz
|
||||||
sudo mv amd64/hbbr /usr/bin/
|
mv amd64/static /var/lib/rustdesk-server/
|
||||||
sudo mv amd64/hbbs /usr/bin/
|
sudo mv amd64/hbbr /usr/bin/
|
||||||
rm -rf amd64/
|
sudo mv amd64/hbbs /usr/bin/
|
||||||
rm -rf rustdesk-server-linux-amd64.tar.gz
|
rm -rf amd64/
|
||||||
elif [ "${ARCH}" = "armv7l" ] ; then
|
rm -rf rustdesk-server-linux-amd64.tar.gz
|
||||||
wget "https://github.com/rustdesk/rustdesk-server-pro/releases/download/${RDLATEST}/rustdesk-server-linux-armv7.tar.gz"
|
elif [ "${ARCH}" = "armv7l" ]
|
||||||
tar -xf rustdesk-server-linux-armv7.tar.gz
|
then
|
||||||
mv armv7/static /var/lib/rustdesk-server/
|
wget "https://github.com/rustdesk/rustdesk-server-pro/releases/download/${RDLATEST}/rustdesk-server-linux-armv7.tar.gz"
|
||||||
sudo mv armv7/hbbr /usr/bin/
|
tar -xf rustdesk-server-linux-armv7.tar.gz
|
||||||
sudo mv armv7/hbbs /usr/bin/
|
mv armv7/static /var/lib/rustdesk-server/
|
||||||
rm -rf armv7/
|
sudo mv armv7/hbbr /usr/bin/
|
||||||
rm -rf rustdesk-server-linux-armv7.tar.gz
|
sudo mv armv7/hbbs /usr/bin/
|
||||||
|
rm -rf armv7/
|
||||||
|
rm -rf rustdesk-server-linux-armv7.tar.gz
|
||||||
elif [ "${ARCH}" = "aarch64" ] ; then
|
elif [ "${ARCH}" = "aarch64" ] ; then
|
||||||
wget "https://github.com/rustdesk/rustdesk-server-pro/releases/download/${RDLATEST}/rustdesk-server-linux-arm64v8.tar.gz"
|
wget "https://github.com/rustdesk/rustdesk-server-pro/releases/download/${RDLATEST}/rustdesk-server-linux-arm64v8.tar.gz"
|
||||||
tar -xf rustdesk-server-linux-arm64v8.tar.gz
|
tar -xf rustdesk-server-linux-arm64v8.tar.gz
|
||||||
mv arm64v8/static /var/lib/rustdesk-server/
|
mv arm64v8/static /var/lib/rustdesk-server/
|
||||||
sudo mv arm64v8/hbbr /usr/bin/
|
sudo mv arm64v8/hbbr /usr/bin/
|
||||||
sudo mv arm64v8/hbbs /usr/bin/
|
sudo mv arm64v8/hbbs /usr/bin/
|
||||||
rm -rf arm64v8/
|
rm -rf arm64v8/
|
||||||
rm -rf rustdesk-server-linux-arm64v8.tar.gz
|
rm -rf rustdesk-server-linux-arm64v8.tar.gz
|
||||||
fi
|
fi
|
||||||
|
|
||||||
sudo chmod +x /usr/bin/hbbs
|
sudo chmod +x /usr/bin/hbbs
|
||||||
sudo chmod +x /usr/bin/hbbr
|
sudo chmod +x /usr/bin/hbbr
|
||||||
|
|
||||||
|
|
||||||
# Make folder /var/log/rustdesk-server/
|
# Make folder /var/log/rustdesk-server/
|
||||||
if [ ! -d "/var/log/rustdesk-server" ]; then
|
if [ ! -d "/var/log/rustdesk-server" ]
|
||||||
|
then
|
||||||
echo "Creating /var/log/rustdesk-server"
|
echo "Creating /var/log/rustdesk-server"
|
||||||
sudo mkdir -p /var/log/rustdesk-server/
|
sudo mkdir -p /var/log/rustdesk-server/
|
||||||
fi
|
fi
|
||||||
@@ -217,15 +230,18 @@ pubname=$(find /var/lib/rustdesk-server/ -name "*.pub")
|
|||||||
key=$(cat "${pubname}")
|
key=$(cat "${pubname}")
|
||||||
|
|
||||||
echo "Tidying up install"
|
echo "Tidying up install"
|
||||||
if [ "${ARCH}" = "x86_64" ] ; then
|
if [ "${ARCH}" = "x86_64" ]
|
||||||
rm rustdesk-server-linux-amd64.zip
|
then
|
||||||
rm -rf amd64
|
rm rustdesk-server-linux-amd64.zip
|
||||||
elif [ "${ARCH}" = "armv7l" ] ; then
|
rm -rf amd64
|
||||||
rm rustdesk-server-linux-armv7.zip
|
elif [ "${ARCH}" = "armv7l" ]
|
||||||
rm -rf armv7
|
then
|
||||||
elif [ "${ARCH}" = "aarch64" ] ; then
|
rm rustdesk-server-linux-armv7.zip
|
||||||
rm rustdesk-server-linux-arm64v8.zip
|
rm -rf armv7
|
||||||
rm -rf arm64v8
|
elif [ "${ARCH}" = "aarch64" ]
|
||||||
|
then
|
||||||
|
rm rustdesk-server-linux-arm64v8.zip
|
||||||
|
rm -rf arm64v8
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Choice for DNS or IP
|
# Choice for DNS or IP
|
||||||
@@ -245,23 +261,27 @@ break
|
|||||||
echo -ne "Enter your preferred domain/DNS address ${NC}: "
|
echo -ne "Enter your preferred domain/DNS address ${NC}: "
|
||||||
read -r wanip
|
read -r wanip
|
||||||
# Check wanip is valid domain
|
# Check wanip is valid domain
|
||||||
if ! [[ $wanip =~ ^[a-zA-Z0-9]+([a-zA-Z0-9.-]*[a-zA-Z0-9]+)?$ ]]; then
|
if ! [[ $wanip =~ ^[a-zA-Z0-9]+([a-zA-Z0-9.-]*[a-zA-Z0-9]+)?$ ]]
|
||||||
|
then
|
||||||
echo -e "${RED}Invalid domain/DNS address${NC}"
|
echo -e "${RED}Invalid domain/DNS address${NC}"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Installing nginx"
|
echo "Installing nginx"
|
||||||
if [ "${ID}" = "debian" ] || [ "$OS" = "Ubuntu" ] || [ "$OS" = "Debian" ] || [ "${UPSTREAM_ID}" = "ubuntu" ] || [ "${UPSTREAM_ID}" = "debian" ]; then
|
if [ "${ID}" = "debian" ] || [ "$OS" = "Ubuntu" ] || [ "$OS" = "Debian" ] || [ "${UPSTREAM_ID}" = "ubuntu" ] || [ "${UPSTREAM_ID}" = "debian" ]
|
||||||
|
then
|
||||||
sudo apt -y install nginx
|
sudo apt -y install nginx
|
||||||
apt -y install snapd
|
apt -y install snapd
|
||||||
snap install certbot --classic
|
snap install certbot --classic
|
||||||
elif [ "$OS" = "CentOS" ] || [ "$OS" = "RedHat" ] || [ "${UPSTREAM_ID}" = "rhel" ] || [ "${OS}" = "Almalinux" ] || [ "${UPSTREAM_ID}" = "Rocky*" ] ; then
|
elif [ "$OS" = "CentOS" ] || [ "$OS" = "RedHat" ] || [ "${UPSTREAM_ID}" = "rhel" ] || [ "${OS}" = "Almalinux" ] || [ "${UPSTREAM_ID}" = "Rocky*" ]
|
||||||
|
then
|
||||||
# openSUSE 15.4 fails to run the relay service and hangs waiting for it
|
# openSUSE 15.4 fails to run the relay service and hangs waiting for it
|
||||||
# Needs more work before it can be enabled
|
# Needs more work before it can be enabled
|
||||||
# || [ "${UPSTREAM_ID}" = "suse" ]
|
# || [ "${UPSTREAM_ID}" = "suse" ]
|
||||||
sudo yum -y install nginx
|
sudo yum -y install nginx
|
||||||
sudo yum -y install python3-certbot-nginx
|
sudo yum -y install python3-certbot-nginx
|
||||||
elif [ "${ID}" = "arch" ] || [ "${UPSTREAM_ID}" = "arch" ]; then
|
elif [ "${ID}" = "arch" ] || [ "${UPSTREAM_ID}" = "arch" ]
|
||||||
|
then
|
||||||
sudo pacman -S install nginx
|
sudo pacman -S install nginx
|
||||||
sudo pacman -S install python3-certbot-nginx
|
sudo pacman -S install python3-certbot-nginx
|
||||||
else
|
else
|
||||||
@@ -295,7 +315,6 @@ sudo ln -s /etc/nginx/sites-available/rustdesk.conf /etc/nginx/sites-enabled/rus
|
|||||||
|
|
||||||
sudo ufw allow 80/tcp
|
sudo ufw allow 80/tcp
|
||||||
sudo ufw allow 443/tcp
|
sudo ufw allow 443/tcp
|
||||||
|
|
||||||
sudo ufw enable && ufw reload
|
sudo ufw enable && ufw reload
|
||||||
|
|
||||||
sudo certbot --nginx --cert-name "${wanip}" --key-type ecdsa --renew-by-default --no-eff-email --agree-tos --server https://acme-v02.api.letsencrypt.org/directory -d "${wanip}"
|
sudo certbot --nginx --cert-name "${wanip}" --key-type ecdsa --renew-by-default --no-eff-email --agree-tos --server https://acme-v02.api.letsencrypt.org/directory -d "${wanip}"
|
||||||
|
|||||||
Reference in New Issue
Block a user