diff --git a/Utilities/Remotely_CentOS_Install.sh b/Utilities/Remotely_CentOS_Install.sh new file mode 100644 index 00000000..2471e3d5 --- /dev/null +++ b/Utilities/Remotely_CentOS_Install.sh @@ -0,0 +1,140 @@ +#!/bin/bash +echo "Thanks for trying remotely! If you have any questions, feel free to email me at Translucency_Software@outlook.com." +echo + +read -p "Enter path where the Remotely server files are located (typically /var/www/remotely): " appRoot +if [ -z "$appRoot" ]; then + appRoot="/var/www/remotely" +fi + +read -p "Enter server host (e.g. remotely.yourdomainname.com): " serverHost + +yum update + +# Install .NET Core Runtime. +sudo rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm + +yum -y install apt-transport-https +yum -y update +yum -y install aspnetcore-runtime-3.1 + + + # Install other prerequisites. +yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm +yum -y install yum-utils +yum-config-manager --enable rhui-REGION-rhel-server-extras rhui-REGION-rhel-server-optional +yum -y install unzip +yum -y install acl +yum -y install ffmpeg +yum -y install libc6-dev +yum -y install libgdiplus + + +# Download and install Remotely files. +mkdir -p $appRoot +wget "https://github.com/Jay-Rad/Remotely/releases/latest/download/Remotely_Server_Linux-x64.zip" +unzip -o Remotely_Server_Linux-x64.zip -d $appRoot +rm Remotely_Server_Linux-x64.zip +setfacl -R -m u:apache:rwx $appRoot +chown -R apache:apache $appRoot + + +# Install Nginx +yum -y install nginx + +systemctl start nginx + + +# Configure Nginx +nginxConfig="server { + listen 80; + server_name $serverHost *.$serverHost; + location / { + proxy_pass http://localhost:5000; + proxy_http_version 1.1; + proxy_set_header Upgrade \$http_upgrade; + proxy_set_header Connection keep-alive; + proxy_set_header Host \$host; + proxy_cache_bypass \$http_upgrade; + proxy_set_header X-Forwarded-For \$proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto \$scheme; + } + + location /BrowserHub { + proxy_pass http://localhost:5000; + proxy_http_version 1.1; + proxy_set_header Upgrade \$http_upgrade; + proxy_set_header Connection \"upgrade\"; + proxy_set_header Host \$host; + proxy_cache_bypass \$http_upgrade; + } + location /DeviceHub { + proxy_pass http://localhost:5000; + proxy_http_version 1.1; + proxy_set_header Upgrade \$http_upgrade; + proxy_set_header Connection \"upgrade\"; + proxy_set_header Host \$host; + proxy_cache_bypass \$http_upgrade; + } + + location /RCBrowserHub { + proxy_pass http://localhost:5000; + proxy_http_version 1.1; + proxy_set_header Upgrade \$http_upgrade; + proxy_set_header Connection \"upgrade\"; + proxy_set_header Host \$host; + proxy_cache_bypass \$http_upgrade; + } + location /RCDeviceHub { + proxy_pass http://localhost:5000; + proxy_http_version 1.1; + proxy_set_header Upgrade \$http_upgrade; + proxy_set_header Connection \"upgrade\"; + proxy_set_header Host \$host; + proxy_cache_bypass \$http_upgrade; + } +}" + +echo "$nginxConfig" > /etc/nginx/conf.d/remotely.conf + +# Test config. +nginx -t + +# Reload. +nginx -s reload + + +# Create service. + +serviceConfig="[Unit] +Description=Remotely Server + +[Service] +WorkingDirectory=$appRoot +ExecStart=/usr/bin/dotnet $appRoot/Remotely_Server.dll +Restart=always +# Restart service after 10 seconds if the dotnet service crashes: +RestartSec=10 +SyslogIdentifier=remotely +Environment=ASPNETCORE_ENVIRONMENT=Production +Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false + +[Install] +WantedBy=multi-user.target" + +echo "$serviceConfig" > /etc/systemd/system/remotely.service + + +# Enable service. +systemctl enable remotely.service +# Start service. +systemctl start remotely.service + +firewall-cmd --permanent --zone=public --add-service=http +firewall-cmd --permanent --zone=public --add-service=https +firewall-cmd --reload + +# Install Certbot and get SSL cert. +yum -y install certbot python2-certbot-nginx + +certbot --nginx \ No newline at end of file diff --git a/Utilities/Remotely_Server_Install.sh b/Utilities/Remotely_Server_Install.sh index 93600bea..f2072411 100644 --- a/Utilities/Remotely_Server_Install.sh +++ b/Utilities/Remotely_Server_Install.sh @@ -17,15 +17,15 @@ apt-get update wget -q https://packages.microsoft.com/config/ubuntu/$UbuntuVersion/packages-microsoft-prod.deb dpkg -i packages-microsoft-prod.deb add-apt-repository universe -apt-get install -y apt-transport-https +apt-get -y install apt-transport-https apt-get update -apt-get install -y aspnetcore-runtime-3.1 +apt-get -y install aspnetcore-runtime-3.1 rm packages-microsoft-prod.deb # Install other prerequisites. -apt-get install -y unzip -apt-get install -y acl +apt-get -y install unzip +apt-get -y install acl apt-get -y install ffmpeg apt-get -y install libc6-dev apt-get -y install libgdiplus @@ -42,7 +42,7 @@ chown -R www-data:www-data $appRoot # Install Nginx apt-get update -apt-get install -y nginx +apt-get -y install nginx systemctl start nginx