Skip to content

Conversation

@Naseem77
Copy link
Contributor

@Naseem77 Naseem77 commented Dec 28, 2025

  • Remove --system flag to install packages to venv where app runs
  • Add --no-sync to CMD to preserve build-time installations
  • Make Neo4j settings optional, add FalkorDB settings
  • Add conditional driver initialization based on db_backend

Summary

1. Dockerfile (2 changes)
Change 1: Removed --system flag

before: uv pip install --system --upgrade "graphiti-core[falkordb]"
after: uv pip install --upgrade "graphiti-core[falkordb]"

  • --system installs to system Python (/usr/local/lib/python3.12/)
  • Without --system, installs to venv (/app/.venv/lib/python3.12/)
  • App runs with venv in PATH, so packages must be in venv


Change 2: Added --no-sync to CMD

before: CMD ["uv", "run", "uvicorn", ...]
after: CMD ["uv", "run", "--no-sync", "uvicorn", ...]

  • uv run normally re-syncs venv from lockfile on every container start
  • --no-sync skips re-sync, preserving build-time installations
  • Without this, FalkorDB packages installed at build would be overwritten at runtime



2. server/graph_service/config.py
Made Neo4j fields optional, added FalkorDB fields

  • Allows settings to load without Neo4j credentials when using FalkorDB
  • db_backend determines which database driver to use
  • Backward compatible: Neo4j remains default


3. server/graph_service/zep_graphiti.py
Updated init to accept optional parameters

  • Accepts optional Neo4j parameters (matching config.py)
  • **kwargs captures graph_driver parameter for FalkorDB


Added conditional driver initialization
if settings.db_backend == 'falkordb':
driver = FalkorDriver(host=..., port=..., database=...)
client = ZepGraphiti(graph_driver=driver)
else:
client = ZepGraphiti(uri=..., user=..., password=...)


  • Checks db_backend to determine which database to use
  • Creates FalkorDriver for FalkorDB, uses Neo4j parameters otherwise
  • FalkorDriver imported locally only when needed

Type of Change

  • Bug fix
  • New feature
  • Performance improvement
  • Documentation/Tests

Objective

For new features and performance improvements: Clearly describe the objective and rationale for this change.

Testing

  • Unit tests added/updated
  • Integration tests added/updated
  • All existing tests pass

Breaking Changes

  • This PR contains breaking changes

If this is a breaking change, describe:

  • What functionality is affected
  • Migration path for existing users

Checklist

  • Code follows project style guidelines (make lint passes)
  • Self-review completed
  • Documentation updated where necessary
  • No secrets or sensitive information committed

Related Issues

Closes #749

- Remove --system flag to install packages to venv where app runs
- Add --no-sync to CMD to preserve build-time installations
- Make Neo4j settings optional, add FalkorDB settings
- Add conditional driver initialization based on db_backend
@Naseem77 Naseem77 force-pushed the fix/falkordb-docker-compose-profile-startup-errors branch from 97c7d5c to 418fa20 Compare December 28, 2025 17:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG] # Official Docker Image Doesn't Support FalkorDB - Requires Neo4j Only

1 participant