Install
TestVibe self-hosted is delivered as a versioned release bundle: a docker-compose stack plus an .env template. Bringing it up is a short, repeatable flow.
Prerequisites
| Requirement | Detail |
|---|---|
| Docker | Docker Engine with Compose v2. |
| Image access | The container images are private. You authenticate to the registry with a token TestVibe provides before pulling. |
| An AI provider | Test generation needs either a hosted AI key or a local model. The rest of the app runs without one. See AI models. |
| A license | Enforcement is on. You can boot first and activate during the grace window — see Licensing. |
| Network reach | The stack must be able to reach the site under test from inside your network. |
Quick Start
- Get the bundle and authenticate to the image registry with the token TestVibe gave you.
- Copy the template to
.envand fill in the required values (see Configuration). - Start the stack:
The order is enforced automatically: database → schema job → object storage → app.docker compose up -d
- Check it came up:
The app and object storage should reportdocker compose ps
healthy, and the schema job should showExited (0). - Open the app at the public URL you configured (the default is
http://localhost:3000).
Generate strong, unique secrets for every key value (a database password and a few signing keys). Treat them like production credentials — don't reuse the template defaults.
First Sign-In And Licensing
On first boot the instance prints an install id to the web container's logs and starts a grace window. Send that id and your organisation name to TestVibe to receive a license, then install it. Until then the app is fully usable; after the grace window lapses without a license it goes read-only. Full flow in Licensing.
If you didn't configure GitHub or Google sign-in, the app falls back to local email/password accounts.
Upgrades
To move to a new release:
- Pull the new bundle and updated image tags.
- Run
docker compose up -dagain.
The schema job re-runs and applies only the new changes (it's idempotent), then the app restarts on the new version. Your data in the named volumes is untouched.
Data, Backup, And Teardown
- Persistence — the database and object storage live in named Docker volumes that survive restarts and upgrades.
- Backup — back up those volumes (and your
.env) on your normal schedule. They hold everything: data and the instance's license/grace state. - Teardown —
docker compose downstops the stack but keeps the volumes. Removing the volumes deletes all data — do it deliberately.