> For the complete documentation index, see [llms.txt](https://docs.inrupt.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.inrupt.com/ess/2.5/installation/customize-configurations/customization-start-apps/use-custom-start-app.md).

# 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.5/services/service-start.md#ess-start-application). [ESS’ WebID service](/ess/2.5/services/service-webid.md#webid-profile-document-endpoints) and [ESS’ Pod provision service](/ess/2.5/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.5/services/service-start.md#quarkus_oidc_client_id) configuration for the Start service and
* [**`INRUPT_START_CLIENT_ID`**](/ess/2.5/services/service-webid.md#inrupt_start_client_id) and [**`INRUPT_WEBID_ALLOWED_CLIENT_IDS`**](/ess/2.5/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.5/services/service-start.md#quarkus_oidc_client_id)
* For the WebID service:
  * [**`INRUPT_START_CLIENT_ID`**](/ess/2.5/services/service-webid.md#inrupt_start_client_id)
  * [**`INRUPT_WEBID_ALLOWED_CLIENT_IDS`**](/ess/2.5/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.5/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 %}

<pre class="language-yaml"><code class="lang-yaml"># kustomization.yaml in your ESS installation directory

# ...  Preceding content omitted for brevity 
# ...

patches:
<strong>  - path: start-app.yaml
</strong><strong>  - path: webid-service-start-app-conf.yaml
</strong></code></pre>

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


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
