Configuration

Environment variables control how jupyter-positron-server runs Positron Server inside your Jupyter environment.

Environment variables

Variable Description
POSITRON_LICENSE_KEY_FILE Path to a license file that jupyter-positron-server passes to positron-server as --license-key-file. On Positron Server 2026.09.0 and newer, this file can be a raw license.lic. Leave it unset when the license file sits in the activation directory at <positron-server-path>/resources/activation/linux/<arch>/license.lic, which is where positron-server looks by default.
POSITRON_LICENSE_MINTING_ENDPOINT URL of the JupyterHub minting endpoint that issues short-lived signed license tokens. Applies to Positron Server 2026.07.0 through 2026.08.2 only. Takes precedence over POSITRON_LICENSE_KEY_FILE. See Verifier setup.
POSITRON_ENFORCED_SETTINGS JSON object of Positron settings that students cannot change. See Admin-enforced settings.
POSITRON_HOST Host address for Positron Server to bind to. Defaults to 127.0.0.1.
JSP_DEFAULT_FOLDER Directory that Positron Server opens. Defaults to JUPYTERHUB_ROOT_DIR, then HOME.
JSP_POSITRON_LAUNCHER_DISABLED Set to any value to hide the Positron tile in the JupyterLab launcher.
Note

On Positron Server 2026.09.0 and newer, a license needs no environment variable at all. positron-server finds license.lic in its own activation directory. Both license variables are for deployments that keep the file somewhere else, or that still run on 2026.07.0 through 2026.08.2.

Admin-enforced settings

POSITRON_ENFORCED_SETTINGS lets administrators lock Positron settings so students cannot override them through the Settings UI, or by editing settings.json directly. Locked settings appear grayed out with a policy indicator. Enforced settings survive profile changes, workspace switches, and direct edits to ~/.positron-server/data/User/settings.json.

Requirements: jupyter-positron-server 0.0.4 or newer, and Positron Server 2026.07.1-5 or newer.

Create the config file:

Terminal
cat > /opt/tljh/config/jupyterhub_config.d/positron_enforced.py << 'EOF'
c.Spawner.environment = {
    'POSITRON_ENFORCED_SETTINGS': '{"workbench.colorTheme":"Default Positron Dark","extensions.autoUpdate":false}'
}
EOF

Sessions that are already running keep their settings until a student starts a new session.

Important

Each assignment to c.Spawner.environment replaces the whole dictionary. Set every session variable in one assignment, including PATH.

Memory requirements

Allocate at least 2.5 GB of RAM per Positron Server session. The right amount depends on the size of the workload:

  • Light: single console, few extensions, simple scripts, basic app development
  • Standard: runtime switching, multiple consoles, multiple extensions, app development
  • Heavy: memory-intensive extensions such as file watchers or language servers, multiple concurrent apps, large datasets

Use the table below to match each workload level to its minimum and recommended memory allocation.

Workload Minimum Recommended
Light 2 GB 2.5 GB
Standard 2.5 GB 4 GB
Heavy 4 GB 6 GB or more

Signs of insufficient memory include slow runtime switching, extensions that fail to install, degraded app performance, and crashes during memory-intensive operations.

Note

For the full guidance this section summarizes, see the Positron Pro memory allocation FAQ.

Hub license minting

Note

Hub license minting is a former way of working, scoped to Positron Server 2026.07.0 through 2026.08.2, and not recommended for a new deployment. Positron Server 2026.09.0 and newer validate license.lic directly and need no minting service. See Verifier setup only if you are deploying that exact version range.