Chisle
The coding-agent plugin that bills 52% of a bare model across 20 live tasks. Terse persona + tool-output compressor + context diet.
翻訳待ち
Tesbo combines AI-powered test management software with an intuitive test case management tool to help QA teams plan, execute, automate, & track software testing faster.
翻訳待ち
開発ツールTypeScript · JavaScriptGitHub @QAbleHQオンライン所有者未確認
Have you tried it? One tap is enough. No sign-in needed.
Tesbo Test Manager is an open-source test case management system built for QA teams who want to self-host, manage test cases, organize test cycles, and eventually bring AI into their QA workflow without vendor lock-in.
翻訳待ち
Loading the full README.
Read the full README ↗Tesbo Test Manager is developed by QAble Testlab.
Open-source test case management for QA teams: self-host, organize cases and suites, run test cycles, track results, and optionally connect email, storage, and integrations.
Public repository: https://github.com/QAbleHQ/Tesbo-Test-Manager
Apache License 2.0. See LICENSE.
| Layer | Technology |
|---|---|
| Frontend | Next.js (App Router) + TypeScript + Tailwind |
| Backend | NestJS + TypeScript |
| Database | PostgreSQL with pgvector (vector extension) |
| Cache | Redis |
| Email (optional) | Postmark |
You always need:
.env fileDatabase — pick ONE path:
| Path | When to use | What you set |
|---|---|---|
| A — Database URL | You already have Postgres (Neon, RDS, Cloud SQL, company DB, …) | Put the connection string in DATABASE_URL |
| B — Docker Postgres | You want everything local; no hosted DB | Run a pgvector Postgres container, then point DATABASE_URL at it |
Both paths are valid. The app only cares that DATABASE_URL works and the DB has the vector extension.
Compose does not ship a Postgres service today. You supply the DB via Path A or Path B, then start the app.
docker compose or docker-compose)Check:
git --version
docker --version
docker compose version || docker-compose version
git clone https://github.com/QAbleHQ/Tesbo-Test-Manager.git
cd Tesbo-Test-Manager
git checkout main
.envcp docker.env.example .env
Edit .env. Start with these keys (safe local defaults):
FRONTEND_PORT=1010
BACKEND_PORT=1011
REDIS_PORT=6379
FRONTEND_URL=http://localhost:1010
NEXT_PUBLIC_API_URL=http://localhost:1011
CORS_ALLOWED_ORIGINS=http://localhost:1010,http://127.0.0.1:1010
REDIS_URL=redis://redis:6379
STORAGE_DRIVER=local
You will set DATABASE_URL / DATABASE_USER / DATABASE_PASSWORD in Step 4 (Path A or B).
Do not commit .env. Secrets stay on your machine. The full list of optional variables is in docker.env.example.
Example: browser uses http://192.168.1.50:1010 or a public IP.
Then set all three to that same host (not only localhost):
FRONTEND_URL=http://YOUR_HOST:1010
NEXT_PUBLIC_API_URL=http://YOUR_HOST:1011
CORS_ALLOWED_ORIGINS=http://YOUR_HOST:1010
Then rebuild the frontend (see Step 5).
If you skip this, login shows Failed to fetch.
CREATE EXTENSION IF NOT EXISTS vector;
.env:DATABASE_URL=postgresql://USER:PASSWORD@HOST:PORT/DBNAME?sslmode=require
DATABASE_USER=USER
DATABASE_PASSWORD=PASSWORD
Examples:
DATABASE_URL=postgresql://postgres:[email protected]:5432/tesbohost.docker.internal)Tip: If the DB is on the internet (Neon), the Docker backend can reach it directly. No extra Docker network steps.
Use the official pgvector image (plain postgres image will fail migrations).
B1. Start Postgres
docker network create tesbo-net 2>/dev/null || true
docker rm -f tesbo-db 2>/dev/null || true
docker run -d --name tesbo-db \
--network tesbo-net \
-e POSTGRES_DB=tesbo \
-e POSTGRES_USER=postgres \
-e POSTGRES_PASSWORD=postgres \
-p 5432:5432 \
pgvector/pgvector:pg16
Wait until healthy:
docker exec tesbo-db pg_isready -U postgres
docker exec tesbo-db psql -U postgres -d tesbo -c "CREATE EXTENSION IF NOT EXISTS vector;"
B2. Put this in .env
DATABASE_URL=postgresql://postgres:postgres@tesbo-db:5432/tesbo
DATABASE_USER=postgres
DATABASE_PASSWORD=postgres
Here tesbo-db is the container name (DNS name on the Docker network).
Do not use localhost inside DATABASE_URL for this setup — inside Compose, localhost means the app container itself, not your laptop.
B3. Put Postgres on the same Docker network as the app (important)
Docker Compose creates a project network (often named tesbo-test-manager_default).
The database container must be on that network so the hostname tesbo-db works.
Do this after Step 5 starts Compose the first time (or if migrator fails with connection errors):
# See the exact network name
docker network ls | grep tesbo
# Attach the DB container to the Compose network (use the name you saw above)
docker network connect tesbo-test-manager_default tesbo-db
# Recreate migrator + backend so they connect cleanly
docker compose up -d --force-recreate migrator backend
If the network name is different (for example tesbotestmanager_default), use that name instead.
Then continue with the health checks in Step 5.
From the repo root:
docker compose up --build -d
# or:
docker-compose up --build -d
Helpers:
sh ./scripts/docker-up.sh # macOS / Linux
.\scripts\docker-up.ps1 # Windows PowerShell
First build can take several minutes.
docker compose ps
curl -sS http://localhost:1011/health
# → {"status":"ok"}
curl -sS -o /dev/null -w "%{http_code}\n" http://localhost:1010/login
# → 200
Open: http://localhost:1010
Useful:
This is the beginning of the README. Read the rest at the original. Read the full README ↗