Files
computer-playbook/docs/contributing/environment/variables.md
T
kevinveenbirkenbachandClaude Sonnet 4.6 9d863f1ef4 feat(inventory): add SERVICES_DISABLED env var support and environment test flow
- Add services_disabler.py: parse SERVICES_DISABLED, disable services in host_vars,
  remove provider roles from inventory
- Wire apply_services_disabled_from_env into cli/create/inventory/cli.py after deploy
- Add unit tests for all services_disabler functions
- Update hardware.md and variables.md with SERVICES_DISABLED documentation
- Update environment.sh: deploy dashboard with SERVICES_DISABLED=matomo first,
  assert dashboard reachable + matomo not reachable, then deploy matomo and assert
  reachable; extract assert_http_status / assert_http_status_not helpers

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-29 15:00:24 +02:00

12 KiB

Environment Variables

This page documents the repository-owned environment variables that drive the development stack, local deploy helpers, and container bootstrap flow.

App-specific container variables live next to the role that owns them, usually in roles/<role>/templates/env.j2, roles/<role>/templates/bootstrap.env.j2, or roles/<role>/templates/playwright.env.j2.

Workflow Inputs

Variable Purpose Default / values Defined in
APPS Single-app deploy target used by fresh-kept-app.sh, reuse-kept-app.sh, and fresh-purged-app.sh. Required for single-app flows. fresh-kept-app.sh, fresh-purged-app.sh, reuse-kept-app.sh, entity.sh
SERVICES_DISABLED Space- or comma-separated list of compose service names to disable after inventory creation. Sets enabled: false and shared: false for every matching service across all applications. Use this to reduce resource usage on low-hardware machines. Example: SERVICES_DISABLED="oidc ldap matomo". Empty by default (no services disabled). services_disabler.py
DEBUG Enables debug behavior in local deploy flows. Boolean; defaults vary by helper. fresh-kept-app.sh, reuse-kept-app.sh, reuse-kept-all.sh
DISTROS Space-separated distro matrix used by CI input resolution. arch debian ubuntu fedora centos defaults.sh, input.sh
INFINITO_CONTAINER Name of the running dev container. infinito_nexus_${INFINITO_DISTRO} defaults.sh, entity.sh, inventory.sh, web.sh, lib.sh
INFINITO_DISTRO Selected distro flavor for the dev stack and image tags. debian; accepted values are arch, debian, ubuntu, fedora, centos. defaults.sh, fresh-kept-all.sh, fresh-kept-app.sh, fresh-purged-app.sh, reuse-kept-all.sh
INVENTORY_DIR Inventory directory used by local deploy helpers. The canonical inventory file inside it is devices.yml. $HOME/inventories/localhost when resolved automatically. inventory.sh, resolve.sh, fresh-kept-all.sh, fresh-kept-app.sh, fresh-purged-app.sh, reuse-kept-app.sh, reset/inventory.sh, reuse-kept-all.sh
LIMIT_HOST Ansible limit pattern for local deploys. localhost fresh-kept-all.sh, fresh-kept-app.sh, fresh-purged-app.sh, reuse-kept-app.sh, reuse-kept-all.sh
PYTHON Python executable used by helper scripts. python3 or the active venv python. python.sh, fresh-kept-all.sh, fresh-kept-app.sh, fresh-purged-app.sh, reuse-kept-app.sh, reuse-kept-all.sh
TEST_DEPLOY_TYPE Inventory and deploy flavor. server; accepted values are server, workstation, universal. defaults.sh, input.sh, fresh-kept-all.sh, fresh-purged-app.sh, reuse-kept-app.sh, reset/inventory.sh, reuse-kept-all.sh
TEST_PATTERN Glob for test discovery. test*.py defaults.sh
WHITELIST Optional app-discovery filter. Empty by default. input.sh, fresh-kept-all.sh

Runtime And Tooling

Variable Purpose Default / values Defined in
IS_WSL2 Indicates whether the current host looks like WSL2. true or false. runtime.sh
NIX_CONFIG Optional pass-through Nix configuration used by build and compose flows. Optional. github.sh, compose.yml
PIP Pip command derived from PYTHON. ${PYTHON} -m pip python.sh
PYTHONPATH Python import path for helper scripts. . python.sh
RUNNING_ON_ACT Runtime flag for act-based workflows. true or false. runtime.sh
RUNNING_ON_GITHUB Runtime flag for GitHub Actions / CI workflows. true or false. runtime.sh
VENV Effective virtualenv path used by the repo. Active venv or ${VENV_BASE%/}/${VENV_NAME}. python.sh
VENV_BASE Base directory used to resolve virtualenv paths. /opt/venvs outside an active venv. python.sh
VENV_FALLBACK Fallback virtualenv path when no venv is active. ${VENV_BASE%/}/${VENV_NAME} python.sh
VENV_NAME Name of the repo virtualenv. infinito python.sh
INFINITO_ENV_DEFAULTS_LOADED Loader guard for defaults resolution. Internal 1 flag. defaults.sh
INFINITO_ENV_GITHUB_LOADED Loader guard for GitHub/Act resolution. Internal 1 flag. github.sh
INFINITO_ENV_INVENTORY_LOADED Loader guard for inventory resolution. Internal 1 flag. inventory.sh
INFINITO_ENV_LOADED Loader guard for scripts/meta/env/all.sh. Internal 1 flag. all.sh
INFINITO_ENV_PYTHON_LOADED Loader guard for Python resolution. Internal 1 flag. python.sh
INFINITO_ENV_RUNTIME_LOADED Loader guard for runtime resolution. Internal 1 flag. runtime.sh

Compose And Container

Variable Purpose Default / values Defined in
DNS_IP CoreDNS IP used by the CI compose profile. Provided by the compose environment. compose.yml
DOMAIN Base domain for the local compose stack. Provided by the compose environment. compose.yml
GIT_SSL_NO_VERIFY Keeps Git SSL verification enabled inside the infinito container. 0 compose.yml
INFINITO_COMPILE Enables rebuild mode in scripts/docker/entry.sh. 1 builds, 0 skips build. github.sh, compose.yml, entry.sh
INFINITO_COMPILE_SILENCE Suppresses rebuild output when INFINITO_COMPILE=1. 1 hides build logs. entry.sh
INFINITO_CONTAINER_NO_CA Disables CA injection in the container wrapper. Truthy values disable CA mounting. container.py
INFINITO_DOCKER_MOUNT Mount point for the Docker data root inside the stack. /var/lib/docker github.sh, compose.yml
INFINITO_DOCKER_VOLUME Host-side Docker volume or mount used by the stack. /mnt/docker on GitHub, docker in Compose fallback. github.sh, compose.yml
INFINITO_GHCR_MIRROR_PREFIX Prefix used when resolving GHCR mirror image names. mirror github.sh, mirrors.py
INFINITO_IMAGE Full container image reference used by Compose and deploy tooling. infinito-${INFINITO_DISTRO} when unset. github.sh, compose.yml, compose.py
INFINITO_IMAGE_REPOSITORY Repository path used to resolve image names and tags. Derived from repo metadata when not set. github.sh, build.sh, cleanup.sh
INFINITO_IMAGE_TAG Tag portion of the image reference. latest on GitHub; otherwise unset. github.sh
INFINITO_NO_BUILD Skips docker compose up image building when set to 1. 0 or 1. github.sh, compose.py
INFINITO_PATH Working directory selected inside the infinito container. Computed at container start. entry.sh
INFINITO_PULL_POLICY Docker Compose pull policy. always on GitHub; Compose default elsewhere. github.sh, compose.yml
INFINITO_SRC_DIR Source tree path inside the container. /opt/src/infinito Dockerfile, compose.yml, entry.sh
INFINITO_WAIT_HEALTH_TIMEOUT_S Timeout while waiting for the infinito container to become healthy. 600 seconds. compose.py
IP4 Static IPv4 address assigned to the infinito container. Provided by the compose environment. compose.yml
PYTHONHTTPSVERIFY Forces HTTPS certificate verification in the container. 1 compose.yml

Persisted Host Metadata

Variable Purpose Default / values Defined in
INFINITO_VERSION System version written to /etc/environment by the system-version role. Set to the repository version string. main.yml

Notes

  • The tables above cover the repository-owned workflow and runtime variables.
  • Role-specific application env files intentionally stay next to their roles so the app documentation and the generated environment stay in sync.