Skip to content

hub.env reference

Every typed setting of a hub, as in release v0.5.0. An empty key means the default named here. Values are plain text, one key per line, no quotes.

Features

Key Default Meaning
features What the hub is for, comma separated: r, python, deploy. Selects the rules, skills, plugins and instructions the coding agents get; the IDE tiles and the deploy stack are chosen in kustomization.yaml.
ai true false makes a hub without any AI: IDE images without Claude Code and Posit Assistant, no agent content, no AI packages.

Registry

The hub keeps its images, the IDE and base images with your layer and every built app, in a registry: its own behind the Ingress, or one you provide.

Key Default Meaning
registry Host name of the registry. With the platform's own registry, the host name its Ingress serves; otherwise the registry you provide.
registry_insecure false true for a registry reached over plain HTTP. Only for a throwaway cluster; it needs the address on every node.
registry_storage filesystem Where the platform's own registry keeps images: filesystem (a volume) or s3 (the object store below), which makes the registry stateless.
registry_backend distribution For a registry you provide: distribution for any v2 registry such as Harbor, or ecr.
registry_user hub The user name of the registry credential, if not hub. The password is registry-password in secrets.env.

Single host

Used by the host setup only; a cluster's ingress handles TLS itself.

Key Default Meaning
acme_email The e-mail Let's Encrypt notifies about the host's certificates.
tls_cert, tls_key Your own certificate for the host names instead of Let's Encrypt: two files on the host.

Release

Key Default Meaning
image_tag dev The release the hub runs, for example v0.5.0. The installer sets it on every install, upgrade and rollback. Changing it rolls the platform; new sessions start on the new images, apps are rebuilt on their next deploy.

Storage and object store

Key Default Meaning
home_size 20Gi Size of a user's home volume, set when it is created at their first session. Growing an existing one is a volume patch.
object_store_endpoint URL of an S3-compatible object store; empty for AWS S3 itself. Used by registry_storage=s3 and by backups. Keys in secrets.env.
object_store_bucket Its bucket.
object_store_region Its region.
loki_s3_from Logs on the object store: the date from which they go there. Tomorrow on a hub that already has logs, any past date on a new one. Empty keeps logs on a volume.

Redis

With the redis/external component only; the hub's own Redis needs nothing here.

Key Default Meaning
redis_host Host name of your Redis.
redis_port 6379 Its port.

R packages

Key Default Meaning
r_snapshot latest The snapshot date of the package repository that the stack and every app build install from, 2026-09-01 or latest. Pin it for reproducible builds.
cran Your own repository instead of the public one: the full URL, for example https://ppm.acme.internal/cran/__linux__/noble/2026-09-01. A Posit Package Manager URL keeps Linux binaries; a plain mirror builds from source.
sysreqs_api Where app builds look system dependencies up: empty for the public service, a Posit Package Manager's .../__api__/repos/<repo>/sysreqs, or none (then only system-packages in hub.yaml).
deploy_mode renv renv: an app restores its own lock file on top of the stack. stack: an app may use only the stack's packages, builds take seconds.

Python

Key Default Meaning
py_snapshot The date that pins package resolution in the IDEs and in app builds; empty takes the newest.
pypi_index Your own package index instead of PyPI.

Sessions

Key Default Meaning
ide_idle_timeout never Milliseconds an IDE session keeps running with no open browser tab before it is stopped. Files on the home volume persist; the R process and unsaved editor state do not. -1 or empty: never.
ide_max_instances 3 Sessions of one IDE a user may run at the same time, each with its own size. 1 gives one session per IDE.

Deploys

Key Default Meaning
max_builds 2 Builds that run at the same time; further deploys wait in line.
ingress_class traefik The ingress class for the Ingress of each deployed API. Any class works; the API's authentication is a sidecar in its pod.
timezone UTC The time zone that pipeline schedules (schedule: in hub.yaml) are read in.

Cluster

Nothing here matters on a single host, where single_node=true is set for you.

Key Default Meaning
single_node false true on one machine: pipeline stores that apps mount can then be shared without a ReadWriteMany class.
storage_class_rwx A ReadWriteMany StorageClass (EFS, CephFS) for pipeline stores that apps mount from other nodes. Without this or single_node, uses: in hub.yaml is refused.
session_pool false true on a cluster whose nodes for user code carry the label and taint hub.linnerprogramming.com/pool=sessions. Sessions, apps, builds and pipeline runs then run there only, the platform's pods stay on the others, and an autoscaler can scale that pool.

Tokens at APIs and MCP servers

A deployed API or MCP server is called from inside the hub with the caller's identity, and from outside with its API key. With these keys, a token of your identity provider works from outside too: a script or another service sends Authorization: Bearer <token>, and the API sees the user and groups behind it.

Key Default Meaning
api_token_issuer The OpenID Connect issuer, for example https://cognito-idp.<region>.amazonaws.com/<pool id> or https://<keycloak>/realms/<realm>. Empty: no tokens, the API key stays the way in from outside.
api_token_client_id The client the hub logs people in with. Its tokens are people; a token of any other client is a machine, admitted per API by access-clients in hub.yaml.
api_token_user_claim email The claim with the user id.
api_token_groups_claim cognito:groups The claim with the groups. With Cognito send the ID token, which carries the email.