Skip to content

Releases: optiq-io/qbrix

Release list

v0.1.0

Choose a tag to compare

@qbrix-pypi-release qbrix-pypi-release released this 27 Sep 00:21
84f9dea

Self-hosted adaptive experiments

qbrix 0.1.0 is the first public release: the whole product, under Apache-2.0,
packaged to run on your own infrastructure.

qbrix runs multi-armed bandit experiments. You give it the variants, it picks one
per request, you report the outcome, and it moves traffic toward the variants that
perform while the experiment is still running. Use it where an A/B test would make
you wait for a winner: headlines, recommendations, pricing, onboarding flows,
ranking.

Run it

Docker Compose. You need Docker with Compose.

git clone --branch v0.1.0 https://github.com/optiq-io/qbrix.git && cd qbrix
bin/selfhost-init            # writes .env with generated secrets; add --analytics for insights
docker compose up -d

Open http://localhost:8000 and register. The first account creates the workspace
and becomes its admin; after that, people join by invite. .env pulls latest by
default; set QBRIX_VERSION=0.1.0 in it to stay on this release.

Kubernetes.

helm install qbrix oci://ghcr.io/optiq-io/charts/qbrix --version 0.1.0 \
  -f https://raw.githubusercontent.com/optiq-io/qbrix/v0.1.0/helm/qbrix/examples/values-selfhost.yaml

helm/README.md
covers routing, secrets, external databases, analytics and upgrades.

What's in it

Pick a variant, report what happened

  • Selection and learning on separate paths. Selection is a stateless service
    that scales horizontally; learning consumes feedback from a stream and updates
    the model in the background, so training never slows a decision down.
  • 19 policies. Thompson sampling (Beta, Gaussian, Dirichlet, discounted), UCB1-Tuned,
    KL-UCB and KL-UCB+, MOSS, epsilon-greedy, the adversarial EXP3, EXP3-IX and FPL, the
    contextual LinUCB, LinTS, GLM-UCB and logistic TS, a random baseline, and a
    meta-bandit that picks among learners.
  • Contextual experiments. Declare a context schema of named categorical,
    numeric and boolean properties, and qbrix encodes them server-side.
  • Feature gates. Percentage rollouts and targeting rules in front of any
    experiment.
  • A console for pools, experiments, gates, API keys and your team, with admin,
    member and viewer roles.
  • Analytics, optional. Per-experiment insights and a live event log, backed by
    ClickHouse. Turn it on with bin/selfhost-init --analytics, or
    global.analytics.enabled in the chart.
  • REST and gRPC APIs, with SDKs for
    Python (pip install "qbrix[http]")
    and TypeScript.
  • Self-host defaults. No usage limits, seat caps or license keys. Signup is
    first-user: the first registration creates the workspace, and everyone after
    joins by invite. Email goes through SMTP when you configure it; without an email
    provider, new accounts are verified automatically.

Images you can verify

Images you can verify

The release publishes five multi-arch (amd64, arm64) images,
ghcr.io/optiq-io/qbrix/{proxy,motor,cortex,trace,console}:0.1.0 (also tagged 0.1
and latest), and the Helm chart oci://ghcr.io/optiq-io/charts/qbrix.

  • Every image carries SLSA build provenance and an SBOM, and is attested to this
    repository. Check one with
    gh attestation verify oci://ghcr.io/optiq-io/qbrix/proxy:0.1.0 -R optiq-io/qbrix.
  • Every pull request builds the images it changes and scans them with Trivy; a
    fixable critical or high finding fails the build. The latest and edge images are
    rescanned weekly.
  • Base images are pinned by digest, the services run as a non-root user, and
    production images carry no dev dependencies.

Editions

This repository is the whole product. The same code also runs qbrix cloud, our
managed service; its billing and plan code lives in the directories listed in
bin/ee-paths.txt,
under the qbrix Enterprise License.
It is off unless PROXY_EE_ENABLED is set, and CI proves on every push that the
product runs with those directories deleted.

Good to know

  • The service images run Python 3.10, which reaches end of life in October 2026.
    Moving to a supported Python is planned for an upcoming release.
  • /api/v1/ee/insight and /api/v1/ee/event are deprecated aliases of
    /api/v1/insight and /api/v1/event, and will be removed in a later release.

Questions and bugs go to GitHub issues;
security reports follow SECURITY.md.
If you'd rather not operate qbrix yourself, write to
info@optiqio.com about managed hosting.

All changes