> For the complete documentation index, see [llms.txt](https://docs.testvibe.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.testvibe.com/workspace/configure-site-url-and-repository.md).

# Configure Environments and App Repository

Two settings panels define what a project tests and where its code lives: **Settings → Environments** for the test site URLs, and **Settings → App Repository** for the optional source code connection.

## Environments

A project can have multiple test site URLs — for example staging, QA, and preview — with one marked as the default. Runs, recordings, and automations pick which site URL to use; the default is used when nothing else is chosen.

| Good choice        | Why                                               |
| ------------------ | ------------------------------------------------- |
| Shared staging URL | Stable and reachable by cloud test sessions.      |
| QA environment URL | Usually safe for repeat test data and automation. |
| Public preview URL | Useful for short-lived validation.                |

The cloud test session must be able to reach the URL. For private, VPN-only, or internal sites, connect a tunnel device — the URL stays unchanged and nothing inbound is opened. See [Tunnel devices](/account-settings/tunnel-devices.md).

Avoid `localhost` — a cloud session cannot reach your machine without a tunnel device running on it.

## Environment Availability

Wherever you pick an environment — the run composer, the Load Configure form, the Generate and Record dialogs, and **Settings → Environments** — each entry shows a live availability chip so you can see whether the cloud can reach that site before you start:

| Chip                      | Meaning                                                                 |
| ------------------------- | ----------------------------------------------------------------------- |
| Available                 | The cloud can reach this site directly.                                 |
| Via tunnel · *device*     | Reachable through the named tunnel device inside your network.          |
| Tunnel offline · *device* | The site needs its tunnel device, but that device is offline right now. |
| Needs a tunnel            | A private, VPN-only, or `localhost` site with no tunnel configured.     |

For a tunnel-backed environment the chip names its device and opens a per-device dropdown listing each device's online state, when it was last seen, whether it's scoped to this site's URL, and which one this project would actually use, plus a **Manage tunnels** link. On **Settings → Environments** a quiet re-check button next to the list refreshes the current state on demand.

The chips are **informational only** — they never block a row, so you can pick an offline-tunnel environment intending to bring the tunnel up first. Dispatch still enforces reachability: if you start a run, generation, or load test against a site the cloud can't reach, TestVibe prompts you before spending credits with **Connect a tunnel** or **proceed anyway**. See [Tunnel devices](/account-settings/tunnel-devices.md).

## App Repository

**Settings → App Repository** holds the project's optional, read-only source code connection (GitHub, GitLab, or Azure DevOps):

| Field             | What it does                                                     |
| ----------------- | ---------------------------------------------------------------- |
| Source repository | The assistant reads the application code for context; read-only. |

Two-way mirroring of your generated test files to a Git repository — features, specs, and Playwright configs, edits flowing both ways — is a separate panel, **Settings → Test Files Sync**.

Both are optional — project content always lives in TestVibe's cloud.

## After Saving Settings

Run a small test to confirm the session opens the right site URL and results stream back into the app. If a private site cannot be reached, check the tunnel device first.

## Related Help

* [Choose a source repository (optional)](/workspace/choose-repository.md)
* [App Repository & Test Files Sync settings](/account-settings/repository-settings.md)
* [Tunnel devices](/account-settings/tunnel-devices.md)
* [Automations](/run-tests/automations.md)


---

# 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.testvibe.com/workspace/configure-site-url-and-repository.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.
