From 69bdd6419375e0641d435604ede8d06ef632aaf7 Mon Sep 17 00:00:00 2001 From: tteckster Date: Mon, 29 May 2023 09:40:56 -0400 Subject: [PATCH] Update changedetection-install.sh Code refactoring --- install/changedetection-install.sh | 126 ++++++++++++++++++++++++++--- 1 file changed, 117 insertions(+), 9 deletions(-) diff --git a/install/changedetection-install.sh b/install/changedetection-install.sh index 34e0bcca..193e5373 100644 --- a/install/changedetection-install.sh +++ b/install/changedetection-install.sh @@ -13,37 +13,145 @@ setting_up_container network_check 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_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" mkdir /opt/changedetection $STD pip3 install changedetection.io $STD python3 -m pip install dnspython==2.2.1 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 </etc/systemd/system/changedetection.service [Unit] Description=Change Detection After=network-online.target +After=network.target browserless.service +Wants=browserless.service [Service] Type=simple WorkingDirectory=/opt/changedetection 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 [Install] WantedBy=multi-user.target EOF -$STD systemctl enable --now changedetection -msg_ok "Created Service" + +cat </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 -customize +root msg_info "Cleaning up" $STD apt-get autoremove