# Use a Custom Start Application

ESS includes a default start application that allows users to sign up or login with the Identity Provider. You can replace the default start application with a [custom start application](/ess/2.3/services/service-start.md#ess-start-application). [ESS’ WebID service](/ess/2.3/services/service-webid.md#webid-profile-document-endpoints) and [ESS’ Pod provision service](/ess/2.3/services/service-pod-management/service-pod-provision.md#create-a-new-pod) provide various endpoints that can be used by start applications to create a WebID and a Pod for a user.

To use a custom start application, update the following configuration with your application’s [Solid-OIDC Client ID](/security/authentication.md#client-identifier-client-id) (e.g., **`https://myStart.example.com/appid/id`** ):

* [**`QUARKUS_OIDC_CLIENT_ID`**](/ess/2.3/services/service-start.md#quarkus_oidc_client_id) configuration for the Start service and
* [**`INRUPT_START_CLIENT_ID`**](/ess/2.3/services/service-webid.md#inrupt_start_client_id) and [**`INRUPT_WEBID_ALLOWED_CLIENT_IDS`**](/ess/2.3/services/service-webid.md#inrupt_webid_allowed_client_ids) configuration for the WebID service.

### Example Customization

The following example assumes a custom start application with the [Solid-OIDC Client ID](/security/authentication.md#client-identifier-client-id) value **`https://myStart.example.com/appid/id`** . To use this application, instead of the default start app, update the following configuration options:

* For the Start service:
  * [**`QUARKUS_OIDC_CLIENT_ID`**](/ess/2.3/services/service-start.md#quarkus_oidc_client_id)
* For the WebID service:
  * [**`INRUPT_START_CLIENT_ID`**](/ess/2.3/services/service-webid.md#inrupt_start_client_id)
  * [**`INRUPT_WEBID_ALLOWED_CLIENT_IDS`**](/ess/2.3/services/service-webid.md#inrupt_webid_allowed_client_ids)

1. Go to your ESS installation directory:

   ```sh
   cd ${HOME}/ess
   ```
2. Create a **`start-app.yaml`** file with the following content:

   ```yaml
   apiVersion: apps/v1
   kind: Deployment
   metadata:
     name: ess-start
   spec:
     template:
       spec:
         containers:
         - env:
           - name: QUARKUS_OIDC_CLIENT_ID
             value: https://mystart.example.com/appid/id
           name: ess-start
   ```
3. Create a **`webid-service-start-app-conf.yaml`** file with the following content:

   ```yaml
   apiVersion: apps/v1
   kind: Deployment
   metadata:
     name: ess-webid
   spec:
     template:
       spec:
         containers:
         - env:
           - name: INRUPT_START_CLIENT_ID
             value: https://mystart.example.com/appid/id
           - name: INRUPT_WEBID_ALLOWED_CLIENT_IDS
             value: $(INRUPT_WEBID_CLIENT_ID),$(INRUPT_START_CLIENT_ID)
           name: ess-webid
   ```
4. Modify the **`kustomization.yaml`** (i.e., step 3 of the [Applying Your Customizations](/ess/2.3/installation/customize-configurations.md) procedure) to use **`start-app.yaml`** and **`webid-service-start-app-conf.yaml`**.\
   \
   Specifically, add the highlighted content to the **`kustomization.yaml`** file to the **`patches`** section:\\

   {% hint style="info" %} **Tip** If the **`patches`** key does not exist in **`kustomization.yaml`** , add the **`patches`** key as well. {% endhint %}\*

   {% code overflow="wrap" %}

   ```yaml
   # kustomization.yaml in your ESS installation directory
   ```

   {% endcode %}`... Preceding content omitted for brevity...`

` patches:`` `` `**`- path: start-app.yaml - path: webid-service-start-app-conf.yaml`**

5. Continue with the rest of the [Applying Your Customizations](/ess/2.3/installation/customize-configurations.md) procedure.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.inrupt.com/ess/2.3/installation/customize-configurations/customization-start-apps/use-custom-start-app.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
