# HuggingFace (/docs/remote/huggingface)

## Create and Configure your Database (Required)

The first thing you need is to create a MongoDB Atlas Database and get your connection string.

Follow the instructions in this document: **[MongoDB Atlas](/docs/configuration/mongodb/mongodb_atlas)**

## Getting Started

**1.** Login or Create an account on **[Hugging Face](https://huggingface.co/)**

**2.** Visit **[https://huggingface.co/spaces/LibreChat/template](https://huggingface.co/spaces/LibreChat/template)** and click on `Duplicate this Space` to copy the LibreChat template into your profile. 

> Note: It is normal for this template to have a runtime error, you will have to configure it using the following guide to make it functional.

  ![image](https://github.com/fuegovic/LibreChat/assets/32828263/fd684254-cbe0-4039-ba4a-7c492b16a453)

**3.** Name your Space and Fill the `Secrets` and `Variables`
 
  >You can also decide here to make it public or private

  ![image](https://github.com/fuegovic/LibreChat/assets/32828263/13a039b9-bb78-4d56-bab1-74eb48171516)

You will need to fill these values:

| Secrets | Values |
| --- | --- |
| MONGO_URI | * use these instruction to get the string: https://librechat.ai/docs/configuration/mongodb/mongodb_atlas |
| OPENAI_API_KEY | `user_provided` | 
| BINGAI_TOKEN | `user_provided` | 
| CHATGPT_TOKEN | `user_provided` |
| ANTHROPIC_API_KEY | `user_provided` |
| GOOGLE_KEY | `user_provided` |
| CREDS_KEY | * see below |
| CREDS_IV | * see below |
| JWT_SECRET | * see below |
| JWT_REFRESH_SECRET | * see below |

> ⬆️ **Leave the value field blank for any endpoints that you wish to disable.** 

> ⚠️ setting the API keys and token to `user_provided` allows you to provide them safely from the webUI

> * For `CREDS_KEY`, `CREDS_IV` and `JWT_SECRET` use this tool: **[Credentials Generator](/toolkit/creds_generator)**
> * Run the tool a second time and use the new `JWT_SECRET` value for the `JWT_REFRESH_SECRET`

| Variables | Values |
| --- | --- |
| APP_TITLE | LibreChat |
| ALLOW_REGISTRATION | true |

## Deployment

**1.** When you're done filling the `secrets` and `variables`, click `Duplicate Space` in the bottom of that window

  ![image](https://github.com/fuegovic/LibreChat/assets/32828263/55d596a3-2be9-4e14-ac0d-0b493d463b1b)


**2.** The project will now build, this will take a couple of minutes

  ![image](https://github.com/fuegovic/LibreChat/assets/32828263/f9fd10e4-ae50-4b5f-a9b5-0077d9e4eaf6)


**3.** When ready, `Building` will change to `Running` 

  ![image](https://github.com/fuegovic/LibreChat/assets/32828263/91442e84-9c9e-4398-9011-76c479b6f272)

  And you will be able to access LibreChat!

  ![image](https://github.com/fuegovic/LibreChat/assets/32828263/cd5950d4-ecce-4f13-bbbf-b9109e462e10)

## Update
  To update LibreChat, simply select `Factory Reboot` from the ⚙️Settings menu

  ![image](https://github.com/fuegovic/LibreChat/assets/32828263/66f20129-0ffd-44f5-b91c-fcce1932112f)


## Conclusion
  You can now access it with from the current URL. If you want to access it without the Hugging Face overlay, you can modify this URL template with your info:

  `https://username-projectname.hf.space/` 
  
  e.g. `https://cooluser-librechat.hf.space/`

**🎉 Congratulation, you've successfully deployed LibreChat on Hugging Face! 🤗**


## Meilisearch Setup (Optional)

To enable the search functionality in LibreChat, you'll need to deploy and configure a Meilisearch instance.  Here's how:

**1. Duplicate the Meilisearch Space:**

Visit this link: [https://huggingface.co/spaces/LibreChat/meilisearch](https://huggingface.co/spaces/LibreChat/meilisearch) and click "Duplicate this Space".

**2. Configure the Meilisearch Space:**

   *   **Visibility:** Set the visibility to "public".

   *   **MEILI_MASTER_KEY:** Generate a secure 16-character master key. You can use a tool like [https://randomkeygen.com/](https://randomkeygen.com/) to generate a random key.  Set this key as the value for the `MEILI_MASTER_KEY` environment variable in the Meilisearch space.  *Important: Keep this key secure!*

   *   **MEILI_ENV:** Set the `MEILI_ENV` environment variable to `production`.

**3. Duplicate the Space:**

Click the "Duplicate Space" button.

**4. Configure LibreChat to use Meilisearch:**

   *   **Edit the Dockerfile:** Go to your LibreChat space (the one you duplicated from the main LibreChat template). Navigate to "Files" -> "Dockerfile" and click "Edit".

   *   **Uncomment and Modify Lines:**  Uncomment/edit the following lines in the Dockerfile.  These lines will contain `ENV SEARCH` and `ENV MEILI_*`.  Make sure to replace `<YOUR_MEILISEARCH_SPACE_URL>` with the actual URL of your Meilisearch deployment on Hugging Face Spaces. It should look something like https://username-meilisearch.hf.space/.  *Update the username to match your username!*

       ```dockerfile
       ENV SEARCH=true
       ENV MEILI_NO_ANALYTICS=true
       ENV MEILI_HOST=<YOUR_MEILISEARCH_SPACE_URL>
       ```

   *   **Commit Changes:** Commit your changes to the `main` branch.

**5. Add the `MEILI_MASTER_KEY` Secret to LibreChat:**

   *   Go to your LibreChat space's settings (the LibreChat deployment, not the Meilisearch one).

   *   Click "New secret".

   *   **Name:** Enter `MEILI_MASTER_KEY`.

   *   **Value:**  Enter the *same* master key you used when setting up the Meilisearch space.

**6. Verify the Setup:**

   After LibreChat rebuilds and starts running, you should see a search option in the top left of the LibreChat interface.  If you don't see it, double-check that you've followed all the steps correctly.
