> ## Documentation Index
> Fetch the complete documentation index at: https://ishortn.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Environment Variables

> Learn how to configure environment variables for iShortn.

The `.env.local` file contains various environment variables that need to be set before running iShortn. The `.env.example` file is provided as a reference for setting your own environment variables.
To start, copy the content of the `.env.example` file into a new file called `.env.local` and fill in the values for the environment variables below.

## Database

When developing locally, the docker container will automatically create the database for you. You only need to set the `DATABASE_URL` environment variable, which is the same thing as what is in the `.env.example` file.

## Authentication

We use Clerk for authentication. Please follow the instructions below on how to set it up.
There are **6** environment variables that need to be set for authentication to work, but you only need to set **2** of them:

* NEXT\_PUBLIC\_CLERK\_PUBLISHABLE\_KEY
* CLERK\_SECRET\_KEY

### How to get them

1. Log in to your Clerk account at [https://clerk.com/](https://clerk.com/) or create a new account if you don’t have one yet.

2. Once logged in, go to your dashboard at [https://dashboard.clerk.com/](https://dashboard.clerk.com/) and select create a new app if you do not have any application already.

3. On the create new app screen, enter your app name and select Google and or GitHub under the section How will your users sign in?

4. Please note that using other providers will cause issues in the application due to the different payload received from Clerk.

5. After setting up your app, navigate to the “DEVELOPERS” section in the left-hand menu and find “API Keys.”

6. In the “Quick Copy” section, make sure that Next.js is selected, then click the copy icon to obtain the keys. Copy the values for “NEXT\_PUBLIC\_CLERK\_PUBLISHABLE\_KEY” and “CLERK\_SECRET\_KEY.”

7. Paste these values into the `.env.local` file under their respective variables. It should look something like this (real values without censorship):

```bash theme={null}
NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY=pk_test_••••••••••••••••••••••••••••••••••••••••••
CLERK_SECRET_KEY=sk_test_••••••••••••••••••••••••••••••••••••••••••
```
