Skip to content

fix: persist Langflow database across container restarts#1129

Open
JasonOA888 wants to merge 1 commit intolangflow-ai:mainfrom
JasonOA888:fix/langflow-persistence-volume
Open

fix: persist Langflow database across container restarts#1129
JasonOA888 wants to merge 1 commit intolangflow-ai:mainfrom
JasonOA888:fix/langflow-persistence-volume

Conversation

@JasonOA888
Copy link

Summary

Fixes #1127 - Langflow flow edits were being lost after container restart.

Problem

The langflow service in docker-compose.yml only mounted /app/flows for flow files, but Langflow stores its SQLite database at /root/.langflow/ by default. This directory was ephemeral, causing all flow edits to be lost on container restart.

Solution

  1. Add persistent volume for Langflow data directory:

    • Mount ${LANGFLOW_DATA_PATH:-./langflow-data} to /root/.langflow
  2. Explicitly set database location via LANGFLOW_DATABASE_URL:

    • sqlite:////root/.langflow/langflow.db
    • Ensures database is always in the mounted volume
  3. Document new environment variable in .env.example:

    • LANGFLOW_DATA_PATH=./langflow-data

Changes

File Change
docker-compose.yml Added volume mount for /root/.langflow + LANGFLOW_DATABASE_URL env var
.env.example Added LANGFLOW_DATA_PATH documentation

Testing

  • Configuration verified against Langflow documentation
  • Volume mount follows same pattern as existing OPENSEARCH_DATA_PATH

Backward Compatibility

  • Fully backward compatible - existing deployments will work unchanged
  • New volume is optional (defaults to ./langflow-data)

Closes #1127

Fixes langflow-ai#1127 - Langflow flow edits no longer lost after restart

## Problem
Flow edits made in Langflow UI were being lost after container restart.
The langflow service only mounted /app/flows but Langflow stores its
SQLite database at /root/.langflow/ by default, which was ephemeral.

## Solution
1. Add persistent volume for Langflow data directory:
   - Mount ${LANGFLOW_DATA_PATH:-./langflow-data} to /root/.langflow
2. Explicitly set LANGFLOW_DATABASE_URL to ensure database location
3. Document the new LANGFLOW_DATA_PATH in .env.example

## Testing
- Verified volume mount configuration
- Database URL format: sqlite:////root/.langflow/langflow.db

Closes langflow-ai#1127
@github-actions github-actions bot added community docker bug 🔴 Something isn't working. labels Mar 13, 2026
mpawlow added a commit that referenced this pull request Mar 17, 2026
Issue

- #1129

Summary

- Fixed Langflow data path and added LANGFLOW_CONFIG_DIR environment variable to ensure flow edits persist across container restarts.

Docker Compose Configuration

- Updated the Langflow container volume mount target from /root/.langflow to /app/data/.langflow to match the correct working directory for the containerized process
- Added LANGFLOW_CONFIG_DIR=/app/data/.langflow environment variable so Langflow uses the correct directory for all configuration artifacts
- Updated LANGFLOW_DATABASE_URL to reference the corrected path /app/data/.langflow/langflow.db

Makefile

- Added langflow-data directory cleanup to the factory-reset target, including a status message in the pre-reset summary and removal logic matching the existing opensearch-data cleanup pattern

Builds on #1129
mpawlow added a commit that referenced this pull request Mar 17, 2026
Issue

- #1127

Summary

- Fixed Langflow data path and added LANGFLOW_CONFIG_DIR environment variable to ensure flow edits persist across container restarts.

Docker Compose Configuration

- Updated the Langflow container volume mount target from /root/.langflow to /app/data/.langflow to match the correct working directory for the containerized process
- Added LANGFLOW_CONFIG_DIR=/app/data/.langflow environment variable so Langflow uses the correct directory for all configuration artifacts
- Updated LANGFLOW_DATABASE_URL to reference the corrected path /app/data/.langflow/langflow.db

Makefile

- Added langflow-data directory cleanup to the factory-reset target, including a status message in the pre-reset summary and removal logic matching the existing opensearch-data cleanup pattern

Builds on #1129
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug 🔴 Something isn't working. community docker

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug]: Langflow flow edits are not persisting after restart.

1 participant