# 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](https://docs.inrupt.com/ess/services/service-start#ess-start-application). [ESS’ WebID service](https://docs.inrupt.com/ess/services/service-webid#webid-profile-document-endpoints) and [ESS’ Pod provision service](https://docs.inrupt.com/ess/services/service-pod-management/service-pod-provision#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](https://docs.inrupt.com/security/authentication#client-identifier-client-id) (e.g., **`https://myStart.example.com/appid/id`** ):

* [**`QUARKUS_OIDC_CLIENT_ID`**](https://docs.inrupt.com/ess/services/service-start#quarkus_oidc_client_id) configuration for the Start service and
* [**`INRUPT_START_CLIENT_ID`**](https://docs.inrupt.com/ess/services/service-webid#inrupt_start_client_id) and [**`INRUPT_WEBID_ALLOWED_CLIENT_IDS`**](https://docs.inrupt.com/ess/services/service-webid#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](https://docs.inrupt.com/security/authentication#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`**](https://docs.inrupt.com/ess/services/service-start#quarkus_oidc_client_id)
* For the WebID service:
  * [**`INRUPT_START_CLIENT_ID`**](https://docs.inrupt.com/ess/services/service-webid#inrupt_start_client_id)
  * [**`INRUPT_WEBID_ALLOWED_CLIENT_IDS`**](https://docs.inrupt.com/ess/services/service-webid#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](https://docs.inrupt.com/ess/2.5/installation/customize-configurations) 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](https://docs.inrupt.com/ess/2.5/installation/customize-configurations) procedure.
