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

# Self Host on Render

> Self-host Evidence on Render as a Docker web service.

Render builds a `Dockerfile` from a connected repo.

<Steps>
  <Step title="Add a Dockerfile">
    ```docker filename="Dockerfile" theme={null}
    FROM evidencedev/serve:latest
    COPY --chown=evidence:evidence . /project
    ```
  </Step>

  <Step title="Modify and commit connection.yaml">
    The project must use a [direct connector](/cli/connections), with secrets replaced by `${VAR}` environment references:

    ```yaml filename="connection.yaml" theme={null}
    type: snowflake
    account: xy12345.us-east-1
    user: ${SNOWFLAKE_USER}
    private_key: ${SNOWFLAKE_PRIVATE_KEY}
    warehouse: COMPUTE_WH
    database: ANALYTICS
    ```

    `connection.yaml` is gitignored by default. Once its secrets are `${VAR}` placeholders, remove it from `.gitignore` and commit it — the container reads it at runtime.
  </Step>

  <Step title="Create a Web Service">
    In the Render dashboard: **New → Web Service**, then connect the project's GitHub repo.

    Choose **Web Service**. Render detects the `Dockerfile` automatically and selects the Docker runtime; no build or start commands are needed.
  </Step>

  <Step title="Set environment variables">
    Add under **Environment**:

    * `EVIDENCE_BASIC_USER` — HTTP Basic Auth username
    * `EVIDENCE_BASIC_PASSWORD` — HTTP Basic Auth password
    * every `${VAR}` referenced in `connection.yaml`, here `SNOWFLAKE_USER` and `SNOWFLAKE_PRIVATE_KEY`

    Click **Create Web Service** to deploy. Pushes to the connected branch redeploy automatically.
  </Step>
</Steps>

## Notes

* The free tier pauses the service when idle. Cold starts will cause longer load times when restarting.
