{"id":18412509,"url":"https://github.com/boyney123/garie-lighthouse","last_synced_at":"2025-07-09T13:07:52.069Z","repository":{"id":33822315,"uuid":"147255590","full_name":"boyney123/garie-lighthouse","owner":"boyney123","description":"Lighthouse Garie plugin. Polls websites to checkout performance metrics also supports webhooks.","archived":false,"fork":false,"pushed_at":"2021-12-02T20:00:49.000Z","size":591,"stargazers_count":49,"open_issues_count":15,"forks_count":23,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-03-22T17:11:25.644Z","etag":null,"topics":["garie","lighthouse-audits","performance","web-performance"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/boyney123.png","metadata":{"files":{"readme":"readme.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"license","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-09-03T21:32:14.000Z","updated_at":"2025-02-11T21:34:14.000Z","dependencies_parsed_at":"2022-08-07T23:16:28.542Z","dependency_job_id":null,"html_url":"https://github.com/boyney123/garie-lighthouse","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/boyney123%2Fgarie-lighthouse","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/boyney123%2Fgarie-lighthouse/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/boyney123%2Fgarie-lighthouse/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/boyney123%2Fgarie-lighthouse/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/boyney123","download_url":"https://codeload.github.com/boyney123/garie-lighthouse/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247644371,"owners_count":20972274,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["garie","lighthouse-audits","performance","web-performance"],"created_at":"2024-11-06T03:42:19.930Z","updated_at":"2025-04-07T11:31:59.067Z","avatar_url":"https://github.com/boyney123.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"![reports](./screenshots/logo.png 'Reports')\n\n\u003cp align=\"center\"\u003e\n  \u003cp align=\"center\"\u003eTool to gather lighthouse metrics and supports CRON jobs and webhooks.\u003cp\u003e\n  \u003cp align=\"center\"\u003e\u003ca href=\"https://travis-ci.org/boyney123/garie-lighthouse\"\u003e\u003cimg src=\"https://img.shields.io/travis/boyney123/garie-lighthouse/master.svg\" alt=\"Build Status\"\u003e\u003c/a\u003e\n    \u003ca href=\"https://codecov.io/gh/boyney123/garie-lighthouse/\"\u003e\u003cimg src=\"https://codecov.io/gh/boyney123/garie-lighthouse/branch/master/graph/badge.svg?token=AoXW3EFgMP\" alt=\"Codecov\"\u003e\u003c/a\u003e\n\t\u003ca href=\"https://github.com/boyney123/garie\"\u003e\u003cimg src=\"https://img.shields.io/badge/plugin%20built%20for-garie-blue.svg\" alt=\"garie\"\u003e\u003c/a\u003e  \n    \u003ca href=\"https://opensource.org/licenses/MIT\"\u003e\u003cimg src=\"https://img.shields.io/badge/License-MIT-yellow.svg\" alt=\"MIT\"\u003e\u003c/a\u003e\n\n  \u003c/p\u003e\n\u003c/p\u003e\n\n**Highlights**\n\n-   Poll for lighthouse performance metrics on any website and stores the data into InfluxDB\n-   Webhook support\n-   Understand your performance metrics with recommend improvements thanks to lighthouse reports\n-   View all historic lighthouse reports.\n-   Setup within minutes\n\n## Overview of garie-lighthouse\n\nGarie-lighthouse was developed as a plugin for the [Garie](https://github.com/boyney123/garie) Architecture.\n\n[Garie](https://github.com/boyney123/garie) is an out the box web performance toolkit, and `garie-lighthouse` is a plugin that generates and stores lighthouse data into `InfluxDB`.\n\n`Garie-lighthouse` can also be run outside the `Garie` environment and run as standalone.\n\nIf your interested in an out the box solution that supports multiple performance tools like `lighthouse`, `google-speed-insight` and `web-page-test` then checkout [Garie](https://github.com/boyney123/garie).\n\nIf you want to run `garie-lighthouse` standalone you can find out how below.\n\n## Getting Started\n\n### Prerequisites\n\n-   Docker installed\n\n### Running garie-lighthouse\n\nYou can get setup with the basics in a few minutes.\n\nFirst clone the repo.\n\n```sh\ngit clone git@github.com:boyney123/garie-lighthouse.git\n```\n\nNext setup you're config. Edit the `config.json` and add websites to the list.\n\n```javascript\n{\n\t\"cron\": \"00 00 */6 * * *\",\n\t\"urls\": [\n\t\t{\n\t\t\t\"url\": \"https://www.comparethemarket.com\",\n\t\t\t\"report\": true\n\t\t},\n\t\t{\n\t\t\t\"url\": \"https://www.bbc.co.uk\",\n\t\t\t\"report\": true\n\t\t},\n\t\t{\n\t\t\t\"url\": \"https://www.cnn.com\",\n\t\t\t\"report\": true\n\t\t}\n\t]\n}\n```\n\nOnce you finished edited your config, lets build our docker image and setup our environment.\n\n```sh\ndocker build -t garie-lighthouse . \u0026\u0026 docker-compose up\n```\n\nThis will build your copy of `garie-lighthouse` and run the application.\n\nOn start garie-lighthouse will start to gather performance metrics for the websites added to the `config.json`.\n\n## Data collected\n\nLighthouse comes with loads of audits out the box. You can view all metrics in the reports.\n\nGarie-lighthouse filters what data is stored into influxDB and returned in the webhook.\n\n| Property                | Type     | Description                             |\n| ----------------------- | -------- | --------------------------------------- |\n| `performance-score`     | `number` | Overall performance score.              |\n| `pwa-score`             | `number` | Overall progressive web app score.      |\n| `accessibility-score`   | `number` | Overall accessibility score.            |\n| `best-practices-score`  | `number` | Overall best practices score.           |\n| `seo-score`             | `number` | Overall seo score.                      |\n| `time-to-first-byte`    | `number` | Number of ms to first byte.             |\n| `firstContentfulPaint`  | `number` | Number of ms to first contentful paint. |\n| `firstMeaningfulPaint`  | `number` | Number of ms to first meaningful paint. |\n| `interactive`           | `number` | Number of ms to interactive.            |\n| `firstCPUIdle`          | `number` | Number of ms to CPU idle.               |\n| `speedIndex`            | `number` | Google speed index.                     |\n| `estimatedInputLatency` | `number` | Input Latency.                          |\n| `errors-in-console`     | `number` | Number of errors in the console.        |\n| `redirects`             | `number` | Number of redirects.                    |\n| `redirects`             | `number` | Number of redirects.                    |\n\n## Viewing reports\n\nViewing lighthouse reports is straight forward. Once you have your application running just go to `localhost:3000/reports` and you should see all the reports lighthouse has generated.\n\n![reports](./screenshots/reports.png 'Reports')\n![reports](./screenshots/lighthouse.png 'Reports')\n\nIf you don't want to generate reports you can turn this off in the `config.json` by setting `report` to false.\n\n## Webhook\n\nGarie-lighthouse also supports webhooks. You will need to `POST` to `localhost:3000/collect`.\n\n**Payload**\n\n| Property | Type                 | Description                                            |\n| -------- | -------------------- | ------------------------------------------------------ |\n| `url`    | `string` (required)  | Url to get metrics for.                                |\n| `report` | `boolean` (optional) | When set to true a lighthouse report will be generated |\n\n**Payload Example**\n\n```javascript\n{\n  \"url\": \"https://www.bbc.co.uk\",\n  \"report\": true\n}\n```\n\n_By default, reports on webhook's are not generated unless you set `report` to true_\n\n## config.json\n\n| Property | Type                | Description                                                                          |\n| -------- | ------------------- | ------------------------------------------------------------------------------------ |\n| `cron`   | `string` (optional) | Cron timer. Supports syntax can be found [here].(https://www.npmjs.com/package/cron) |\n| `urls`   | `object` (required) | Config for lighthouse. More detail below                                             |\n\n**urls object**\n\n| Property         | Type                 | Description                                               |\n| ---------------- | -------------------- | --------------------------------------------------------- |\n| `url`            | `string` (required)  | Url to get lighthouse metrics for.                        |\n| `plugins`        | `object` (optional)  | To setup custom lighthouse config.                        |\n| `plugins.name`   | `string` (required)  | Needs to be set to `lighthouse`                           |\n| `plugins.report` | `boolean` (optional) | If set to true, lighthouse report will also be generated. |\n| `plugins.config` | `object` (optional)  | To configure lighthouse, such as device type and throttling. See [Configuration](https://github.com/GoogleChrome/lighthouse/blob/master/docs/configuration.md) for details. |\n\n## Example (Basic Config)\n\n```javascript\n{\n\t\"url\": \"https://www.bbc.co.uk\",\n\t\"plugins\": [\n\t\t{\n\t\t\t\"name\": \"lighthouse\",\n\t\t\t\"report\": true\n\t\t}\n\t]\n}\n```\n\n## Example (Custom Config)\n```javascript\n{\n\t\"url\": \"https://www.bbc.co.uk\",\n\t\"plugins\": [\n\t\t{\n\t\t\t\"name\": \"lighthouse\",\n\t\t\t\"report\": true,\n\t\t\t\"config\": {\n\t\t\t\t\"extends\": \"lighthouse:default\",\n\t\t\t\t\"settings\": {\n\t\t\t\t\t\"emulatedFormFactor\": \"desktop\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t]\n}\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fboyney123%2Fgarie-lighthouse","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fboyney123%2Fgarie-lighthouse","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fboyney123%2Fgarie-lighthouse/lists"}