Injected environment variables
A link sets the main variables below. When your code reads one of the also names instead of the main one, that name is set as well. Variables you set yourself always win. See How linking works.
| Service | Main variables | Also |
|---|---|---|
| Postgres | DATABASE_URL |
POSTGRES_URL, POSTGRES_URI, POSTGRESQL_URL, PG_URL, DB_URL, DATABASE_URI, DATABASE_CONNECTION_STRING |
| MySQL | DATABASE_URL, MYSQL_URL, MYSQL_HOST, MYSQL_PORT, MYSQL_USER, MYSQL_PASSWORD, MYSQL_DATABASE |
DB_HOST, DB_PORT, DB_USER, DB_USERNAME, DB_PASSWORD, DB_PASS, DB_NAME, DB_DATABASE, DATABASE_HOST… |
| Valkey | REDIS_URL |
VALKEY_URL, REDIS_URI, CACHE_URL, REDIS_CONNECTION_STRING |
| Object storage | S3_ENDPOINT, S3_PUBLIC_ENDPOINT, S3_REGION, S3_BUCKET, S3_ACCESS_KEY_ID, S3_SECRET_ACCESS_KEY, S3_FORCE_PATH_STYLE |
AWS_ENDPOINT_URL, AWS_REGION, AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_S3_BUCKET, BUCKET_NAME, S3_ENDPOINT_URL… |
| LiteLLM | OPENAI_BASE_URL, OPENAI_API_BASE, OPENAI_API_KEY, LLM_GATEWAY_URL |
ANTHROPIC_BASE_URL, ANTHROPIC_API_KEY, LITELLM_URL, LITELLM_PROXY_URL, LITELLM_API_KEY, LLM_API_KEY |
| Secrets | Each key you added, under its own name | |
| Observability | OTEL_EXPORTER_OTLP_ENDPOINT, OTEL_EXPORTER_OTLP_PROTOCOL, OTEL_SERVICE_NAME |
|
| Another app | <LABEL>_URL (its private address) |
Apps built from code also get PORT, the port they should listen on.
Extra accounts and databases
Section titled “Extra accounts and databases”On a link, Also inject adds another account’s variables with the account name as a suffix
(DATABASE_URL_READONLY), and Also inject URLs for adds other Postgres databases as DATABASE_URL_<NAME>.
References
Section titled “References”Your own variables can use ${label.field} for a linked node, and ${self.host} / ${self.url} for the app itself.
Common fields: uri, host, port, user, password, name. zc describe kind <subtype> lists each service’s
fields.