Files
computer-playbook/env/default.env
T
kevinveenbirkenbachandClaude Opus 4.7 80c396b839 refactor(env+install/spot): collapse python/venv resolution into shell SPOT
Pulls VENV/PYTHON/PIP/PYTHONPATH out of the dotenv handler pipeline
into scripts/meta/python/detect.sh. load.sh now sources detect.sh and
prepends ${VENV}/bin to PATH above the INFINITO_ENV_LOADED guard, so
every BASH_ENV re-entry re-resolves PYTHON the moment a venv
materialises mid-chain — the same fix as b79ed2869 but at the SPOT,
which retires the reload-trick from ansible.sh, python.sh and
pre-commit.sh.

Also renames INVENTORY_VARS_FILE → INFINITO_INVENTORY_VARS_FILE under
the new env-prefix lint, drops the 5 dead INFINITO_ENV_*_LOADED unsets
left over from the multi-loader era, and adds a lint guarding the
INFINITO_ prefix invariant on env/*.env keys.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-21 00:39:52 +02:00

180 lines
7.0 KiB
Bash

# Single source of truth for the project's static defaults.
#
# Every key here is copied verbatim into the generated `.env` by
# `make dotenv` (which delegates to `python -m cli.meta.env`), together
# with the dynamic runtime-resolved values (distro, GHA flags,
# df/meminfo-derived sizes, sha256 secrets, repository owner, ...).
#
# Override at generation time by exporting the variable before running
# `make dotenv` -- already-set env vars take precedence over the
# defaults below.
#
# Convention: every key is preceded by a single-line `# ...` comment
# that explains what the value is for. The generator preserves the
# comments when materialising `.env`.
# Space-separated app role list passed to deploy targets ('make deploy-* INFINITO_APPS=...').
INFINITO_APPS=
# Where scripts/meta/resolve/apps.sh runs the meta-CLI: host | docker.
INFINITO_APP_DISCOVERY_RUNNER=docker
# Host interface(s) the compose stack binds published ports to.
INFINITO_BIND_IP=127.0.0.1
# Comma-separated inventory bundles consumed by 'make deploy-bundles' / 'make redeploy-bundles'.
INFINITO_BUNDLES=
# Bind-mounted apt sources.list fragment for the package-cache frontend.
INFINITO_CACHE_PACKAGE_APT_LIST=./compose/package-cache/apt.list
# Host directory holding the package-cache frontend CA materials.
INFINITO_CACHE_PACKAGE_FRONTEND_CA_DIR=/var/cache/infinito/core/cache/package/frontend/ca
# CA certificate file produced under INFINITO_CACHE_PACKAGE_FRONTEND_CA_DIR.
INFINITO_CACHE_PACKAGE_FRONTEND_CA_FILE=/var/cache/infinito/core/cache/package/frontend/ca/ca.crt
# Host directory holding the package-cache frontend TLS certificates.
INFINITO_CACHE_PACKAGE_FRONTEND_CERTS_DIR=/var/cache/infinito/core/cache/package/frontend/certs
# Init image used by the package-cache frontend cert-gen wrapper to run cert-gen.sh.
INFINITO_CACHE_PACKAGE_FRONTEND_INIT_IMAGE=alpine:3.20
# Static IPv4 address the package-cache frontend takes on the docker bridge.
INFINITO_CACHE_PACKAGE_FRONTEND_IP=172.30.0.4
# Host directory backing the Nexus 3 package-cache blobstore.
INFINITO_CACHE_PACKAGE_HOST_PATH=/var/cache/infinito/core/cache/package/data
# Cache freshness window (minutes) Nexus tolerates before re-validating upstream. 8640 = 6 days (below the 7-day Debian Valid-Until).
INFINITO_CACHE_PACKAGE_MAX_AGE_MIN=8640
# Bind-mounted .npmrc fragment for the package-cache frontend.
INFINITO_CACHE_PACKAGE_NPMRC=./compose/package-cache/npmrc
# Bind-mounted pip.conf fragment for the package-cache frontend.
INFINITO_CACHE_PACKAGE_PIP_CONF=./compose/package-cache/pip.conf
# Host port the Nexus 3 package cache binds to on BIND_IP.
INFINITO_CACHE_PACKAGE_PORT=8081
# Host directory holding the registry-cache CA materials.
INFINITO_CACHE_REGISTRY_CA_HOST_PATH=/var/cache/infinito/core/cache/registry/ca
# Host directory backing the docker registry-mirror cache (bind mount).
INFINITO_CACHE_REGISTRY_HOST_PATH=/var/cache/infinito/core/cache/registry/mirror
# Bind-mounted registry-cache proxy configuration consumed by the cache container.
INFINITO_CACHE_REGISTRY_PROXY_CONF=./compose/registry-cache/proxy.conf
# One-shot command 'make exec INFINITO_CMD=...' runs inside the dev container (empty -> interactive shell).
INFINITO_CMD=
# Compose service container name; generator overrides as infinito_nexus_${INFINITO_DISTRO}.
INFINITO_CONTAINER=infinito_nexus_debian
# Truthy (1/true/yes) disables CA injection in the container wrapper; empty leaves it on.
INFINITO_CONTAINER_NO_CA=
# cpus cap applied to the infinito container; 0 means "unlimited".
INFINITO_CPUS=0
# Truthy enables debug behavior in the local deploy flows.
INFINITO_DEBUG=
# Distro the build/test matrix is currently iterating over (generator may override).
INFINITO_DISTRO=debian
# Space-separated list of distros the build/test matrix iterates over.
INFINITO_DISTROS="arch debian ubuntu fedora centos"
# Domain the host-side DNS-fallback / dnsmasq config wires up (consumed by scripts/system/network/dns/).
INFINITO_DNS_DOMAIN=infinito.example
# Path to the hosts file the DNS-fallback installer writes the BEGIN/END block into.
INFINITO_DNS_HOSTS_FILE=/etc/hosts
# Mount point inside the infinito container where INFINITO_DOCKER_VOLUME lands.
INFINITO_DOCKER_MOUNT=/var/lib/docker
# Docker volume backing /var/lib/docker; generator overrides to /mnt/docker on GHA.
INFINITO_DOCKER_VOLUME=docker
# Truthy adds the async update pass (Pass 2) to the local deploy flows.
INFINITO_FULL_CYCLE=
# IPv4 of the bridge gateway inside INFINITO_SUBNET.
INFINITO_GATEWAY=172.30.0.1
# Prefix path under which GHCR mirror lookups search for cached images.
INFINITO_GHCR_MIRROR_PREFIX=mirror
# Image tag used to address the published infinito image (CI publishes 'latest' on push).
INFINITO_IMAGE_TAG=latest
# Repo-relative path to the Ansible vars file `infinito administration inventory provision --vars-file <...>` consumes.
INFINITO_INVENTORY_VARS_FILE=inventories/development/default.yml
# True when /proc/version identifies the host as WSL2; generator overrides via runtime detection.
INFINITO_IS_WSL2=false
# Ansible limit pattern for local deploys.
INFINITO_LIMIT_HOST=localhost
# Where scripts/lint/wrapper.sh executes 'make lint*' / 'make autoformat': host | docker.
INFINITO_LINT_RUNNER=docker
# memswap_limit cap applied to the infinito container; 0 means "unlimited".
INFINITO_MEMSWAP_LIMIT=0
# mem_limit cap applied to the infinito container; 0 means "unlimited".
INFINITO_MEM_LIMIT=0
# `1` means CI never rebuilds infinito locally; it pulls the published image.
INFINITO_NO_BUILD=1
# MTU of the compose stack's bridge network; 1500 matches most hosts.
INFINITO_OUTER_NETWORK_MTU=1500
# Docker pull policy compose applies; generator overrides to `always` on GHA.
INFINITO_PULL_POLICY=never
# True when running under nektos/act locally; generator overrides via runtime detection.
INFINITO_RUNNING_ON_ACT=false
# True when running on real GitHub Actions; generator overrides via runtime detection.
INFINITO_RUNNING_ON_GITHUB=false
# Extra flags forwarded verbatim to 'docker run' by 'make run'.
INFINITO_RUN_FLAGS=
# Space- or comma-separated compose services flipped off by the inventory provisioner.
INFINITO_SERVICES_DISABLED=
# Absolute path to the bind-mounted repo root inside the dev container.
INFINITO_SRC_DIR=/opt/src/infinito
# CIDR of the internal docker bridge used by the compose stack.
INFINITO_SUBNET=172.30.0.0/24
# Deployment matrix target: server | workstation | universal.
INFINITO_TEST_DEPLOY_TYPE=server
# Glob `unittest discover -p` applies when running the test suites.
INFINITO_TEST_PATTERN=test*.py
# Where scripts/tests/code/wrapper.sh executes the test run: docker | host.
INFINITO_TEST_RUNNER=docker
# Pin matrix-variant deploys to a single round (empty -> iterate all variants).
INFINITO_VARIANT=
# Seconds 'make up' waits for the infinito container healthcheck before failing.
INFINITO_WAIT_HEALTH_TIMEOUT_S=600
# Optional app-discovery filter consumed by scripts/meta/resolve/apps.sh and the GHA workflow.
INFINITO_WHITELIST=
# Master toggle for the worker SPOT chain (INFINITO_WORKER_CPU / _FETCH); falsy values: 0/false/no/off.
INFINITO_WORKER_ENABLED=true