@danielruf/website-checks

checks websites with multiple services

Usage no npm install needed!

<script type="module">
  import danielrufWebsiteChecks from 'https://cdn.skypack.dev/@danielruf/website-checks';
</script>

README

website-checks

Build Status

website-checks checks websites with multiple services and generates PDF files of the reports.

These are currently:

  • Check Your Website
  • crt.sh
  • CryptCheck
  • HSTS Preload List
  • HTTP Observatory
  • Lighthouse
  • PageSpeed Insights
  • Security Headers
  • SSL Decoder
  • SSLLabs
  • webbkoll
  • webhint

Installation

Node setup

Add the following lines to your ~/.npmrc file:

//npm.pkg.github.com/:_authToken=<github-access-token>
@danielruf:registry=https://npm.pkg.github.com

You have to generate an access token for reading packages. To generate a new one go to https://github.com/settings/tokens/new.

Then install the package:

yarn global add @danielruf/website-checks
# or
npm i -g @danielruf/website-checks

Alternatively you can use the following:

yarn global add danielruf/website-checks
# or
npm i -g danielruf/website-checks

Only the current master and LTS releases of NodeJS are tested.
NodeJS >=10.12.0 is recommended.

Docker setup

In docker-compose.yml, modify the TARGET_URL variable to change the website.

Then run:

docker-compose up

Only Docker Engine versions 18.06.0+ are supported since the Docker Compose file version is 3.7.

Usage

website-checks example.com

Change output directory

website-checks example.com --output pdf would save all PDF files to the local pdf directory.

CLI flags

By default all checks (except --ssldecoder) will run. If you want to run only specific checks you can add CLI flags.

Currently the following CLI flags will run the matching checks:

--check-your-website
--crtsh
--cryptcheck
--hstspreload
--httpobservatory
--lighthouse
--psi
--securityheaders
--ssldecoder
--ssldecoder-fast
--ssllabs
--webbkoll
--webhint

For example website-checks example.com --lighthouse --securityheaders will run the Lighthouse and Security Headers checks.

Known issues

missing Chrome / Chromium dependency for Windows binary (.exe)

On Windows it may happen that the bundled binary throws the following error:

UnhandledPromiseRejectionWarning: Error: Chromium revision is not downloaded. Run "npm install" or "yarn install" at Launcher.launch

This is a known issue with all solutions like pkg and nexe and expected as Chromium is not bundled with the binary which would make it much bigger.

In most cases it should be solved by globally installing puppeteer or by having Chrome or Chromium installed and in PATH.