# Setting up GitHub

Copy as Markdown[View as Markdown](/docs/development/authentication/providers/setting-up-github.md)

***

**Added in** `eventcatalog@2.43.0`

i

This feature is available on the

<!-- -->

[Scale](/pricing.md)

<!-- -->

[ plan](/pricing.md).

info

This guide takes your through setting up a protected sign-in screen for your docs. Before going through this guide, make sure you’ve first gone through [Enabling authentication](/docs/development/authentication/enabling-authentication.md).

To setup your EventCatalog site with visitor authentication using [GitHub](https://github.com/), the process looks as follows:

1. Create a new GitHub OAuth app
2. Configure the OAuth app in EventCatalog
3. Test the authentication

## Create a new GitHub OAuth app[​](#create-a-new-github-oauth-app "Direct link to Create a new GitHub OAuth app")

First, you will need to create a new GitHub OAuth app.

1. Go to [GitHub Developer Settings](https://github.com/settings/developers)

2. Click on "New OAuth App"

3. Fill in the details for your app

   <!-- -->

   * **Application name:** `EventCatalog`
   * **Homepage URL:** `{YOUR_EVENTCATALOG_SITE_URL}`
     * Local development: `http://localhost:3000`
   * **Authorization callback URL:** `{YOUR_EVENTCATALOG_SITE_URL}/api/auth/callback/github`
     * Local development: `http://localhost:3000/api/auth/callback/github`

4. Click on "Register application"

5. Copy the Client ID and Client Secret

## Configure the OAuth app in EventCatalog[​](#configure-the-oauth-app-in-eventcatalog "Direct link to Configure the OAuth app in EventCatalog")

Add your GitHub Client ID and Client Secret to your `.env` file.

.env

```
AUTH_GITHUB_CLIENT_ID={YOUR_GITHUB_CLIENT_ID}
AUTH_GITHUB_CLIENT_SECRET={YOUR_GITHUB_CLIENT_SECRET}
```

In your `eventcatalog.auth.js` file, add the following:

eventcatalog.auth.js

```
export default {
  providers: {
    github: {
      clientId: process.env.AUTH_GITHUB_CLIENT_ID,
      clientSecret: process.env.AUTH_GITHUB_CLIENT_SECRET,
    },
  },
};
```

## Test the authentication[​](#test-the-authentication "Direct link to Test the authentication")

Restart your EventCatalog server and test the authentication.

```
npm run dev
```

All pages should now be protected and require a GitHub account to access.

![GitHub authentication](/assets/images/github-auth-00b5c9b360b67325573c070bcb83018b.png)

## Found an issue?[​](#found-an-issue "Direct link to Found an issue?")

Remember to setup the prerequisites for this guide:

* [Enabling authentication](/docs/development/authentication/enabling-authentication.md)

If you still have problems, please [let us know](https://github.com/eventcatalog/eventcatalog/issues/new/choose).
