Run Better Search Lab in about five minutes.
Docker and curl are the only requirements. One command creates a folder, generates a secret, starts Postgres, the app, and the worker, and prints the address.
curl -fsSL https://gitlab.com/betterbrainlab/better-search-lab/-/raw/main/install.sh | sh- Run the command
It creates a
better-search-labfolder, generates a secret, and starts Postgres, the app, and the worker. - Open localhost:3000
First run redirects to
/setup: create your admin account, connect DataForSEO (a $5 balance is plenty), profile your site, and pick competitors. - Get the first picture
Active time about 5 minutes; about $0.37 of DataForSEO spend for a 150-keyword site. The weekly refresh runs on its own.
Look before you connect anything.
Demo mode runs a read-only copy with two synthetic sites and ninety days of history. No keys required.
curl -fsSL https://gitlab.com/betterbrainlab/better-search-lab/-/raw/main/install.sh | sh -s -- --demoOr skip the install
The hosted demo is the same build, already running, with the same synthetic sites.
Try the live demoOther ways to run it.
Same app, same worker. Pick the host you already have.
From source
Clone the repo, cp .env.example .env, set AUTH_SECRET, then run:
docker compose up -d --buildRailway
The repo ships railway.json for the web service and railway.worker.json for the worker.
Bare metal
Node 22, pnpm, Postgres 16. The worker runs in its own process.
pnpm install && pnpm db:migrate && pnpm build && pnpm startpnpm workerRequired configuration
Only DATABASE_URL and AUTH_SECRET are required. Every integration is configured in the app; each can also be set by environment variable, and the environment wins.
Keeping it updated
Pull the latest images and restart, or opt in to hands-off updates with Watchtower. The app also notices when a newer release is available.
docker compose pull && docker compose up -dWhat it costs to run.
You pay DataForSEO directly, pay-as-you-go. No credits, no markup. The in-app Usage page shows spend by day and endpoint.
| What | Cost |
|---|---|
| Rank check | $0.002 per keyword |
| Keyword & competitor research | ~$0.012 per call |
| Backlinks refresh | ~$0.06 |
| First build of a 150-keyword site | ~$0.37 |
| Weekly refresh of that site | ~$0.34 |
Look first, or run it now.
Free, open source, and yours to keep.