Configuration
A self-hosted TestVibe is configured entirely from the environment — there is no configuration file to edit. You set values in the bundle's .env file (or inject them as container environment variables), and the compose stack wires them into the right services.
The Configuration Model
- Environment only. Everything the app needs comes from environment variables. The
.envtemplate documents the required values and the common optional ones. - Secret files. Any secret can instead be provided as a file by setting
{NAME}_FILEto a mounted path (Docker or Kubernetes secrets). The file's contents are used — handy when you don't want secrets in.env. - Disabled-by-default optionals. Any optional integration you leave unset is simply switched off; the app still runs.
Required Values
These are the values you must set before the stack will start:
| Value | Purpose |
|---|---|
| Database password | The PostgreSQL password, shared by the database, the schema job, and the app. |
| Object-storage signing key | Signs the short-lived read/write URLs the app and runner use for artifacts. |
| Object-storage admin key | Authenticates the app's server-to-server calls to the object store. |
| Runner key | Shared secret so only your app can dispatch test runs to the runner. |
| Public base URL | The URL users reach the app at — also used for OAuth callbacks and webhooks. |
The database, object-storage, and runner wiring (which provider, internal URLs) is already set by the compose file. You only supply the secrets and your public URL.
Optional Integrations
Set these only if you want the feature. Unset means the feature is off and the app still runs.
| Area | What it enables |
|---|---|
| GitHub / Google sign-in | Social sign-in. Without it, accounts are local email/password. |
| AI providers | Test generation and vision compare. Hosted Claude/OpenAI keys, or a local model — see AI models. |
| Verification and password-reset emails. Without it, those links are written to the app's logs instead of sent. | |
| Source repositories | Connecting GitHub/GitLab repos as a project's source code. |
Billing Is Off On-Prem
The cloud SaaS meters usage (session-seconds and AI tokens) and bills via Stripe. On a self-hosted instance, credit gating and token metering are disabled — there are no credits to buy and nothing is metered. Your only cost controls are your own AI provider's usage and the infrastructure you run.