bautaDocs

Environment Variables

The environment variables that bauta, its browser, its installer, its packages and its Docker image read.

These are the environment variables that bauta and its browser, installer, packages and Docker image read, grouped by what reads them.

bauta and the gateway

variablewhat it doesdefault
BAUTA_HOMEHolds personas/, license and fonts/.~/.bauta
BAUTA_CHROMEThe browser.chrome beside bauta
BAUTA_SERVEROur server, for activation, sign-in, bauta status and license renewal.https://api.bauta.dev
BAUTA_LICENSE_KEYA license key that wins over the key kept on this machine. Set it in Docker and CI.unset
BAUTA_IP_ECHOThe IP echo bauta serve asks through a persona's proxy, to place where the proxy exits when the persona states no timezone or locale.https://api.ipify.org

While BAUTA_LICENSE_KEY is set, it still wins over the key bauta login keeps, and bauta logout refuses until you unset it.

On Linux, bauta serve --hidden opens its windows on a virtual display, whatever DISPLAY says.

The browser, when you launch it yourself

variablewhat it does
BAUTA_LICENSEThe license file the browser checks at launch, such as ~/.bauta/license, which bauta setup writes.
BAUTA_PLUGIN_CONFIGThe persona file the browser loads at launch, by its absolute path.
BAUTA_ROTATEA built-in persona the browser loads, by name: win-intel, win-nvidia, mac-arm, linux-intel, linux-nvidia or linux-amd.
FONTCONFIG_FILEOn Linux, the font environment that pairs with the persona, such as personas/fonts/win.conf for a Windows persona.
TZThe browser's timezone.
LANGUAGE, LANGThe browser's locale, such as en_US and en_US.UTF-8.
CHROME_DEVEL_SANDBOXA SUID sandbox helper, for the sandbox on Ubuntu 24.04. Stock Chrome's /opt/google/chrome/chrome-sandbox works.
BAUTA_LICENSE=~/.bauta/license \
BAUTA_PLUGIN_CONFIG=$PWD/personas/win-intel.json \
FONTCONFIG_FILE=$PWD/personas/fonts/win.conf \
  /path/to/bauta/chrome --user-data-dir="$(mktemp -d)" https://example.com

The browser checks the license and reads the persona once, at launch.

Timezone and locale come from V8 and ICU, outside the binding layer. The gateway sets them from a persona's timezone and locale; when you launch the browser yourself, set TZ, LANGUAGE and LANG.

On Ubuntu 24.04, AppArmor stops a Chrome it does not know from using unprivileged user namespaces. Point CHROME_DEVEL_SANDBOX at a SUID sandbox helper, or launch with --no-sandbox. A persona applies either way.

The Unix installer

install.sh, the installer for Linux and macOS, reads these:

variablewhat it does
BAUTA_HOMEInstall under here instead of ~/.bauta. The binary goes in BAUTA_HOME/bin.
BAUTA_VERSIONA specific release, as vX.Y.Z, instead of the latest.
BAUTA_RELEASE_BASEA URL that replaces the whole release URL prefix: a directory of assets (file:// in CI).
BAUTA_REQUIRE_SIGNATURE1: refuse to install unless the signature was actually checked, which needs OpenSSL 3.
BAUTA_NO_MODIFY_PATH1: do not touch any shell rc file.
BAUTA_NO_PROMPT, CINever prompt: run bauta setup --non-interactive.
BAUTA_INSTALL_LIBSet when sourcing the script, as BAUTA_INSTALL_LIB=1 . ./install.sh: it then defines its download-and-verify functions without installing anything.
curl -fsSL https://bauta.dev/install.sh | BAUTA_VERSION=vX.Y.Z bash

On a stock Mac without OpenSSL 3, the installer prints one line saying the signature was not checked and why, and the checksums still come over HTTPS. BAUTA_REQUIRE_SIGNATURE=1 refuses that case.

The Python and Node.js packages

variablewhat it does
BAUTA_BINA bauta you already have, used instead of the one the first launch() downloads into ~/.bauta/bin.
BAUTA_GATEWAYA gateway that runs elsewhere, such as a container's, whose personas you make there. The same as the gateway option, such as http://127.0.0.1:9222.
BAUTA_NO_PROMPT, CINever prompt: the first launch() activates the free plan without asking.

The installer and the packages never prompt when stdin or stdout is not a terminal, CI is set, /.dockerenv exists or BAUTA_NO_PROMPT=1. They then activate the free plan, one session, without asking.

The Docker image

variablewhat it does
BAUTA_LICENSE_KEYOptional: your license key. Without it, the container runs the free plan, one session.
BAUTA_PERSONASThe personas to make at start, if they are missing, each name=<built-in or file>, such as shop=win-intel.
docker run -d --name bauta --init --cap-add=SYS_ADMIN -p 127.0.0.1:9222:9222 -v bauta:/data \
  -e BAUTA_PERSONAS="shop=win-intel" ghcr.io/bautabrowser/bauta

Without BAUTA_LICENSE_KEY, put a license file at /data/license. In CI or with many containers, set a key, or keep /data on a volume so the container keeps its install id: the server limits new free activations per IP.

Next

On this page