Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5f4e47055d | ||
|
|
e478d266b0 | ||
|
|
5bb76c2e9d | ||
|
|
5696f381c8 | ||
|
|
2e0388ec0c | ||
|
|
40855c65a3 | ||
|
|
4f46a53c77 | ||
|
|
43a8b5ce1a | ||
|
|
724593a77b | ||
|
|
6a9a726a65 | ||
|
|
87cb900da8 | ||
|
|
ef0785c03d |
157
backup.sh
157
backup.sh
@@ -1,157 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# shellcheck disable=2034,2059,2164
|
||||
true
|
||||
|
||||
usern=$(whoami)
|
||||
path=$(pwd)
|
||||
echo "$path"
|
||||
|
||||
ARCH=$(uname -m)
|
||||
|
||||
|
||||
# Identify OS
|
||||
if [ -f /etc/os-release ]; then
|
||||
# freedesktop.org and systemd
|
||||
. /etc/os-release
|
||||
OS=$NAME
|
||||
VER=$VERSION_ID
|
||||
UPSTREAM_ID=${ID_LIKE,,}
|
||||
|
||||
# Fallback to ID_LIKE if ID was not 'ubuntu' or 'debian'
|
||||
if [ "${UPSTREAM_ID}" != "debian" ] && [ "${UPSTREAM_ID}" != "ubuntu" ]; then
|
||||
UPSTREAM_ID="$(echo "${ID_LIKE,,}" | sed s/\"//g | cut -d' ' -f1)"
|
||||
fi
|
||||
|
||||
elif type lsb_release >/dev/null 2>&1; then
|
||||
# linuxbase.org
|
||||
OS=$(lsb_release -si)
|
||||
VER=$(lsb_release -sr)
|
||||
elif [ -f /etc/lsb-release ]; then
|
||||
# For some versions of Debian/Ubuntu without lsb_release command
|
||||
. /etc/lsb-release
|
||||
OS=$DISTRIB_ID
|
||||
VER=$DISTRIB_RELEASE
|
||||
elif [ -f /etc/debian_version ]; then
|
||||
# Older Debian, Ubuntu, etc.
|
||||
OS=Debian
|
||||
VER=$(cat /etc/debian_version)
|
||||
elif [ -f /etc/SuSE-release ]; then
|
||||
# Older SuSE, etc.
|
||||
OS=SuSE
|
||||
VER=$(cat /etc/SuSE-release)
|
||||
elif [ -f /etc/redhat-release ]; then
|
||||
# Older Red Hat, CentOS, etc.
|
||||
OS=RedHat
|
||||
VER=$(cat /etc/redhat-release)
|
||||
else
|
||||
# Fall back to uname, e.g. "Linux <version>", also works for BSD, etc.
|
||||
OS=$(uname -s)
|
||||
VER=$(uname -r)
|
||||
fi
|
||||
|
||||
|
||||
# Output debugging info if $DEBUG set
|
||||
if [ "$DEBUG" = "true" ]; then
|
||||
echo "OS: $OS"
|
||||
echo "VER: $VER"
|
||||
echo "UPSTREAM_ID: $UPSTREAM_ID"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Setup prereqs for server
|
||||
# Common named prereqs
|
||||
PREREQ="tar"
|
||||
PREREQDEB="sqlite3"
|
||||
PREREQRPM="sqlite"
|
||||
PREREQARCH="sqlite"
|
||||
|
||||
echo "Installing prerequisites"
|
||||
if [ "${ID}" = "debian" ] || [ "$OS" = "Ubuntu" ] || [ "$OS" = "Debian" ] || [ "${UPSTREAM_ID}" = "ubuntu" ] || [ "${UPSTREAM_ID}" = "debian" ]; then
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y ${PREREQ} ${PREREQDEB} # git
|
||||
elif [ "$OS" = "CentOS" ] || [ "$OS" = "RedHat" ] || [ "${UPSTREAM_ID}" = "rhel" ] ; then
|
||||
# openSUSE 15.4 fails to run the relay service and hangs waiting for it
|
||||
# Needs more work before it can be enabled
|
||||
# || [ "${UPSTREAM_ID}" = "suse" ]
|
||||
sudo yum update -y
|
||||
sudo dnf install -y epel-release
|
||||
sudo yum install -y ${PREREQ} ${PREREQRPM} # git
|
||||
elif [ "${ID}" = "arch" ] || [ "${UPSTREAM_ID}" = "arch" ]; then
|
||||
sudo pacman -Syu
|
||||
sudo pacman -S ${PREREQ} ${PREREQARCH}
|
||||
else
|
||||
echo "Unsupported OS"
|
||||
# Here you could ask the user for permission to try and install anyway
|
||||
# If they say yes, then do the install
|
||||
# If they say no, exit the script
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ $* == *--schedule* ]]; then
|
||||
(
|
||||
crontab -l 2>/dev/null
|
||||
echo "0 0 * * * $path/backup.sh --auto"
|
||||
) | crontab -
|
||||
|
||||
if [ ! -d /opt/rustdesk-server-backups ]; then
|
||||
sudo mkdir /opt/rustdesk-server-backups
|
||||
fi
|
||||
|
||||
if [ ! -d /opt/rustdesk-server-backups/daily ]; then
|
||||
sudo mkdir /opt/rustdesk-server-backups/daily
|
||||
fi
|
||||
|
||||
if [ ! -d /opt/rustdesk-server-backups/weekly ]; then
|
||||
sudo mkdir /opt/rustdesk-server-backups/weekly
|
||||
fi
|
||||
|
||||
if [ ! -d /opt/rustdesk-server-backups/monthly ]; then
|
||||
sudo mkdir /opt/rustdesk-server-backups/monthly
|
||||
fi
|
||||
sudo chown "${usern}":"${usern}" -R /opt/rustdesk-server-backups
|
||||
|
||||
printf >&2 "Backups setup to run at midnight and rotate."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [ ! -d /opt/rustdesk-server-backups ]; then
|
||||
sudo mkdir /opt/rustdesk-server-backups
|
||||
sudo chown "${usern}":"${usern}" /opt/rustdesk-server-backups
|
||||
fi
|
||||
|
||||
dt_now=$(date '+%Y_%m_%d__%H_%M_%S')
|
||||
tmp_dir=$(mktemp -d -t rustdesk-XXXXXXXXXXXXXXXXXXXXX)
|
||||
sysd="/etc/systemd/system"
|
||||
|
||||
cp -rf /var/lib/rustdesk-server/ "${tmp_dir}"/
|
||||
sqlite3 /var/lib/rustdesk-server/db.sqlite3 .dump > "${tmp_dir}"/db_backup_file.sql
|
||||
|
||||
if [[ $* == *--auto* ]]; then
|
||||
|
||||
month_day=$(date +"%d")
|
||||
week_day=$(date +"%u")
|
||||
|
||||
if [ "$month_day" -eq 10 ]; then
|
||||
tar -cf /opt/rustdesk-server-backups/monthly/rustdesk-backup-"${dt_now}".tar -C "${tmp_dir}" .
|
||||
else
|
||||
if [ "$week_day" -eq 5 ]; then
|
||||
tar -cf /opt/rustdesk-server-backups/weekly/rustdesk-backup-"${dt_now}".tar -C "${tmp_dir}" .
|
||||
else
|
||||
tar -cf /opt/rustdesk-server-backups/daily/rustdesk-backup-"${dt_now}".tar -C "${tmp_dir}" .
|
||||
fi
|
||||
fi
|
||||
|
||||
rm -rf "${tmp_dir}"
|
||||
|
||||
find /opt/rustdesk-server-backups/daily/ -type f -mtime +14 -name '*.tar' -execdir rm -- '{}' \;
|
||||
find /opt/rustdesk-server-backups/weekly/ -type f -mtime +60 -name '*.tar' -execdir rm -- '{}' \;
|
||||
find /opt/rustdesk-server-backups/monthly/ -type f -mtime +380 -name '*.tar' -execdir rm -- '{}' \;
|
||||
echo -ne "Backup Completed"
|
||||
exit
|
||||
|
||||
else
|
||||
tar -cf /opt/rustdesk-server-backups/rustdesk-backup-"${dt_now}".tar -C "${tmp_dir}" .
|
||||
rm -rf "${tmp_dir}"
|
||||
echo -ne "Backup saved to /opt/rustdesk-server-backups/rustdesk-backup-${dt_now}.tar"
|
||||
fi
|
||||
17
install.sh
17
install.sh
@@ -12,6 +12,13 @@
|
||||
|
||||
##################################################################################################################
|
||||
|
||||
TLS=""
|
||||
if command -v ldconfig &> /dev/null; then
|
||||
if ldconfig -p | grep -q "libssl.so.3"; then
|
||||
TLS="-nativetls"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Install curl and whiptail if needed
|
||||
if [ ! -x "$(command -v curl)" ] || [ ! -x "$(command -v whiptail)" ]
|
||||
then
|
||||
@@ -166,6 +173,7 @@ Please report this to: https://github.com/rustdesk/rustdesk-server-pro/issues"
|
||||
then
|
||||
ACTUAL_TAR_NAME=arm64v8
|
||||
fi
|
||||
ACTUAL_TAR_NAME=${ACTUAL_TAR_NAME}${TLS}
|
||||
# Download
|
||||
if ! curl -fSLO --retry 3 https://github.com/rustdesk/rustdesk-server-pro/releases/download/"${RDLATEST}"/rustdesk-server-linux-"${ACTUAL_TAR_NAME}".tar.gz
|
||||
then
|
||||
@@ -189,14 +197,17 @@ This might be temporary, so please try to run the installation script again."
|
||||
fi
|
||||
mv "${ACTUAL_TAR_NAME}"/hbbr /usr/bin/
|
||||
mv "${ACTUAL_TAR_NAME}"/hbbs /usr/bin/
|
||||
mv "${ACTUAL_TAR_NAME}"/rustdesk-utils /usr/bin/
|
||||
rm -rf "$RUSTDESK_INSTALL_DIR"/"${ACTUAL_TAR_NAME:?}"
|
||||
rm -rf rustdesk-server-linux-"${ACTUAL_TAR_NAME}".tar.gz
|
||||
chmod +x /usr/bin/hbbs
|
||||
chmod +x /usr/bin/hbbr
|
||||
chmod +x /usr/bin/rustdesk-utils
|
||||
if [ -n "$RUSTDESK_USER" ]
|
||||
then
|
||||
chown "$RUSTDESK_USER":"$RUSTDESK_USER" -R /usr/bin/hbbr
|
||||
chown "$RUSTDESK_USER":"$RUSTDESK_USER" -R /usr/bin/hbbr
|
||||
chown "$RUSTDESK_USER":"$RUSTDESK_USER" -R /usr/bin/hbbs
|
||||
chown "$RUSTDESK_USER":"$RUSTDESK_USER" -R /usr/bin/rustdesk-utils
|
||||
fi
|
||||
else
|
||||
print_text_in_color "$IGreen" "Rustdesk server already installed."
|
||||
@@ -359,7 +370,7 @@ case "$choice" in
|
||||
while :
|
||||
do
|
||||
RUSTDESK_DOMAIN=$(input_box_flow "Please enter your domain, e.g. rustdesk.example.com")
|
||||
DIG=$(dig +short "${RUSTDESK_DOMAIN}" @resolver1.opendns.com)
|
||||
DIG=$(dig +short "${RUSTDESK_DOMAIN}" @8.8.8.8)
|
||||
if ! [[ "$RUSTDESK_DOMAIN" =~ ^[a-zA-Z0-9]+([a-zA-Z0-9.-]*[a-zA-Z0-9]+)?$ ]]
|
||||
then
|
||||
msg_box "$RUSTDESK_DOMAIN is an invalid domain/DNS address! Please try again."
|
||||
@@ -369,7 +380,7 @@ case "$choice" in
|
||||
done
|
||||
|
||||
# Check if DNS are forwarded correctly
|
||||
if dig +short "$RUSTDESK_DOMAIN" @resolver1.opendns.com | grep -q "$WANIP4"
|
||||
if dig +short "$RUSTDESK_DOMAIN" @8.8.8.8 | grep -q "$WANIP4"
|
||||
then
|
||||
print_text_in_color "$IGreen" "DNS seems correct when checking with dig!"
|
||||
else
|
||||
|
||||
304
restore.sh
304
restore.sh
@@ -1,304 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# shellcheck disable=2034,2059,2164
|
||||
true
|
||||
|
||||
usern=$(whoami)
|
||||
path=$(pwd)
|
||||
echo "$path"
|
||||
|
||||
# Check for /var/lib/rustdesk-server/
|
||||
if [ -d "/var/lib/rustdesk-server" ]; then
|
||||
echo "Directory already exists so not needing to restore"
|
||||
exit
|
||||
fi
|
||||
|
||||
ARCH=$(uname -m)
|
||||
|
||||
|
||||
# Identify OS
|
||||
if [ -f /etc/os-release ]; then
|
||||
# freedesktop.org and systemd
|
||||
source /etc/os-release
|
||||
OS=$NAME
|
||||
VER=$VERSION_ID
|
||||
UPSTREAM_ID=${ID_LIKE,,}
|
||||
|
||||
# Fallback to ID_LIKE if ID was not 'ubuntu' or 'debian'
|
||||
if [ "${UPSTREAM_ID}" != "debian" ] && [ "${UPSTREAM_ID}" != "ubuntu" ]; then
|
||||
UPSTREAM_ID="$(echo "${ID_LIKE,,}" | sed s/\"//g | cut -d' ' -f1)"
|
||||
fi
|
||||
|
||||
elif type lsb_release >/dev/null 2>&1; then
|
||||
# linuxbase.org
|
||||
OS=$(lsb_release -si)
|
||||
VER=$(lsb_release -sr)
|
||||
elif [ -f /etc/lsb-release ]; then
|
||||
# For some versions of Debian/Ubuntu without lsb_release command
|
||||
source /etc/lsb-release
|
||||
OS=$DISTRIB_ID
|
||||
VER=$DISTRIB_RELEASE
|
||||
elif [ -f /etc/debian_version ]; then
|
||||
# Older Debian, Ubuntu, etc.
|
||||
OS=Debian
|
||||
VER=$(cat /etc/debian_version)
|
||||
elif [ -f /etc/SuSE-release ]; then
|
||||
# Older SuSE, etc.
|
||||
OS=SuSE
|
||||
VER=$(cat /etc/SuSE-release)
|
||||
elif [ -f /etc/redhat-release ]; then
|
||||
# Older Red Hat, CentOS, etc.
|
||||
OS=RedHat
|
||||
VER=$(cat /etc/redhat-release)
|
||||
else
|
||||
# Fall back to uname, e.g. "Linux <version>", also works for BSD, etc.
|
||||
OS=$(uname -s)
|
||||
VER=$(uname -r)
|
||||
fi
|
||||
|
||||
|
||||
# Output debugging info if $DEBUG set
|
||||
if [ "$DEBUG" = "true" ]; then
|
||||
echo "OS: $OS"
|
||||
echo "VER: $VER"
|
||||
echo "UPSTREAM_ID: $UPSTREAM_ID"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Setup prereqs for server
|
||||
# Common named prereqs
|
||||
PREREQ="curl wget unzip tar"
|
||||
PREREQDEB="dnsutils ufw sqlite3"
|
||||
PREREQRPM="bind-utils sqlite"
|
||||
PREREQARCH="bind sqlite"
|
||||
|
||||
echo "Installing prerequisites"
|
||||
if [ "${ID}" = "debian" ] || [ "$OS" = "Ubuntu" ] || [ "$OS" = "Debian" ] || [ "${UPSTREAM_ID}" = "ubuntu" ] || [ "${UPSTREAM_ID}" = "debian" ]; then
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y "${PREREQ}" "${PREREQDEB}" # git
|
||||
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
|
||||
# Needs more work before it can be enabled
|
||||
# || [ "${UPSTREAM_ID}" = "suse" ]
|
||||
sudo yum update -y
|
||||
sudo dnf install -y epel-release
|
||||
sudo yum install -y "${PREREQ}" "${PREREQRPM}" # git
|
||||
elif [ "${ID}" = "arch" ] || [ "${UPSTREAM_ID}" = "arch" ]; then
|
||||
sudo pacman -Syu
|
||||
sudo pacman -S "${PREREQ}" "${PREREQARCH}"
|
||||
else
|
||||
echo "Unsupported OS"
|
||||
# Here you could ask the user for permission to try and install anyway
|
||||
# If they say yes, then do the install
|
||||
# If they say no, exit the script
|
||||
exit 1
|
||||
fi
|
||||
|
||||
tmp_dir=$(mktemp -d -t)
|
||||
|
||||
tar -xf "$path"/*.tar -C "$tmp_dir"
|
||||
|
||||
cp -rf "${tmp_dir}"/rustdesk-server/ /var/lib/
|
||||
sudo chown "${usern}":"${usern}" -R /var/lib/rustdesk-server/
|
||||
rm /var/lib/rustdesk-server/db.sqlite3
|
||||
sqlite3 /var/lib/rustdesk-server/db.sqlite3 < "${tmp_dir}"/db_backup_file.sql
|
||||
|
||||
# Get current release version
|
||||
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) }' | sed 's/-.*//')
|
||||
|
||||
cd /var/lib/rustdesk-server/
|
||||
rm -rf static/
|
||||
|
||||
echo "Installing RustDesk Server"
|
||||
if [ "${ARCH}" = "x86_64" ] ; then
|
||||
wget https://github.com/rustdesk/rustdesk-server-pro/releases/download/"${RDLATEST}"/rustdesk-server-linux-amd64.tar.gz
|
||||
tar -xf rustdesk-server-linux-amd64.tar.gz
|
||||
mv amd64/static /var/lib/rustdesk-server/
|
||||
sudo mv amd64/hbbr /usr/bin/
|
||||
sudo mv amd64/hbbs /usr/bin/
|
||||
rm -rf amd64/
|
||||
rm -rf rustdesk-server-linux-amd64.tar.gz
|
||||
elif [ "${ARCH}" = "armv7l" ] ; then
|
||||
wget "https://github.com/rustdesk/rustdesk-server-pro/releases/download/${RDLATEST}/rustdesk-server-linux-armv7.tar.gz"
|
||||
tar -xf rustdesk-server-linux-armv7.tar.gz
|
||||
mv armv7/static /var/lib/rustdesk-server/
|
||||
sudo mv armv7/hbbr /usr/bin/
|
||||
sudo mv armv7/hbbs /usr/bin/
|
||||
rm -rf armv7/
|
||||
rm -rf rustdesk-server-linux-armv7.tar.gz
|
||||
elif [ "${ARCH}" = "aarch64" ] ; then
|
||||
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
|
||||
mv arm64v8/static /var/lib/rustdesk-server/
|
||||
sudo mv arm64v8/hbbr /usr/bin/
|
||||
sudo mv arm64v8/hbbs /usr/bin/
|
||||
rm -rf arm64v8/
|
||||
rm -rf rustdesk-server-linux-arm64v8.tar.gz
|
||||
fi
|
||||
|
||||
sudo chmod +x /usr/bin/hbbs
|
||||
sudo chmod +x /usr/bin/hbbr
|
||||
|
||||
# Make folder /var/log/rustdesk-server/
|
||||
if [ ! -d "/var/log/rustdesk-server" ]; then
|
||||
echo "Creating /var/log/rustdesk-server"
|
||||
sudo mkdir -p /var/log/rustdesk-server/
|
||||
fi
|
||||
sudo chown "${usern}" -R /var/log/rustdesk-server/
|
||||
|
||||
# Setup systemd to launch hbbs
|
||||
rustdeskhbbs="$(cat << EOF
|
||||
[Unit]
|
||||
Description=RustDesk Signal Server
|
||||
[Service]
|
||||
Type=simple
|
||||
LimitNOFILE=1000000
|
||||
ExecStart=/usr/bin/hbbs
|
||||
WorkingDirectory=/var/lib/rustdesk-server/
|
||||
User=${usern}
|
||||
Group=${usern}
|
||||
Restart=always
|
||||
StandardOutput=append:/var/log/rustdesk-server/hbbs.log
|
||||
StandardError=append:/var/log/rustdesk-server/hbbs.error
|
||||
# Restart service after 10 seconds if node service crashes
|
||||
RestartSec=10
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
)"
|
||||
echo "${rustdeskhbbs}" | sudo tee /etc/systemd/system/rustdesk-hbbs.service > /dev/null
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl enable rustdesk-hbbs.service
|
||||
sudo systemctl start rustdesk-hbbs.service
|
||||
|
||||
# Setup systemd to launch hbbr
|
||||
rustdeskhbbr="$(cat << EOF
|
||||
[Unit]
|
||||
Description=RustDesk Relay Server
|
||||
[Service]
|
||||
Type=simple
|
||||
LimitNOFILE=1000000
|
||||
ExecStart=/usr/bin/hbbr
|
||||
WorkingDirectory=/var/lib/rustdesk-server/
|
||||
User=${usern}
|
||||
Group=${usern}
|
||||
Restart=always
|
||||
StandardOutput=append:/var/log/rustdesk-server/hbbr.log
|
||||
StandardError=append:/var/log/rustdesk-server/hbbr.error
|
||||
# Restart service after 10 seconds if node service crashes
|
||||
RestartSec=10
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
EOF
|
||||
)"
|
||||
echo "${rustdeskhbbr}" | sudo tee /etc/systemd/system/rustdesk-hbbr.service > /dev/null
|
||||
sudo systemctl daemon-reload
|
||||
sudo systemctl enable rustdesk-hbbr.service
|
||||
sudo systemctl start rustdesk-hbbr.service
|
||||
|
||||
while ! [[ $CHECK_RUSTDESK_READY ]]; do
|
||||
CHECK_RUSTDESK_READY=$(sudo systemctl status rustdesk-hbbr.service | grep "Active: active (running)")
|
||||
echo -ne "RustDesk Relay not ready yet...${NC}\n"
|
||||
sleep 3
|
||||
done
|
||||
|
||||
pubname=$(find /var/lib/rustdesk-server/ -name "*.pub")
|
||||
key=$(cat "${pubname}")
|
||||
|
||||
echo "Tidying up install"
|
||||
if [ "${ARCH}" = "x86_64" ] ; then
|
||||
rm rustdesk-server-linux-amd64.tar.gz
|
||||
rm -rf amd64
|
||||
elif [ "${ARCH}" = "armv7l" ] ; then
|
||||
rm rustdesk-server-linux-armv7.tar.gz
|
||||
rm -rf armv7
|
||||
elif [ "${ARCH}" = "aarch64" ] ; then
|
||||
rm rustdesk-server-linux-arm64v8.tar.gz
|
||||
rm -rf arm64v8
|
||||
fi
|
||||
|
||||
rm -rf "${tmp_dir:?}"/
|
||||
|
||||
# Choice for DNS or IP
|
||||
PS3='Choose your preferred option, IP or DNS/Domain:'
|
||||
WAN=("IP" "DNS/Domain")
|
||||
select WANOPT in "${WAN[@]}"; do
|
||||
case $WANOPT in
|
||||
"IP")
|
||||
wanip=$(dig @resolver4.opendns.com myip.opendns.com +short)
|
||||
sudo ufw allow 21114/tcp
|
||||
|
||||
sudo ufw enable && ufw reload
|
||||
break
|
||||
;;
|
||||
|
||||
"DNS/Domain")
|
||||
echo -ne "Enter your preferred domain/DNS address ${NC}: "
|
||||
read wanip
|
||||
# Check wanip is valid domain
|
||||
if ! [[ $wanip =~ ^[a-zA-Z0-9]+([a-zA-Z0-9.-]*[a-zA-Z0-9]+)?$ ]]; then
|
||||
echo -e "${RED}Invalid domain/DNS address${NC}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Installing nginx"
|
||||
if [ "${ID}" = "debian" ] || [ "$OS" = "Ubuntu" ] || [ "$OS" = "Debian" ] || [ "${UPSTREAM_ID}" = "ubuntu" ] || [ "${UPSTREAM_ID}" = "debian" ]; then
|
||||
sudo apt -y install nginx
|
||||
sudo apt -y install python3-certbot-nginx
|
||||
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
|
||||
# Needs more work before it can be enabled
|
||||
# || [ "${UPSTREAM_ID}" = "suse" ]
|
||||
sudo yum -y install nginx
|
||||
sudo yum -y install python3-certbot-nginx
|
||||
elif [ "${ID}" = "arch" ] || [ "${UPSTREAM_ID}" = "arch" ]; then
|
||||
sudo pacman -S install nginx
|
||||
sudo pacman -S install python3-certbot-nginx
|
||||
else
|
||||
echo "Unsupported OS"
|
||||
# Here you could ask the user for permission to try and install anyway
|
||||
# If they say yes, then do the install
|
||||
# If they say no, exit the script
|
||||
exit 1
|
||||
fi
|
||||
|
||||
rustdesknginx="$(
|
||||
cat <<EOF
|
||||
server {
|
||||
server_name ${wanip};
|
||||
location / {
|
||||
proxy_pass http://127.0.0.1:21114/;
|
||||
}
|
||||
}
|
||||
EOF
|
||||
)"
|
||||
|
||||
if [ -d "/etc/nginx/sites-available" ] && [ -d "/etc/nginx/sites-enabled" ]
|
||||
then
|
||||
echo "${rustdesknginx}" | sudo tee /etc/nginx/sites-available/rustdesk.conf >/dev/null
|
||||
sudo ln -s /etc/nginx/sites-available/rustdesk.conf /etc/nginx/sites-enabled/rustdesk.conf
|
||||
elif [ -d "/etc/nginx/conf.d" ]
|
||||
then
|
||||
echo "${rustdesknginx}" | sudo tee /etc/nginx/conf.d/rustdesk.conf >/dev/null
|
||||
else
|
||||
msg_box "Couldn't find the Nginx config directory. Please check your system!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
sudo ufw allow 80/tcp
|
||||
sudo ufw allow 443/tcp
|
||||
|
||||
sudo ufw enable && ufw reload
|
||||
|
||||
sudo certbot --nginx -d "${wanip}"
|
||||
|
||||
break
|
||||
;;
|
||||
*) echo "Invalid option $REPLY";;
|
||||
esac
|
||||
done
|
||||
|
||||
echo -e "Your IP/DNS Address is ${wanip}"
|
||||
echo -e "Your public key is ${key}"
|
||||
|
||||
echo -e "Restore is complete"
|
||||
1
terms
1
terms
@@ -13,6 +13,7 @@ IMPORTANT: PLEASE READ THIS SOFTWARE LICENSE AGREEMENT ("LICENSE AGREEMENT") CAR
|
||||
3. License Key:
|
||||
a) Purslane Limited will provide you with a unique license key ("License Key") to activate the Software on a specific server (machine).
|
||||
b) You agree that the License Key provided to you by Purslane Limited will be used exclusively on the designated server (machine) and will not be shared, transferred, or used on any other server (machine) without explicit written permission from Purslane Limited.
|
||||
c) Reselling license and custom client are not allowed.
|
||||
|
||||
4. Term and Billing:
|
||||
a) The license term for the Software shall be one (1) year, starting from the date of purchase.
|
||||
|
||||
39
update.sh
39
update.sh
@@ -3,6 +3,13 @@
|
||||
# shellcheck disable=2034,2059,2164
|
||||
true
|
||||
|
||||
TLS=""
|
||||
if command -v ldconfig &> /dev/null; then
|
||||
if ldconfig -p | grep -q "libssl.so.3"; then
|
||||
TLS="-nativetls"
|
||||
fi
|
||||
fi
|
||||
|
||||
# Get username
|
||||
usern=$(whoami) # not used btw ... yet
|
||||
|
||||
@@ -84,33 +91,37 @@ rm -rf static/
|
||||
|
||||
echo "Upgrading RustDesk Server"
|
||||
if [ "${ARCH}" = "x86_64" ] ; then
|
||||
wget https://github.com/rustdesk/rustdesk-server-pro/releases/download/${RDLATEST}/rustdesk-server-linux-amd64.tar.gz
|
||||
tar -xf rustdesk-server-linux-amd64.tar.gz
|
||||
mv amd64/static /var/lib/rustdesk-server/
|
||||
sudo mv amd64/hbbr /usr/bin/
|
||||
sudo mv amd64/hbbs /usr/bin/
|
||||
rm -rf amd64/
|
||||
rm -rf rustdesk-server-linux-amd64.tar.gz
|
||||
wget https://github.com/rustdesk/rustdesk-server-pro/releases/download/${RDLATEST}/rustdesk-server-linux-amd64${TLS}.tar.gz
|
||||
tar -xf rustdesk-server-linux-amd64${TLS}.tar.gz
|
||||
mv amd64${TLS}/static /var/lib/rustdesk-server/
|
||||
sudo mv amd64${TLS}/hbbr /usr/bin/
|
||||
sudo mv amd64${TLS}/hbbs /usr/bin/
|
||||
sudo mv amd64${TLS}/rustdesk-utils /usr/bin/
|
||||
rm -rf amd64${TLS}/
|
||||
rm -rf rustdesk-server-linux-amd64${TLS}.tar.gz
|
||||
elif [ "${ARCH}" = "armv7l" ] ; then
|
||||
wget "https://github.com/rustdesk/rustdesk-server-pro/releases/download/${RDLATEST}/rustdesk-server-linux-armv7.tar.gz"
|
||||
tar -xf rustdesk-server-linux-armv7.tar.gz
|
||||
mv armv7/static /var/lib/rustdesk-server/
|
||||
sudo mv armv7/hbbr /usr/bin/
|
||||
sudo mv armv7/hbbs /usr/bin/
|
||||
sudo mv armv7/rustdesk-utils /usr/bin/
|
||||
rm -rf armv7/
|
||||
rm -rf rustdesk-server-linux-armv7.tar.gz
|
||||
elif [ "${ARCH}" = "aarch64" ] ; then
|
||||
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
|
||||
mv arm64v8/static /var/lib/rustdesk-server/
|
||||
sudo mv arm64v8/hbbr /usr/bin/
|
||||
sudo mv arm64v8/hbbs /usr/bin/
|
||||
rm -rf arm64v8/
|
||||
rm -rf rustdesk-server-linux-arm64v8.tar.gz
|
||||
wget "https://github.com/rustdesk/rustdesk-server-pro/releases/download/${RDLATEST}/rustdesk-server-linux-arm64v8${TLS}.tar.gz"
|
||||
tar -xf rustdesk-server-linux-arm64v8${TLS}.tar.gz
|
||||
mv arm64v8${TLS}/static /var/lib/rustdesk-server/
|
||||
sudo mv arm64v8${TLS}/hbbr /usr/bin/
|
||||
sudo mv arm64v8${TLS}/hbbs /usr/bin/
|
||||
sudo mv arm64v8${TLS}/rustdesk-utils /usr/bin/
|
||||
rm -rf arm64v8${TLS}/
|
||||
rm -rf rustdesk-server-linux-arm64v8${TLS}.tar.gz
|
||||
fi
|
||||
|
||||
sudo chmod +x /usr/bin/hbbs
|
||||
sudo chmod +x /usr/bin/hbbr
|
||||
sudo chmod +x /usr/bin/rustdesk-utils
|
||||
|
||||
sudo systemctl start rustdesk-hbbs.service
|
||||
sudo systemctl start rustdesk-hbbr.service
|
||||
|
||||
Reference in New Issue
Block a user