Skip to content

Conversation

Copy link
Contributor

Copilot AI commented Nov 16, 2025

Documentation: Docker and Docker Compose Usage for FalkorDB ✅

Successfully completed comprehensive documentation for running FalkorDB with Docker and Docker Compose.

Completed Tasks

  • Create a new page under operations/ that documents how to run FalkorDB with Docker and Docker Compose
  • Include examples for both falkordb/falkordb (with browser) and falkordb/falkordb-server (production, no browser) images
  • Document docker-compose.yml configurations for running FalkorDB server and browser together
  • Include persistence, networking, and configuration examples
  • Update the operations/index.md to add the new documentation page
  • Follow the structure and style of existing operations documentation
  • Ensure consistency with existing Docker examples in the docs
  • Pass spell check validation
  • Run code review (documentation only, no code changes)
  • Run CodeQL security check (not applicable for markdown)

Latest Changes (addressing PR feedback)

  • Added falkordb/falkordb-browser as option 3 in Docker Images section
  • Added reference to downloadable docker-compose.yml file from FalkorDB repository
  • Removed "Connecting to FalkorDB" section as requested

Documentation Summary

Created comprehensive /operations/docker.md (487 lines, 10KB) with:

  1. Docker Images Overview:
    • falkordb/falkordb (server + browser)
    • falkordb/falkordb-server (server only)
    • falkordb/falkordb-browser (browser only) ⭐ NEW
  2. Quick Start Examples: Simple Docker commands for common scenarios
  3. Docker Compose Configurations:
    • Quick start link to official docker-compose.yml ⭐ NEW
    • Basic development setup
    • Production setup with persistence
    • Separate server and browser containers
    • Complete production-ready configuration
  4. Management Section: Docker Compose commands reference
  5. Environment Variables: Detailed REDIS_ARGS and FALKORDB_ARGS documentation
  6. Data Persistence: Named volumes and bind mounts patterns
  7. Advanced Features: Health checks and networking best practices
  8. Best Practices: 7 key recommendations for production deployments
  9. Troubleshooting: Common commands for debugging
  10. Next Steps: Links to related documentation

File Changes

  1. Modified: /operations/docker.md - Added browser image, docker-compose reference, removed connection section
  2. Previously Created: /operations/docker.md - New comprehensive Docker documentation
  3. Previously Modified: /operations/index.md - Added Docker section as New just-docs theme #1, renumbered all other sections
Original prompt

This section details on the original issue you should resolve

<issue_title>Document the usage of docker-compose</issue_title>
<issue_description>Document the usage of docker-compose as an alternative way to run falkordb-server+falkordb-browser.

See: FalkorDB/FalkorDB#1373 for more details.

Add a page under operations/ focused on how to run with Docker or Docker Compose



This repo is using Opire - what does it mean? 👇
💵 Everyone can add rewards for this issue commenting /reward 100 (replace 100 with the amount).
🕵️‍♂️ If someone starts working on this issue to earn the rewards, they can comment /try to let everyone know!
🙌 And when they open the PR, they can comment /claim FalkorDB/docs#278 either in the PR description or in a PR's comment.

🪙 Also, everyone can tip any user commenting /tip 20 @gkorland (replace 20 with the amount, and @gkorland with the user to tip).

📖 If you want to learn more, check out our documentation.

Comments on the Issue (you are @copilot in this section)


💬 We'd love your input! Share your thoughts on Copilot coding agent in our 2 minute survey.

Summary by CodeRabbit

Release Notes

  • Documentation
    • Added comprehensive Docker and Docker Compose deployment guides including quick-start commands, authentication, persistence, and production configurations
    • Reorganized operational documentation with enhanced introductory content for key deployment topics

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Nov 16, 2025

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Walkthrough

The changes add comprehensive Docker and Docker Compose documentation to the operations guide. A new docker.md file provides detailed instructions for running FalkorDB with Docker, including quick-start examples, configuration options, persistence strategies, and production deployment patterns. The operations index has been updated to include the Docker section as a top-level topic and reorder existing sections accordingly.

Changes

Cohort / File(s) Summary
Docker documentation
operations/docker.md
New comprehensive guide covering Docker image usage, Docker Compose configurations, quick-start commands, authentication, custom configuration, data persistence, networking, health checks, logging, resource limits, production deployments, and troubleshooting.
Operations index
operations/index.md
Updated to add "Docker and Docker Compose" as a new top-level section with descriptive content, and re-indexed all subsequent sections accordingly.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

  • Verify Docker image names and tags are accurate
  • Confirm all Docker Compose examples contain valid YAML syntax and follow best practices
  • Validate environment variables and configuration parameters match actual FalkorDB options
  • Check consistency of examples across quick-start, development, and production sections

Poem

🐰 Hop along with Docker's grace,
From images to compose we race,
Containers spin with persistence clear,
Production-ready without a fear,
FalkorDB now dances in its place! 🐳

Pre-merge checks and finishing touches

✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely summarizes the main change: adding Docker and Docker Compose operations documentation.
Linked Issues check ✅ Passed The PR successfully implements all coding requirements from linked issue #278: comprehensive documentation on running FalkorDB with Docker and Docker Compose under operations/.
Out of Scope Changes check ✅ Passed All changes are directly in scope: new docker.md documentation file and index.md update to reference it. No unrelated modifications detected.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

Comment @coderabbitai help to get the list of available commands and usage tips.

Co-authored-by: gkorland <753206+gkorland@users.noreply.github.com>
Copilot AI changed the title [WIP] Document usage of docker-compose for FalkorDB Add Docker and Docker Compose operations documentation Nov 16, 2025
Copilot AI requested a review from gkorland November 16, 2025 10:14
@gkorland gkorland marked this pull request as ready for review November 16, 2025 10:55
Comment on lines 257 to 279
## Connecting to FalkorDB

### From the Host Machine

```bash
# Without authentication
redis-cli -h localhost -p 6379

# With authentication
redis-cli -h localhost -p 6379 -a yourpassword

# Using FalkorDB Python client
python -c "from falkordb import FalkorDB; db = FalkorDB(host='localhost', port=6379, password='yourpassword'); print('Connected!')"
```

### From Another Container

When using Docker Compose with a custom network, containers can communicate using service names:

```bash
# In another container on the same network
redis-cli -h falkordb-server -p 6379 -a yourpassword
```
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@copilot no need for this " Connecting to FalkorDB" section in this page

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed the "Connecting to FalkorDB" section and its subsections (24 lines removed). (commit b203102)

@gkorland
Copy link
Contributor

@CodeRabbit reveiew

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Nov 16, 2025

@gkorland, I'll review the changes in this PR right away.

✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

…ove connection section

Co-authored-by: gkorland <753206+gkorland@users.noreply.github.com>
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 72cd374 and ccea0d9.

📒 Files selected for processing (2)
  • operations/docker.md (1 hunks)
  • operations/index.md (1 hunks)
🧰 Additional context used
🪛 LanguageTool
operations/index.md

[grammar] ~44-~44: Use a hyphen to join words.
Context: ...form-as-a-service. Choose between single instance or cluster deployments. ## 8. ...

(QB_NEW_EN_HYPHEN)

🪛 markdownlint-cli2 (0.18.1)
operations/docker.md

402-402: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: copilot
🔇 Additional comments (4)
operations/index.md (1)

18-20: Verify cross-link and section description for Docker documentation.

The new Docker section is properly positioned as the first operations topic, and the description adequately summarizes the content. The link structure looks correct.

operations/docker.md (3)

257-279: Resolve past review comment: "Connecting to FalkorDB" section flagged for removal.

A past review comment indicated that the "Connecting to FalkorDB" section should be removed from this page. However, this section (lines 257-279) is still present in the file. Please confirm whether this section should be:

  1. Deleted entirely, or
  2. Moved to another documentation page, or
  3. Retained with justification for why it remains

502-503: Verify link path consistency for Kubernetes documentation.

Line 503 references /operations/k8s-support (with hyphen), but operations/index.md line 34 references /operations/k8s_support (with underscore). Ensure the link path is consistent with the actual file location.


1-11: Comprehensive documentation structure looks sound.

The file provides well-organized, practical guidance for Docker and Docker Compose operations. Sections are logically ordered from simple quick-start to advanced production configurations. Once the flagged unresolved review comments are addressed, this documentation should effectively serve users at all levels.

Comment on lines +29 to +60
## Quick Start with Docker

### Running with Browser (Development)

```bash
docker run -p 6379:6379 -p 3000:3000 -it --rm falkordb/falkordb:latest
```

Access the browser at [http://localhost:3000](http://localhost:3000)

### Running Server Only (Production)

```bash
docker run -p 6379:6379 -it --rm falkordb/falkordb-server:latest
```

### Running with Authentication

```bash
docker run -p 6379:6379 -p 3000:3000 -it \
-e REDIS_ARGS="--requirepass yourpassword" \
--rm falkordb/falkordb:latest
```

### Running with Custom Configuration

```bash
docker run -p 6379:6379 -p 3000:3000 -it \
-e REDIS_ARGS="--requirepass yourpassword" \
-e FALKORDB_ARGS="THREAD_COUNT 4 TIMEOUT 5000" \
--rm falkordb/falkordb:latest
```
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

Add FalkorDB-Browser as a separate quick-start option.

A past review comment requested adding the falkordb/falkordb-browser image as a dedicated quick-start option. While the documentation mentions falkordb/falkordb-browser later (line 157), the Quick Start section should include it as a separate option alongside the existing Development and Production examples for discoverability.

Consider adding:

### Running Browser Only (Standalone)

\`\`\`bash
docker run -p 3000:3000 -e FALKORDB_URL=redis://your-falkordb-host:6379 falkordb/falkordb-browser:latest
\`\`\`

I'll verify the claims in this review comment by examining the file and confirming the Docker image details.


---

🏁 Script executed:

```shell
#!/bin/bash
# Search for operations/docker.md and verify existence and content around line 157
fd -type f -name "docker.md" | head -20

Length of output: 170





🏁 Script executed:

#!/bin/bash
# Search for docker.md file in operations directory
fd "docker.md" && echo "---" && fd "docker.md" -x wc -l

Length of output: 117


🏁 Script executed:

#!/bin/bash
# Find and display content around lines 29-60 and 157 from operations/docker.md
if [ -f "operations/docker.md" ]; then
  echo "=== Lines 29-60 ===" && sed -n '29,60p' operations/docker.md
  echo ""
  echo "=== Lines 150-165 (around line 157) ===" && sed -n '150,165p' operations/docker.md
else
  echo "File not found"
fi

Length of output: 1173



---

🌐 Web query:

```web
FalkorDB falkordb-browser Docker image environment variables configuration

💡 Result:

Key environment variables and usage for the FalkorDB Docker images (including the browser/all-in-one image):

  • REDIS_ARGS — extra arguments passed to the embedded Redis server (example: --requirepass). Use -e REDIS_ARGS="--requirepass mypass". [1]
  • FALKORDB_ARGS — FalkorDB module / server options (example: THREAD_COUNT 4). Use -e FALKORDB_ARGS="THREAD_COUNT 4" or pass module load args. [1]
  • Ports exposed by the all-in-one image: Redis 6379 and Browser UI 3000 (map with -p 6379:6379 -p 3000:3000). [1]
  • For the text-to-cypher / browser-enabled bundle (falkordb/text-to-cypher or the all-in-one image) additional env vars used by the HTTP/MCP services:
    • DEFAULT_MODEL — default AI model (e.g., "gpt-4o-mini"). [2]
    • DEFAULT_KEY — API key for the AI service. [2]
    • FALKOR_URL — FalkorDB connection URL (default falkor://127.0.0.1:6379). [2]
    • Other service-specific vars may exist (see that repo’s .env.example). [2]

Examples:

  • Run FalkorDB with password and 4 threads:
    docker run -p 6379:6379 -p 3000:3000 -e REDIS_ARGS="--requirepass falkordb" -e FALKORDB_ARGS="THREAD_COUNT 4" falkordb/falkordb:latest. [1]
  • Run text-to-cypher all-in-one with model/key:
    docker run -p 6379:6379 -p 3000:3000 -p 8080:8080 -e DEFAULT_MODEL=gpt-4o-mini -e DEFAULT_KEY=your-api-key falkordb/text-to-cypher:latest. [2]

References:
[1] FalkorDB Configuration docs (Docker examples).
[2] falkordb/text-to-cypher GitHub README (Docker env vars and .env usage).


Add falkordb/falkordb-browser as a standalone quick-start option in the Quick Start section.

The falkordb-browser image is already documented in the Docker Compose example (line 157+) but is not included in the Quick Start section (lines 29–60), which reduces discoverability for users wanting a browser-only setup with an existing FalkorDB instance.

Add the suggested option:

### Running Browser Only (Standalone)

\`\`\`bash
docker run -p 3000:3000 -e FALKORDB_URL=redis://your-falkordb-host:6379 falkordb/falkordb-browser:latest
\`\`\`

This improves Quick Start accessibility and provides a clear path for common deployment scenarios.

🤖 Prompt for AI Agents
In operations/docker.md around lines 29 to 60, the Quick Start section omits a
standalone browser-only Docker image; add a "Running Browser Only (Standalone)"
entry that shows the docker run command using the
falkordb/falkordb-browser:latest image and documents the required FALKORDB_URL
env var and port mapping (3000:3000) so users can quickly launch the browser UI
against an existing FalkorDB instance.

Comment on lines 62 to 96
## Using Docker Compose

Docker Compose provides a more flexible and maintainable way to run FalkorDB, especially when you need to configure multiple services or manage complex setups.

### Basic Docker Compose Setup

Create a `docker-compose.yml` file:

```yaml
version: '3.8'

services:
falkordb:
image: falkordb/falkordb:latest
container_name: falkordb
ports:
- "6379:6379"
- "3000:3000"
environment:
- REDIS_ARGS=--requirepass falkordb
- FALKORDB_ARGS=THREAD_COUNT 4
restart: unless-stopped
```

Start FalkorDB:

```bash
docker-compose up -d
```

Stop FalkorDB:

```bash
docker-compose down
```
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

Add reference to downloadable docker-compose templates from FalkorDB repository.

A past review comment requested adding a reference to the official docker-compose file that can be downloaded. Consider adding a note in the "Using Docker Compose" introduction pointing users to: https://github.com/FalkorDB/FalkorDB/blob/master/build/docker/docker-compose.yml

This helps users find maintained templates directly from the source repository.


I'll verify the validity of the URL mentioned in the review comment by checking if it's accessible.


---

🏁 Script executed:

```shell
#!/bin/bash
# Verify if the suggested GitHub URL is accessible
curl -s -I "https://github.com/FalkorDB/FalkorDB/blob/master/build/docker/docker-compose.yml" | head -n 1

Length of output: 11


Add reference to the official FalkorDB docker-compose template in the "Using Docker Compose" section.

The suggested URL is valid and accessible. Add a note pointing users to the maintained template at https://github.com/FalkorDB/FalkorDB/blob/master/build/docker/docker-compose.yml to help users find authoritative configuration examples directly from the source repository.

🤖 Prompt for AI Agents
In operations/docker.md around lines 62 to 96, the "Using Docker Compose"
section should reference the official FalkorDB docker-compose template; add a
short sentence after the example (or at the end of the section) pointing readers
to the maintained template URL
(https://github.com/FalkorDB/FalkorDB/blob/master/build/docker/docker-compose.yml)
so users can view the authoritative, up-to-date configuration in the source
repository.

Comment on lines +399 to +412
1. **Use Environment Variables**: Store sensitive information like passwords in `.env` files or environment variables:

Create a `.env` file:
```
FALKORDB_PASSWORD=your-secure-password
FALKORDB_THREADS=8
```

Reference in `docker-compose.yml`:
```yaml
environment:
- REDIS_ARGS=--requirepass ${FALKORDB_PASSWORD}
- FALKORDB_ARGS=THREAD_COUNT ${FALKORDB_THREADS}
```
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Add language identifier to environment file code block.

Line 402 contains a fenced code block without a language specifier. Add .env to clarify the file format.

   Create a `.env` file:
-  ```
+  \`\`\`.env
   FALKORDB_PASSWORD=your-secure-password
   FALKORDB_THREADS=8
-  ```
+  \`\`\`
🧰 Tools
🪛 markdownlint-cli2 (0.18.1)

402-402: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
In operations/docker.md around lines 399 to 412, the fenced code block showing
environment variables is missing a language specifier; update the opening fence
to use ".env" (i.e. ``` .env) so the block is clearly marked as an env file,
leaving the contents unchanged and keeping the closing fence as ```; ensure
spacing/formatting matches surrounding markdown.

Comment on lines +42 to 44
## 7. [Deploy FalkorDB on Railway](/operations/railway)

Deploy FalkorDB quickly using verified templates on Railway, a modern platform-as-a-service. Choose between single instance or cluster deployments.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Fix hyphenation in "platform-as-a-service".

The phrase should use hyphens to connect all words in a compound modifier.

-Deploy FalkorDB quickly using verified templates on Railway, a modern form-as-a-service. Choose between single instance or cluster deployments.
+Deploy FalkorDB quickly using verified templates on Railway, a modern platform-as-a-service. Choose between single instance or cluster deployments.

Committable suggestion skipped: line range outside the PR's diff.

🧰 Tools
🪛 LanguageTool

[grammar] ~44-~44: Use a hyphen to join words.
Context: ...form-as-a-service. Choose between single instance or cluster deployments. ## 8. ...

(QB_NEW_EN_HYPHEN)

🤖 Prompt for AI Agents
In operations/index.md around lines 42 to 44, the phrase describing Railway
should use hyphens as a compound modifier; replace "a modern platform as a
service" (or any variant without full hyphenation) with "a modern
platform-as-a-service" so all words are connected with hyphens when modifying
the noun.

Copy link
Contributor Author

Copilot AI commented Nov 16, 2025

Just as a heads up, I was blocked by some firewall rules while working on your feedback. Expand below for details.

Warning

Firewall rules blocked me from connecting to one or more addresses (expand for details)

I tried to connect to the following addresses, but was blocked by firewall rules:

  • esm.ubuntu.com
    • Triggering command: /usr/lib/apt/methods/https (dns block)

If you need me to access, download, or install something from one of these locations, you can either:

@gkorland gkorland merged commit 35780ba into main Nov 16, 2025
5 checks passed
@gkorland gkorland deleted the copilot/document-docker-compose-usage branch November 16, 2025 17:01
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.

Document the usage of docker-compose

2 participants