FalkorDB Browser
FalkorDB Browser is a web-based GUI for visualizing nodes, relationships, and running Cypher queries against the GospeLib graph database.
| URL | http://localhost:3004 |
| Port | 3004 |
| Image | falkordb/falkordb-browser:latest |
| Profile | observability |
Starting FalkorDB Browser
FalkorDB Browser runs under the observability Docker Compose profile. It is not started by default.
# Start the full observability stack (Grafana, Alloy, Loki, Prometheus, FalkorDB Browser, etc.)
pnpm infra:observability
# Or start it manually with docker compose
docker compose -f infra/docker/compose.yml -f infra/docker/compose.dev.yml \
--profile observability up -d
The browser waits for FalkorDB (port 6379) to be healthy before starting.
Connecting to the Graph
Once FalkorDB Browser is running at http://localhost:3004:
- Open the browser and you should see a connection/login form.
- Enter the connection details:
- Host:
falkordb(the Docker service name — notlocalhost) - Port:
6379 - Username: (leave blank)
- Password: (leave blank)
- Host:
- After connecting, select the
gospelibgraph from the graph dropdown.
falkordb, not localhostFalkorDB Browser runs inside a Docker container. From inside the container, localhost refers to the container itself — not your host machine. You must use the Docker Compose service name falkordb as the host. Using localhost will fail with "Invalid credentials please recheck username and password."
The local dev FalkorDB instance has no requirepass set. Leave username and password empty. The NEXTAUTH_SECRET in the compose file is for the browser app's own session management, not for database access.
Useful Cypher Queries
Count all nodes by label
MATCH (n)
RETURN labels(n)[0] AS label, count(n) AS count
ORDER BY count DESC
Browse passages for a book
MATCH (p:Passage)
WHERE p.book_id = 'gen'
RETURN p.id, p.chapter, p.verse, LEFT(p.text, 80) AS preview
ORDER BY p.chapter, p.verse
LIMIT 50
Explore a passage's full subgraph
MATCH (p:Passage {id: 'gen.1.1'})-[r]-(connected)
RETURN p, r, connected
Find cross-references for a passage
MATCH (p:Passage {id: 'gen.1.1'})-[:CROSS_REF]->(ref:Passage)
RETURN ref.id, ref.book_id, ref.chapter, ref.verse, LEFT(ref.text, 80) AS preview
Visualize a topic and its cited passages
MATCH (t:IndexTopic {id: 'tg:faith'})-[:CITES]->(p:Passage)
RETURN t, p
LIMIT 25
Inspect interlinear word data
MATCH (p:Passage {id: 'gen.1.1'})-[:HAS_WORD]->(w:WordAlignment)-[:DEFINED_BY]->(l:LexiconEntry)
RETURN w.order, w.token, w.gloss, l.strongs_id, l.lemma
ORDER BY w.order
Graph statistics summary
CALL db.labels()
CALL db.relationshipTypes()
Verifying Ingest Results
After running the ingest pipeline, use FalkorDB Browser to verify the data loaded correctly:
- Run the node count query above — compare counts against expected totals.
- Pick a few passages and check their cross-references and word alignments.
- Verify edge types exist with
CALL db.relationshipTypes().
Troubleshooting
| Problem | Solution |
|---|---|
| "Invalid credentials" on login | Use falkordb as the host, not localhost — the browser runs inside Docker and can't reach the host network at localhost |
| Browser won't start | Check that FalkorDB is healthy: docker exec docker-falkordb-1 redis-cli PING |
| "No graphs found" | Run the ingest pipeline first — the gospelib graph is created during ingest |
| Connection refused on 3004 | Ensure you started with --profile observability |
| Slow queries | FalkorDB Browser has no query timeout — avoid unbounded MATCH (n)-[r]-(m) without LIMIT |
Related Pages
- FalkorDB Graph Model — Node types, edge types, and schema families
- Running Ingest — Loading data into the graph
- Web Interfaces — All browser-based GUIs in the dev stack
- Port Map — Quick-reference port table