TestingOpsDocumentation

Docker installation

Install TestingOps On-Premise on a Linux server with Docker Compose

1. Prerequisites

2. Download the installation kit

mkdir testingops && cd testingops
wget https://downloads.testingops.ai/testingops-configs.zip
unzip testingops-configs.zip && cd testingops

The kit contains:

File Purpose
install.sh One-command installation
.env Installation settings: version, registry, data directory, ports, bundled database
env.list Application settings: public URL, model keys, execution engine, SMTP, storage
docker-compose.yml Services: db (PostgreSQL + pgvector), migrate, app, caddy
caddy/Caddyfile HTTP front end; HTTPS is configured here (HTTPS)
license/ Put license.txt here
upgrade.sh, backup.sh, restore.sh Day-2 operations

3. Edit env.list

nano env.list

.env can stay as shipped. Change TESTINGOPS_DATA_DIR (default /data-testingops) if the data should live on another disk, and the ports if 80/443 are taken.

4. Run the installer

./install.sh

The installer checks prerequisites, generates the database password and the session secret, creates the data directory, logs into the registry (asks for the credentials you received), pulls the images, starts the database, runs the migrations, starts the application and waits for the health check. Non-interactive:

TESTINGOPS_REGISTRY_USER=… TESTINGOPS_REGISTRY_PASSWORD=… ./install.sh --no-prompt

5. Activate the license

Open TESTINGOPS_PUBLIC_URL in a browser. An On-Premise installation does not serve anything before a valid license is installed, so the first screen asks for it: paste the license token you received from the TestingOps team (or choose the license.txt file). The token is signed for your company and carries its expiry; an edited or foreign token is refused. Alternatively copy the file to license/license.txt and docker compose restart app.

When the license expires, enterprise features switch off after the grace period but the installation keeps running and your data is never locked. Renewal is a new token pasted on Administration → Enterprise.

6. Create the first user

Create the first account and confirm the claim this instance prompt — that account becomes the instance admin. Then close self-registration so the rest of the team joins by invitation:

sed -i 's/^TESTINGOPS_AUTH_DISABLE_SIGN_UP=.*/TESTINGOPS_AUTH_DISABLE_SIGN_UP=true/' env.list
docker compose up -d

7. First configuration

Useful commands

docker compose ps                     # service state
docker compose logs -f app            # application log
docker compose logs migrate           # migration output
docker compose exec app curl -s http://127.0.0.1:3100/api/health

Everything persistent is under TESTINGOPS_DATA_DIR: postgres/, app/ (uploads, evidence, the secrets master key), caddy/ (certificates). Back it up with ./backup.sh (backup and restore).