Files
langflow/docs/versioned_docs/version-1.10.0/Develop/environment-variables.mdx
Mendon Kissling 2411d8036e docs: build OpenAPI spec and cut version 1.10 (#13537)
* build-api

* bump-version-to-1.10

* fix-broken-links
2026-06-08 18:25:14 +00:00

488 lines
25 KiB
Plaintext

---
title: Environment variables
slug: /environment-variables
---
import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';
import Link from '@docusaurus/Link';
In general, environment variables, like `LANGFLOW_PORT` or `LANGFLOW_LOG_LEVEL`, configure how Langflow runs.
These are broad settings that apply to your entire Langflow deployment.
In contrast, global variables are user-defined values stored in Langflow's database for use in flows, such as `OPENAI_API_KEY`.
Langflow can also source global variables from environment variables.
For more information, see [Langflow global variables](/configuration-global-variables).
## Configure environment variables for Langflow OSS
Langflow recognizes [supported environment variables](#supported-variables) from the following sources:
- Environment variables set in your terminal.
- Environment variables imported from a `.env` file when starting Langflow.
- Environment variables set with the [Langflow CLI](./configuration-cli), including the `--env-file` option and direct options, such as `--port`.
You can choose to use one or more of these sources.
### Precedence {#precedence}
If the same environment variable is set in multiple places, the following hierarchy applies:
1. Langflow CLI options override all other sources.
2. The `.env` file overrides system environment variables.
3. System environment variables are used only if not set elsewhere.
When running a Langflow Docker image, the `-e` flag can be used to set additional system environment variables.
For example:
* If you set `LANGFLOW_PORT=8080` in your system environment and `LANGFLOW_PORT=7860` in `.env`, Langflow uses `7860` from `.env`.
* If you use the Langflow CLI to run `langflow run --env-file .env --port 9000`, and you set `LANGFLOW_PORT=7860` in `.env`, then Langflow uses `9000` from the CLI option.
### Set environment variables in your terminal {#configure-variables-terminal}
Run the following commands to set environment variables for your current terminal session:
<Tabs>
<TabItem value="linux-macos" label="Linux or macOS" default>
```bash
export VARIABLE_NAME='VALUE'
```
</TabItem>
<TabItem value="windows" label="Windows">
```
set VARIABLE_NAME='VALUE'
```
</TabItem>
<TabItem value="docker" label="Docker">
```bash
docker run -it --rm \
-p 7860:7860 \
-e VARIABLE_NAME='VALUE' \
langflowai/langflow:latest
```
</TabItem>
</Tabs>
When you start Langflow, it looks for environment variables that you've set in your terminal.
If it detects a supported environment variable, then it automatically adopts the specified value, subject to [precedence rules](#precedence).
### Import environment variables from a .env file {#configure-variables-env-file}
1. If Langflow is running, quit Langflow.
2. Create a `.env` file, and then open it in your preferred editor.
3. Define [Langflow environment variables](#supported-variables) in the `.env` file.
<details>
<summary>Example: .env</summary>
```text
DO_NOT_TRACK=True
LANGFLOW_AUTO_LOGIN=False
LANGFLOW_AUTO_SAVING=True
LANGFLOW_AUTO_SAVING_INTERVAL=1000
LANGFLOW_BACKEND_ONLY=False
LANGFLOW_BUNDLE_URLS=["https://github.com/user/repo/commit/hash"]
LANGFLOW_CACHE_TYPE=async
LANGFLOW_COMPONENTS_PATH=/path/to/components/
LANGFLOW_COMPONENTS_INDEX_PATH=/path/to/component_index.json
LANGFLOW_CONFIG_DIR=/path/to/config/
LANGFLOW_DATABASE_URL=postgresql://user:password@localhost:5432/langflow
LANGFLOW_DEV=False
LANGFLOW_FALLBACK_TO_ENV_VAR=False
LANGFLOW_HEALTH_CHECK_MAX_RETRIES=5
LANGFLOW_HOST=localhost
LANGFLOW_LANGCHAIN_CACHE=InMemoryCache
LANGFLOW_MAX_FILE_SIZE_UPLOAD=10000
LANGFLOW_MAX_ITEMS_LENGTH=100
LANGFLOW_MAX_TEXT_LENGTH=1000
LANGFLOW_LOG_LEVEL=error
LANGFLOW_OPEN_BROWSER=False
LANGFLOW_PORT=7860
LANGFLOW_REMOVE_API_KEYS=False
LANGFLOW_SAVE_DB_IN_CONFIG_DIR=True
LANGFLOW_SECRET_KEY=somesecretkey
LANGFLOW_STORE_ENVIRONMENT_VARIABLES=True
LANGFLOW_SUPERUSER=adminuser
LANGFLOW_SUPERUSER_PASSWORD=adminpass
LANGFLOW_WORKER_TIMEOUT=300
LANGFLOW_WORKERS=3
```
For additional examples, see [`.env.example`](https://github.com/langflow-ai/langflow/blob/main/.env.example) in the Langflow repository.
</details>
4. Save and close `.env`.
5. Start Langflow with your `.env` file:
<Tabs>
<TabItem value="local" label="Local" default>
```bash
uv run langflow run --env-file .env
```
</TabItem>
<TabItem value="docker" label="Docker">
```bash
docker run -it --rm \
-p 7860:7860 \
--env-file .env \
langflowai/langflow:latest
```
</TabItem>
</Tabs>
If your `.env` file isn't in the same directory, provide the path to your `.env` file.
On startup, Langflow imports the environment variables from your `.env` file, as well as any others that you set in your terminal, and then adopts their specified values.
### Configure environment variables for development
The following examples show how to configure Langflow using environment variables in different development scenarios.
<Tabs>
<TabItem value="env" label=".env file" default>
The `.env` file is a text file that contains key-value pairs of environment variables.
Create or edit a `.env` file in the root directory of your application or Langflow environment, and then add your configuration variables to the file:
<details>
<summary>Example: .env</summary>
```text title=".env"
DO_NOT_TRACK=True
LANGFLOW_AUTO_LOGIN=False
LANGFLOW_AUTO_SAVING=True
LANGFLOW_AUTO_SAVING_INTERVAL=1000
LANGFLOW_BACKEND_ONLY=False
LANGFLOW_BUNDLE_URLS=["https://github.com/user/repo/commit/hash"]
LANGFLOW_CACHE_TYPE=async
LANGFLOW_COMPONENTS_PATH=/path/to/components/
LANGFLOW_COMPONENTS_INDEX_PATH=/path/to/component_index.json
LANGFLOW_CONFIG_DIR=/path/to/config/
LANGFLOW_DATABASE_URL=postgresql://user:password@localhost:5432/langflow
LANGFLOW_DEV=False
LANGFLOW_FALLBACK_TO_ENV_VAR=False
LANGFLOW_HEALTH_CHECK_MAX_RETRIES=5
LANGFLOW_HOST=localhost
LANGFLOW_LANGCHAIN_CACHE=InMemoryCache
LANGFLOW_MAX_FILE_SIZE_UPLOAD=10000
LANGFLOW_MAX_ITEMS_LENGTH=100
LANGFLOW_MAX_TEXT_LENGTH=1000
LANGFLOW_LOG_LEVEL=error
LANGFLOW_OPEN_BROWSER=False
LANGFLOW_PORT=7860
LANGFLOW_REMOVE_API_KEYS=False
LANGFLOW_SAVE_DB_IN_CONFIG_DIR=True
LANGFLOW_SECRET_KEY=somesecretkey
LANGFLOW_STORE_ENVIRONMENT_VARIABLES=True
LANGFLOW_SUPERUSER=adminuser
LANGFLOW_SUPERUSER_PASSWORD=adminpass
LANGFLOW_WORKER_TIMEOUT=300
LANGFLOW_WORKERS=3
```
</details>
</TabItem>
<TabItem value="systemd" label="Systemd service">
A systemd service configuration file configures Linux system services.
To add environment variables, create or edit a service configuration file and add an `override.conf` file. This file allows you to override the default environment variables for the service.
<details>
<summary>Example: override.conf</summary>
```ini title="override.conf"
[Service]
Environment="DO_NOT_TRACK=true"
Environment="LANGFLOW_AUTO_LOGIN=false"
Environment="LANGFLOW_AUTO_SAVING=true"
Environment="LANGFLOW_AUTO_SAVING_INTERVAL=1000"
Environment="LANGFLOW_BACKEND_ONLY=false"
Environment="LANGFLOW_BUNDLE_URLS=[\"https://github.com/user/repo/commit/hash\"]"
Environment="LANGFLOW_CACHE_TYPE=async"
Environment="LANGFLOW_COMPONENTS_PATH=/path/to/components/"
Environment="LANGFLOW_COMPONENTS_INDEX_PATH=/path/to/component_index.json"
Environment="LANGFLOW_CONFIG_DIR=/path/to/config"
Environment="LANGFLOW_DATABASE_URL=postgresql://user:password@localhost:5432/langflow"
Environment="LANGFLOW_DEV=false"
Environment="LANGFLOW_FALLBACK_TO_ENV_VAR=false"
Environment="LANGFLOW_HEALTH_CHECK_MAX_RETRIES=5"
Environment="LANGFLOW_HOST=localhost"
Environment="LANGFLOW_LANGCHAIN_CACHE=InMemoryCache"
Environment="LANGFLOW_MAX_FILE_SIZE_UPLOAD=10000"
Environment="LANGFLOW_MAX_ITEMS_LENGTH=100"
Environment="LANGFLOW_MAX_TEXT_LENGTH=1000"
Environment="LANGFLOW_LOG_ENV=container_json"
Environment="LANGFLOW_LOG_FILE=logs/langflow.log"
Environment="LANGFLOW_LOG_LEVEL=error"
Environment="LANGFLOW_OPEN_BROWSER=false"
Environment="LANGFLOW_PORT=7860"
Environment="LANGFLOW_REMOVE_API_KEYS=false"
Environment="LANGFLOW_SAVE_DB_IN_CONFIG_DIR=true"
Environment="LANGFLOW_SECRET_KEY=somesecretkey"
Environment="LANGFLOW_STORE_ENVIRONMENT_VARIABLES=true"
Environment="LANGFLOW_SUPERUSER=adminuser"
Environment="LANGFLOW_SUPERUSER_PASSWORD=adminpass"
Environment="LANGFLOW_WORKER_TIMEOUT=300"
Environment="LANGFLOW_WORKERS=3"
```
</details>
For more information on systemd, see the [Red Hat documentation](https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/9/html/using_systemd_unit_files_to_customize_and_optimize_your_system/assembly_working-with-systemd-unit-files_working-with-systemd).
</TabItem>
<TabItem value="vscode" label="VSCode tasks.json">
The `tasks.json` file located in `.vscode/tasks.json` is a configuration file for development environments using Visual Studio Code.
Create or edit the `.vscode/tasks.json` file in your project root.
<details>
<summary>Example: .vscode/tasks.json</summary>
```json title=".vscode/tasks.json"
{
"version": "2.0.0",
"options": {
"env": {
"DO_NOT_TRACK": "true",
"LANGFLOW_AUTO_LOGIN": "false",
"LANGFLOW_AUTO_SAVING": "true",
"LANGFLOW_AUTO_SAVING_INTERVAL": "1000",
"LANGFLOW_BACKEND_ONLY": "false",
"LANGFLOW_BUNDLE_URLS": "[\"https://github.com/user/repo/commit/hash\"]",
"LANGFLOW_CACHE_TYPE": "async",
"LANGFLOW_COMPONENTS_PATH": "D:/path/to/components/",
"LANGFLOW_COMPONENTS_INDEX_PATH": "D:/path/to/component_index.json",
"LANGFLOW_CONFIG_DIR": "D:/path/to/config/",
"LANGFLOW_DATABASE_URL": "postgresql://postgres:password@localhost:5432/langflow",
"LANGFLOW_DEV": "false",
"LANGFLOW_FALLBACK_TO_ENV_VAR": "false",
"LANGFLOW_HEALTH_CHECK_MAX_RETRIES": "5",
"LANGFLOW_HOST": "localhost",
"LANGFLOW_LANGCHAIN_CACHE": "InMemoryCache",
"LANGFLOW_MAX_FILE_SIZE_UPLOAD": "10000",
"LANGFLOW_MAX_ITEMS_LENGTH": "100",
"LANGFLOW_MAX_TEXT_LENGTH": "1000",
"LANGFLOW_LOG_ENV": "container_csv",
"LANGFLOW_LOG_FILE": "langflow.log",
"LANGFLOW_LOG_LEVEL": "error",
"LANGFLOW_OPEN_BROWSER": "false",
"LANGFLOW_PORT": "7860",
"LANGFLOW_REMOVE_API_KEYS": "true",
"LANGFLOW_SAVE_DB_IN_CONFIG_DIR": "false",
"LANGFLOW_SECRET_KEY": "somesecretkey",
"LANGFLOW_STORE_ENVIRONMENT_VARIABLES": "true",
"LANGFLOW_SUPERUSER": "adminuser",
"LANGFLOW_SUPERUSER_PASSWORD": "adminpass",
"LANGFLOW_WORKER_TIMEOUT": "300",
"LANGFLOW_WORKERS": "3"
}
},
"tasks": [
{
"label": "langflow backend",
"type": "shell",
"command": ". ./langflownightly/Scripts/activate && langflow run",
"isBackground": true,
"problemMatcher": []
}
]
}
```
</details>
To run Langflow using the above VSCode `tasks.json` file, in the VSCode command palette, select **Tasks: Run Task** > **langflow backend**.
</TabItem>
</Tabs>
## Set environment variables for Langflow Desktop
Environment variables set in your terminal aren't automatically available to GUI-based applications like Langflow Desktop when you launch them from the Windows or macOS GUI.
To modify environment variables for Langflow Desktop, set environment variables in a Desktop `.env` file, and then restart the app.
<Tabs>
<TabItem value="macos" label="macOS" default>
To modify the macOS `.env` file, do the following:
1. Create or edit `~/.langflow/data/.env`.
2. Add your Langflow environment variables, for example:
```text
LANGFLOW_LOG_LEVEL=info
LANGFLOW_DOCLING=true
```
3. Save the file.
4. Restart Langflow Desktop.
</TabItem>
<TabItem value="windows" label="Windows .env file">
To modify the Windows `.env` file, do the following:
1. Create or edit `%APPDATA%\com.LangflowDesktop\data\.env`.
2. Add your Langflow environment variables, for example:
```text
LANGFLOW_LOG_LEVEL=info
LANGFLOW_DOCLING=true
```
3. Save the file.
4. Restart Langflow Desktop.
</TabItem>
<TabItem value="windows-user-vars" label="Windows user environment variables">
Windows supports two sources for Langflow Desktop environment variables: a Langflow application `.env` file, and Windows user environment variables.
The `.env` file at `%APPDATA%\com.LangflowDesktop\data\.env` is the recommended approach, but
Windows user variables are useful for single-sourcing API keys between Langflow and other Windows applications.
If the same variable is defined in both the Langflow application `.env` file and as a Windows user environment variable, the `.env` file takes precedence.
To modify the Windows user environment variables, do the following:
1. Press <kbd>Win + R</kbd>, enter `sysdm.cpl`, and then press <kbd>Enter</kbd>.
2. Click the **Advanced** tab, and then click **Environment Variables**.
3. In **User variables**, click **New**.
4. Enter the variable name, such as `OPENAI_API_KEY`, and its value.
5. Click **OK**, and then **restart Langflow Desktop**.
</TabItem>
</Tabs>
## Supported environment variables {#supported-variables}
The following sections provide information about specific Langflow environment variables.
### Authentication and security
See [API keys and authentication](/api-keys-and-authentication).
### Global variables
For information about the relationship between Langflow global variables and environment variables, as well as environment variables that control handling of global variables, see [Global variables](/configuration-global-variables).
### Logs {#logging}
See [Configure log options](/logging#log-storage).
### MCP servers {#mcp}
See [Use Langflow as an MCP server](/mcp-server).
### Multi-worker deployments
For multi-worker tuning—including the Redis job queue and Gunicorn worker settings—see [Deploy Langflow with multiple workers](./deployment-multi-worker).
### Monitoring and metrics
For environment variables for specific monitoring service providers, see the Langflow monitoring integration guides, such as [Langfuse](/integrations-langfuse) and [Best practices for Langflow on Kubernetes](/deployment-prod-best-practices).
### Server
The following environment variables set base Langflow server configuration, such as where the server is hosted, required files for SSL encryption, and the deployment type (frontend and backend, backend-only, development mode).
| Variable | Format | Default | Description |
|----------|--------|---------|-------------|
| `LANGFLOW_HOST` | String | `localhost` | The host on which the Langflow server will run. |
| `LANGFLOW_PORT` | Integer | `7860` | The port on which the Langflow server runs. The server automatically selects a free port if the specified port is in use. |
| `LANGFLOW_BACKEND_ONLY` | Boolean | `False` | Run only the Langflow backend service (no frontend). |
| `LANGFLOW_DEV` | Boolean | `False` | Whether to run Langflow in development mode (may contain bugs). |
| `LANGFLOW_OPEN_BROWSER` | Boolean | `False` | Open the system web browser on startup. |
| `LANGFLOW_HEALTH_CHECK_MAX_RETRIES` | Integer | `5` | Set the maximum number of retries for Langflow's server status health checks. |
| `LANGFLOW_WORKERS` | Integer | `1` | Number of worker processes. See [Deploy Langflow with multiple workers](./deployment-multi-worker#recommended-gunicorn-settings). |
| `LANGFLOW_WORKER_TIMEOUT` | Integer | `300` | Worker timeout in seconds. See [Deploy Langflow with multiple workers](./deployment-multi-worker#recommended-gunicorn-settings). |
| `LANGFLOW_GUNICORN_PRELOAD` | Boolean | `False` | Enables Gunicorn `preload_app`. Non-Windows only. See [Deploy Langflow with multiple workers](./deployment-multi-worker#recommended-gunicorn-settings). |
| `LANGFLOW_JOB_QUEUE_TYPE` | String | `asyncio` | Job queue backend. Use `redis` for multi-worker deployments. See [Deploy Langflow with multiple workers](./deployment-multi-worker#configuration-reference). |
| `LANGFLOW_SSL_CERT_FILE` | String | Not set | Path to the SSL certificate file for enabling HTTPS on the Langflow web server. This is separate from [database SSL connections](/configuration-custom-database#connect-langflow-to-a-local-postgresql-database). |
| `LANGFLOW_SSL_KEY_FILE` | String | Not set | Path to the SSL key file for enabling HTTPS on the Langflow web server. This is separate from [database SSL connections](/configuration-custom-database#connect-langflow-to-a-local-postgresql-database). |
| `LANGFLOW_DEACTIVATE_TRACING` | Boolean | `False` | Deactivate tracing functionality. |
| `LANGFLOW_CELERY_ENABLED` | Boolean | `False` | Enable Celery for distributed task processing. |
| `LANGFLOW_ALEMBIC_LOG_TO_STDOUT` | Boolean | `False` | Whether to log Alembic database migration output to stdout instead of a log file. If `true`, Alembic logs to `stdout` and the default log file is ignored. |
### Storage
For file storage environment variables, see [File storage environment variables](/concepts-file-management#file-storage-environment-variables).
For database environment variables, including PostgreSQL configuration, see [Memory management options](/memory#configure-external-memory).
### Telemetry
See [Telemetry](/contributing-telemetry).
### Visual editor and Playground behavior
| Variable | Format | Default | Description |
|----------|--------|---------|-------------|
| `LANGFLOW_AUTO_SAVING` | Boolean | `True` | Whether to automatically save the current flow draft. Auto-save only updates the live draft, and doesn't create [saved flow versions](/concepts-flows#save-and-restore-flow-versions). |
| `LANGFLOW_AUTO_SAVING_INTERVAL` | Integer | `1000` | Set the auto-save interval in milliseconds if `LANGFLOW_AUTO_SAVING=True`. |
| `LANGFLOW_BUNDLE_URLS` | List[String] | `[]` | A list of URLs from which to load custom bundles. Supports GitHub URLs. If `LANGFLOW_AUTO_LOGIN=True`, flows from these bundles are loaded into the database. |
| `LANGFLOW_COMPONENTS_PATH` | String | Not set | Path to a directory containing custom components. Typically used if you have local custom components or you are building a Docker image with custom components. |
| `LANGFLOW_COMPONENTS_INDEX_PATH` | String | Not set | File path or URL (`http://` or `https://`) to a prebuilt component index JSON file used to populate built-in components in the visual editor. When not set, Langflow uses the included index. Useful for supplying a curated component index, for example in airgapped deployments. For more information, see [Block custom components](../Deployment/deployment-block-custom-components.mdx). |
| `LANGFLOW_ALLOW_CUSTOM_COMPONENTS` | Boolean | `True` | If `false`, disables custom components and in-editor editing of component code. This feature is in beta. For more information, see [Block custom components](../Deployment/deployment-block-custom-components.mdx). |
| `LANGFLOW_ALLOW_COMPONENTS_PATHS_OVERRIDE` | Boolean | `True` | When `false` alongside `LANGFLOW_ALLOW_CUSTOM_COMPONENTS=false`, components contributed by `LANGFLOW_COMPONENTS_PATH` and `LANGFLOW_COMPONENTS_INDEX_PATH` no longer bypass the block. Has no effect when `LANGFLOW_ALLOW_CUSTOM_COMPONENTS=true`. For more information, see [Block custom components](../Deployment/deployment-block-custom-components.mdx). |
| `LANGFLOW_LOAD_FLOWS_PATH` | String | Not set | Path to a directory containing flow JSON files to be loaded on startup. Typically used when creating a Docker image with prepackaged flows. Requires `LANGFLOW_AUTO_LOGIN=True`. |
| `LANGFLOW_LOAD_FLOWS_OVERWRITE_ON_NAME_MATCH` | Boolean | `False` | When a flow file in `LANGFLOW_LOAD_FLOWS_PATH` shares a name with an existing DB row but has a different `id`, controls whether to overwrite the existing row. `False` (default) skips with a warning so UI edits are preserved on restart when file UUIDs regenerate. Set to `True` to opt into prepackaged-flows-are-source-of-truth semantics, typically for CI/CD pipelines. |
| `LANGFLOW_CREATE_STARTER_PROJECTS` | Boolean | `True` | Whether to create templates during initialization. If `false`, Langflow doesn't create templates, and `LANGFLOW_UPDATE_STARTER_PROJECTS` is treated as `false`. |
| `LANGFLOW_UPDATE_STARTER_PROJECTS` | Boolean | `True` | Whether to update templates with the latest component versions when initializing after an upgrade. |
| `LANGFLOW_LAZY_LOAD_COMPONENTS` | Boolean | `False` | If `true`, Langflow only partially loads components at startup and fully loads them on demand. This significantly reduces startup time but can cause a slight delay when a component is first used. |
| `LANGFLOW_EVENT_DELIVERY` | String | `streaming` | How to deliver build events to the frontend: `polling`, `streaming` or `direct`. |
| `LANGFLOW_FRONTEND_PATH` | String | `./frontend` | Path to the frontend directory containing build files. For development purposes only when you need to serve specific frontend code. |
| `LANGFLOW_FS_TOOL_BASE_DIR` | String | `~/.langflow/fs_tool/fs_sandbox` | Base directory for the [**File System** component](../Components/file-system.mdx) sandbox. All agent file operations are confined to this directory. |
| `LANGFLOW_MAX_ITEMS_LENGTH` | Integer | `100` | Maximum number of items to store and display in the visual editor. Lists longer than this will be truncated when displayed in the visual editor. Doesn't affect outputs or data passed between components. |
| `LANGFLOW_MAX_TEXT_LENGTH` | Integer | `1000` | Maximum number of characters to store and display in the visual editor. Responses longer than this will be truncated when displayed in the visual editor. Doesn't truncate outputs or responses passed between components. |
| `LANGFLOW_MAX_TRANSACTIONS_TO_KEEP` | Integer | `3000` | Maximum number of flow transaction events to keep in the database. |
| `LANGFLOW_MAX_VERTEX_BUILDS_TO_KEEP` | Integer | `3000` | Maximum number of vertex builds to keep in the database. Relates to [Playground](/concepts-playground) functionality. |
| `LANGFLOW_MAX_VERTEX_BUILDS_PER_VERTEX` | Integer | `2` | Maximum number of builds to keep per vertex. Older builds are deleted. Relates to [Playground](/concepts-playground) functionality. |
| `LANGFLOW_PUBLIC_FLOW_CLEANUP_INTERVAL` | Integer | `3600` | The interval in seconds at which data for [shared Playground](/concepts-playground#share-a-flows-playground) flows are cleaned up. Default: 3600 seconds (1 hour). Minimum: 600 seconds (10 minutes). |
| `LANGFLOW_PUBLIC_FLOW_EXPIRATION` | Integer | `86400` | The time in seconds after which a [shared Playground](/concepts-playground#share-a-flows-playground) flow is considered expired and eligible for cleanup. Default: 86400 seconds (24 hours). Minimum: 600 seconds (10 minutes). |
### Hide UI elements with embedded mode {#embedded-mode}
When you embed the Langflow visual editor in another application, such as an iframe within a host portal, you can hide UI elements that are usually visible in the visual editor.
The embedded mode environment variables control which UI elements appear in the visual editor.
Embedded mode controls UI visibility only, and does not block API endpoints or deploy Langflow.
Embedded mode is distinct from the [embedded chat widget](/concepts-publish#embedded-chat-widget), which embeds a single flow's chat UI in a website.
When `LANGFLOW_EMBEDDED_MODE=true`, Langflow hides the following buttons in the UI:
* **Logout**
* **New project**
* **New flow**
* **Starter projects**
You can hide individual elements without enabling the umbrella flag.
| Variable | Format | Default | Description |
|----------|--------|---------|-------------|
| `LANGFLOW_EMBEDDED_MODE` | Boolean | `False` | Umbrella flag for embedded or iframe deployments. When `true`, hides standalone UI elements: logout, new project, new flow, and starter projects. Individual hide flags can also be set without enabling this flag. |
| `LANGFLOW_HIDE_LOGOUT_BUTTON` | Boolean | `False` | If `true`, hides the logout button in the account menu. Automatically enabled when `LANGFLOW_EMBEDDED_MODE=true`. |
| `LANGFLOW_HIDE_NEW_PROJECT_BUTTON` | Boolean | `False` | If `true`, hides the new project/folder button in the sidebar. Automatically enabled when `LANGFLOW_EMBEDDED_MODE=true`. |
| `LANGFLOW_HIDE_NEW_FLOW_BUTTON` | Boolean | `False` | If `true`, hides the new flow button in the header. Automatically enabled when `LANGFLOW_EMBEDDED_MODE=true`. |
| `LANGFLOW_HIDE_STARTER_PROJECTS` | Boolean | `False` | If `true`, hides the starter projects tab in the templates modal. Does not affect database seeding of starter projects. Automatically enabled when `LANGFLOW_EMBEDDED_MODE=true`. |
| `LANGFLOW_HIDE_GETTING_STARTED_PROGRESS` | Boolean | `False` | If `true`, hides the getting-started onboarding progress UI. Not automatically enabled when `LANGFLOW_EMBEDDED_MODE=true`. |