Files
backstage/plugins/lighthouse-backend/README.md
T
Jonathan Roebuck 6951966004 Update plugins/lighthouse-backend/README.md
tidy up example code in README

Co-authored-by: Patrik Oldsberg <poldsberg@gmail.com>
Signed-off-by: Jonathan Roebuck <jroebuck@spotify.com>
2023-07-12 09:30:48 +01:00

2.2 KiB

Lighthouse Backend

Lighthouse Backend allows you to run scheduled lighthouse Tests for each Website with the annotation lighthouse.com/website-url.

Setup

  1. Install the plugin using:
# From your Backstage root directory
yarn add --cwd packages/backend @backstage/plugin-lighthouse-backend
  1. Create a lighthouse.ts file inside packages/backend/src/plugins/:
import { createScheduler } from '@backstage/plugin-lighthouse-backend';
import { PluginEnvironment } from '../types';
import { CatalogClient } from '@backstage/catalog-client';

export default async function createPlugin(env: PluginEnvironment) {
  const { logger, scheduler, config } = env;

  const catalogClient = new CatalogClient({
    discoveryApi: env.discovery,
  });

  await createScheduler({ logger, scheduler, config, catalogClient });
}
  1. Modify your packages/backend/src/index.ts to include:
 ...

 import { Config } from '@backstage/config';
 import app from './plugins/app';
+import lighthouse from './plugins/lighthouse';
 import scaffolder from './plugins/scaffolder';

 ...

 async function main() {

   ...

   const authEnv = useHotMemoize(module, () => createEnv('auth'));
+  const lighthouseEnv = useHotMemoize(module, () => createEnv('lighthouse'));
   const proxyEnv = useHotMemoize(module, () => createEnv('proxy'));

   ...

   const apiRouter = Router();
   apiRouter.use('/catalog', await catalog(catalogEnv));
   apiRouter.use('/scaffolder', await scaffolder(scaffolderEnv));

+  await lighthouse(lighthouseEnv)

New Backend System

The Lighthouse backend plugin has support for the new backend system, here's how you can set that up:

In your packages/backend/src/index.ts make the following changes:

  import { createBackend } from '@backstage/backend-defaults';
+ import { lighthousePlugin } from '@backstage/plugin-lighthouse-backend';
  const backend = createBackend();
  // ... other feature additions
+ backend.add(lighthousePlugin());
  backend.start();

Configuration

You can define how often and when the scheduler should run the audits:

lighthouse:
  schedule:
    days: 1