# Installation

The following section teaches you how to install Lighthouse in your project.

# Install via composer

composer require nuwave/lighthouse

# Publish the default schema

Lighthouse includes a default schema to get you going right away. Publish it using the following artisan command:

php artisan vendor:publish --tag=lighthouse-schema

# Lumen

Register the service provider in your bootstrap/app.php file:

$app->register(\Nuwave\Lighthouse\LighthouseServiceProvider::class);

The many features Lighthouse provides are split across multiple service providers. Since Lumen does not support auto-discovery, you will have to register them individually depending on which features you want to use. Check Lighthouse's composer.json (opens new window), the section extra.laravel.providers contains the default service providers.

# IDE Support

Lighthouse makes heavy use of the SDL and utilizes schema directives. To improve your editing experience, you can generate a definition file with an artisan command:

php artisan lighthouse:ide-helper

This command requires haydenpierce/class-finder. Install it by running:

composer require --dev haydenpierce/class-finder

We recommend the following plugins:

IDE Plugin
PhpStorm https://plugins.jetbrains.com/plugin/8097-js-graphql

# Install GraphQL DevTools

To make use of the amazing tooling around GraphQL, we recommend installing GraphQL Playground (opens new window).

composer require mll-lab/laravel-graphql-playground

After installation, visit /graphql-playground to try it.

You can use any GraphQL client with Lighthouse, make sure to point it to the URL defined in the config. By default, the endpoint lives at /graphql.