Преглед на файлове

Update changedetection-install.sh

Code refactoring
tteckster преди 2 години
родител
ревизия
69bdd64193
променени са 1 файла, в които са добавени 117 реда и са изтрити 9 реда
  1. 117 9
      install/changedetection-install.sh

+ 117 - 9
install/changedetection-install.sh

@@ -13,37 +13,145 @@ setting_up_container
 network_check
 network_check
 update_os
 update_os
 
 
-msg_info "Installing Dependencies"
-$STD apt-get install -y curl
-$STD apt-get install -y sudo
-$STD apt-get install -y mc
-$STD apt-get install -y pip
+msg_info "Installing Dependencies (Patience)"
+$STD apt-get install -y \
+  curl \
+  sudo \
+  mc \
+  git \
+  build-essential \
+  dumb-init \
+  gconf-service \
+  ffmpeg \  #can find no need
+  libappindicator1 \  #can find no need
+  libappindicator3-1 \  #can find no need
+  libasound2 \  #can find no need
+  libatk-bridge2.0-0 \
+  libatk1.0-0 \
+  libcairo2 \
+  libcups2 \
+  libdbus-1-3 \
+  libexpat1 \
+  libgbm-dev \
+  libgbm1 \
+  libgconf-2-4 \
+  libgdk-pixbuf2.0-0 \
+  libglib2.0-0 \
+  libgtk-3-0 \
+  libnspr4 \
+  libnss3 \
+  libpango-1.0-0 \
+  libpangocairo-1.0-0 \
+  qpdf \
+  xdg-utils \
+  xvfb
 msg_ok "Installed Dependencies"
 msg_ok "Installed Dependencies"
 
 
+msg_info "Installing Python3"
+$STD apt-get install -y \
+  python3-dev \
+  python3-pip
+msg_ok "Installed Python3"
+
+msg_info "Setting up Node.js Repository"
+$STD bash <(curl -fsSL https://deb.nodesource.com/setup_18.x)
+msg_ok "Set up Node.js Repository"
+
+msg_info "Installing Node.js"
+$STD apt-get install -y nodejs
+msg_ok "Installed Node.js"
+
 msg_info "Installing Change Detection"
 msg_info "Installing Change Detection"
 mkdir /opt/changedetection
 mkdir /opt/changedetection
 $STD pip3 install changedetection.io
 $STD pip3 install changedetection.io
 $STD python3 -m pip install dnspython==2.2.1
 $STD python3 -m pip install dnspython==2.2.1
 msg_ok "Installed Change Detection"
 msg_ok "Installed Change Detection"
 
 
-msg_info "Creating Service"
+msg_info "Installing Browserless & Playwright"
+mkdir /opt/browserless
+$STD python3 -m pip install playwright
+$STD git clone https://github.com/browserless/chrome /opt/browserless
+$STD npm install --prefix /opt/browserless
+$STD npm run build --prefix /opt/browserless
+$STD npm prune production --prefix /opt/browserless
+msg_ok "Installed Browserless & Playwright"
+
+msg_info "Installing Font Packages"
+$STD apt-get install -y \
+  fontconfig \
+  libfontconfig1 \
+  fonts-freefont-ttf \
+  fonts-gfs-neohellenic \
+  fonts-indic fonts-ipafont-gothic \
+  fonts-kacst fonts-liberation \
+  fonts-noto-cjk \
+  fonts-noto-color-emoji \
+  msttcorefonts \
+  fonts-roboto \
+  fonts-thai-tlwg \
+  fonts-wqy-zenhei
+msg_ok "Installed Font Packages"
+
+msg_info "Installing X11 Packages"
+$STD apt-get install -y \
+  libx11-6 \
+  libx11-xcb1 \
+  libxcb1 \
+  libxcomposite1 \
+  libxcursor1 \
+  libxdamage1 \
+  libxext6 \
+  libxfixes3 \
+  libxi6 \
+  libxrandr2 \
+  libxrender1 \
+  libxss1 \
+  libxtst6
+msg_ok "Installed X11 Packages"
+
+msg_info "Creating Services"
 cat <<EOF >/etc/systemd/system/changedetection.service
 cat <<EOF >/etc/systemd/system/changedetection.service
 [Unit]
 [Unit]
 Description=Change Detection
 Description=Change Detection
 After=network-online.target
 After=network-online.target
+After=network.target browserless.service
+Wants=browserless.service
 [Service]
 [Service]
 Type=simple
 Type=simple
 WorkingDirectory=/opt/changedetection
 WorkingDirectory=/opt/changedetection
 Environment="WEBDRIVER_URL=http://127.0.0.1:4444/wd/hub"
 Environment="WEBDRIVER_URL=http://127.0.0.1:4444/wd/hub"
+Environment="PLAYWRIGHT_DRIVER_URL=ws://127.0.0.1:3000/?stealth=1&--disable-web-security=true"
 ExecStart=changedetection.io -d /opt/changedetection -p 5000
 ExecStart=changedetection.io -d /opt/changedetection -p 5000
 [Install]
 [Install]
 WantedBy=multi-user.target
 WantedBy=multi-user.target
 EOF
 EOF
-$STD systemctl enable --now changedetection
-msg_ok "Created Service"
+
+cat <<EOF >/etc/systemd/system/browserless.service
+[Unit]
+Description=browserless service
+After=network.target
+[Service]
+Environment=APP_DIR=/opt/browserless
+Environment=PLAYWRIGHT_BROWSERS_PATH=/opt/browserless
+Environment=CONNECTION_TIMEOUT=60000
+Environment=HOST=127.0.0.1
+Environment=LANG="C.UTF-8"
+Environment=NODE_ENV=production
+Environment=PORT=3000
+Environment=WORKSPACE_DIR=/opt/browserless/workspace
+WorkingDirectory=/opt/browserless
+ExecStart=/opt/browserless/start.sh
+SyslogIdentifier=browserless
+[Install]
+WantedBy=default.target
+EOF
+
+systemctl enable -q --now browserless
+systemctl enable -q --now changedetection
+msg_ok "Created Services"
 
 
 motd_ssh
 motd_ssh
-customize
+root
 
 
 msg_info "Cleaning up"
 msg_info "Cleaning up"
 $STD apt-get autoremove
 $STD apt-get autoremove