---
title: "Environment variables"
description: "Classify build, runtime, provider, and documentation settings by exposure and purpose."
canonical_url: "https://docs.linguana.dev/docs/reference/environment-variables"
markdown_url: "https://docs.linguana.dev/docs/reference/environment-variables.md"
x_farming_labs_generated_preamble: true
---

# Environment variables
URL: /docs/reference/environment-variables
LLM index: /llms.txt
Description: Classify build, runtime, provider, and documentation settings by exposure and purpose.

# Environment variables

## Build and CI

<ConfigReference>

| Variable | Example | Required | Safe to expose? | Purpose | Failure behavior |
| --- | --- | --- | --- | --- | --- |
| `LINGUANA_PROJECT_TOKEN` | `lna_...` | Remote build work | No | Manifest and paid-work authorization | Upload/translation returns authorization failure |
| `LINGUANA_API_URL` | `https://api.example.com` | Remote compiler and SSR | Server configuration only | API origin for builds and server catalog reads | Registration or catalog load fails |
| `LINGUANA_UPLOAD` | `true` | No | Build config, not secret | Enables manifest upload | `false` keeps extraction local |
| `LINGUANA_TRANSLATE` | `false` | No | Build config, not secret | Disables translation while retaining upload | Omitted/true may translate when token config enables it |
| `GIT_COMMIT_SHA` | Git revision | No | Yes | Records source revision in the manifest | Manifest omits source revision |

</ConfigReference>

## Browser runtime

| Variable | Example | Required | Safe to expose? | Purpose |
| --- | --- | --- | --- | --- |
| `VITE_LINGUANA_API_URL` | `https://api.example.com` | Remote browser catalogs | Yes | Browser-reachable catalog API |
| `VITE_LINGUANA_PUBLISHABLE_KEY` | `pk_...` | Remote browser catalogs | Yes | Read-only catalog authorization |

Only intentionally public values should use the `VITE_` prefix. Never create `VITE_LINGUANA_PROJECT_TOKEN`.

## Translation provider

| Variable | Example | Required | Safe to expose? | Purpose |
| --- | --- | --- | --- | --- |
| `OPENROUTER_API_KEY` | Provider secret | OpenRouter mode | No | Paid translation provider authorization |
| `OPENROUTER_MODEL` | `qwen/qwen3.8-flash` | Provider-dependent | Server config only | Selects the provider model |
| `TRANSLATION_PROVIDER` | `openrouter` | Server translation | Server config only | Selects deterministic or live provider adapter |

## Documentation deployment

| Variable | Example | Required | Safe to expose? | Purpose |
| --- | --- | --- | --- | --- |
| `DOCS_BASE_URL` | `https://docs.example.com` | Hosted metadata | Yes | Canonical docs and `llms.txt` origin |
| `DOCS_PORT` | `3004` | Deployment-dependent | Yes | Docs service port |
| `VITE_DOCS_URL` | `https://docs.example.com` | Landing integration | Yes | Browser-visible docs destination |

## Server and browser origins

The verified example uses `LINGUANA_API_URL` on the server and `VITE_LINGUANA_API_URL` in the browser because container networking and public browser origins may differ. Both must resolve the same API and project catalog scope.

<SecurityNote>
Inspect production client bundles and generated environment output for token prefixes and provider values. Rotate any secret that reached a browser artifact or unredacted log.
</SecurityNote>

## See also

[Tokens and environments](/docs/use-linguana/tokens-and-environments) · [CI/CD](/docs/automate/ci-cd)

## Sitemap

See the full [sitemap](/sitemap.md) for all pages.
Docs-scoped sitemap: [/docs/sitemap.md](/docs/sitemap.md).
Well-known sitemap: [/.well-known/sitemap.md](/.well-known/sitemap.md).
