GithubHelp home page GithubHelp logo

tigt / wptagent-install Goto Github PK

View Code? Open in Web Editor NEW

This project forked from catchpoint/webpagetest.agent-install

0.0 0.0 0.0 3.09 MB

Automated scripts for installing dedicated wptagent instances

License: Apache License 2.0

Shell 96.49% Python 3.15% Rich Text Format 0.36%

wptagent-install's Introduction

wptagent-install

Automated scripts for installing dedicated wptagent agents

For the debian.sh script, there are several environment variables that can control the options:

i.e.

WPT_SERVER="webpagetest.mycompany.com" WPT_LOCATION="Dulles" WPT_KEY="xxxSomeSecretKeyxxx" DISABLE_IPV6=y WPT_OPERA=y WPT_VIVALDI=y bash <(curl -s https://raw.githubusercontent.com/WPO-Foundation/wptagent-install/master/debian.sh)

Location config (these will prompt if not specified and not installing for cloud):

  • WPT_SERVER - WebPageTest server. i.e. WPT_SERVER="webpagetest.mycompany.com"
  • WPT_LOCATION - Location ID for the agent. i.e. WPT_LOCATION="Dulles"
  • WPT_KEY - Key for the location

Agent:

  • WPT_CLOUD - blank (default) for no cloud. "ec2" or "gce" to get config dynamically from user data in Google or Amazon cloud.
  • AGENT_MODE - "desktop" (default), "ios" or "android".
  • WPT_UPDATE_AGENT - "y" (default) or "n" : automatically update the agent from GitHub's release branch hourly and Lighthouse daily.
  • WPT_BRANCH - "release" (default) : specify Github branch to sync

OS:

  • DISABLE_IPV6 - "y" or "n" (default) : disable IPv6 networking (recommended for systems without IPv6 connectivity).
  • WPT_UPDATE_OS - "y" (default) or "n" : Automatically apt dist-upgrade all packages daily after reboot.
  • WPT_UPDATE_OS_NOW - "y" (default) or "n" : apt dist-upgrade all packages as part of the initial agent setup.

Browsers:

  • WPT_UPDATE_BROWSERS - "y" (default) or "n" : Re-install the certificates for browser installers daily so they stay up to date and automatically update the browsers daily.
  • WPT_CHROME - "y" (default) or "n" : Install Google Chrome (stable, beta and dev channels)
  • WPT_FIREFOX - "y" (default) or "n" : Install Mozilla Firefox (Stable, ESR and Nightly)
  • WPT_EDGE - "y" (default) or "n" : Install Microsoft Edge (Dev)
  • WPT_BRAVE - "y" (default) or "n" : Install The Brave Browser (stable, beta and dev channels)
  • WPT_EPIPHANY - "y" (default) or "n" : Install Epiphany for WebKit testing (Requires Ubunto 20.04+)
  • WPT_OPERA - "y" or "n" (default) : Install Opera (stable, beta and dev channels)
  • WPT_VIVALDI - "y" or "n" (default) : Install Vivaldi

Misc:

  • WPT_INTERACTIVE = "y" or "n" (default) : Install in a shared OS environment. "y" will expect to take over the whole machine, configure watchdog, cron, etc. "n" can be used for development installs (and will default to the master branch).

For convenience, the github url is also available shortened as http://tiny.cc/wptagent

WPT_SERVER="webpagetest.mycompany.com" WPT_LOCATION="Dulles" WPT_KEY="xxxSomeSecretKeyxxx" DISABLE_IPV6=y WPT_OPERA=y WPT_VIVALDI=y bash <(curl -sL http://tiny.cc/wptagent)

Ubuntu 18.04+:

Tested on 18.04 LTS and 20.04 LTS

bash <(curl -s https://raw.githubusercontent.com/WPO-Foundation/wptagent-install/master/debian.sh)

on Google Cloud:

WPT_CLOUD=gce bash <(curl -s https://raw.githubusercontent.com/WPO-Foundation/wptagent-install/master/debian.sh)

on Amazon EC2:

WPT_CLOUD=ec2 bash <(curl -s https://raw.githubusercontent.com/WPO-Foundation/wptagent-install/master/debian.sh)

Raspberry Pi (Raspbian Stretch+):

Requires editing ~/agent.sh after install to configure tethering and traffic shaping.

Desktop testing works best with Raspbian Buster or later.

Warning: This takes a LONG time (several hours). For multiple devices it is generally best to get one configured and then just clone the SD card for other devices.

bash <(curl -s https://raw.githubusercontent.com/WPO-Foundation/wptagent-install/master/debian.sh)

MacOS

Tested on MacOS 11 (x86 and ARM)

  • Configure MacOS to log in automatically (System Preferences->Users and Groups->Login Options)
  • Turn off the screen saver and configure power management to never put the display to sleep
  • Install Xcode manually from the app store. Launch it and accept the license.
    • If running on an M1 device, install rosetta when prompted (after accepting the license)
  • Run the agent install script from a Terminal shell:
bash <(curl -s https://raw.githubusercontent.com/WPO-Foundation/wptagent-install/master/macos.sh)
  • The install script should install all of the browsers and prompt for the necessary system permissions.
  • Configure the agent and watchdog to start automatically at startup.
    • System Preferences->Users and Groups->Login Items
    • Add ~/wptagent-install/macos/Agent and Watchdog
  • Reboot

Dev Setup on Ubuntu Desktop (18.04 LTS recommended)

Will not configure X, watchdog, cron or a startup script. There will be a master branch checkout in ~/wptagent/ and a script to run the agent at ~/agent.sh

WPT_INTERACTIVE="y" bash <(curl -sL http://tiny.cc/wptagent)

wptagent-install's People

Contributors

chandanpasunoori avatar gfx avatar phanect avatar pmeenan avatar tkadlec avatar zhbhun avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.