Skip to content

Beta Testing

The beta channel is an opt-in preview of the current next branch. It is for operators who can tolerate regressions, retain a rollback path, and report the exact build they tested. Stable installations continue to use :latest unless their image is explicitly changed.

Before you start

  • Back up persistent Companion data and any configuration files you manage.
  • Keep the previous stable image available until the soak test is complete.
  • Do not test first on the only path you have to administer DNS.
  • Review the current Unreleased changelog, with particular attention to upgrade notes and security-sensitive features.
  • Review the public DNS Logs performance overview for the measured database, hostname-enrichment, and browser-request improvements you can compare with your own workload.

Install with Docker Compose

Set this in the .env file next to docker-compose.yml:

COMPANION_IMAGE=ghcr.io/fail-safe/technitium-dns-companion:beta

Then pull, recreate, and confirm health:

docker compose pull
docker compose up -d
docker compose ps

The beta and next tags are rolling aliases. For a longer test or a reliable reproduction, replace :beta with the immutable sha-<commit> tag associated with the build.

Record the exact build

The About dialog labels the build as BETA, shows the application version and short source revision, and reports the latest stable release separately. The complete revision and build channel are also stored in the image metadata:

docker image inspect \
  ghcr.io/fail-safe/technitium-dns-companion:beta \
  --format 'revision={{ index .Config.Labels "org.opencontainers.image.revision" }} channel={{ index .Config.Labels "io.github.fail-safe.technitium-dns-companion.build-channel" }}'

Include that revision, the image digest, your Technitium DNS version, browser, deployment shape, and concise reproduction steps in beta reports. Redact API tokens, proxy secrets, cookies, private hostnames, and private DNS data.

Suggested soak checks

  • Sign in and out, then confirm the expected Technitium identity and RBAC.
  • Check node overview, query logs, zones, filtering, DHCP, and any scheduled automation you normally use.
  • In stored DNS Logs, exercise page one, a deep page, deduplication, and the filters you use most often. Performance reports are most useful when they include approximate row count, retention, storage type, page size, and deduplication mode without including private query data.
  • Exercise the deployment behind its real TLS reverse proxy and from a mobile viewport if those are part of your environment.
  • Watch container health, restarts, memory, and logs over at least 24 hours.
  • If testing trusted-header SSO, keep a separately verified break-glass path and follow the dedicated SSO guide.

Roll back

Change the Compose override back to stable:

COMPANION_IMAGE=ghcr.io/fail-safe/technitium-dns-companion:latest
docker compose pull
docker compose up -d

If stable moved during the test, pin the previous known-good sha-<commit> tag instead. Restore persistent data only when the beta changed durable state and the relevant feature documentation calls for it; a normal image-only rollback should not replace data unnecessarily.