mrkeyoor.com_
Sat 17 Oct 13:32 UTC
Self-Hostedevaluationupdated 08 Oct 2026

open-glean review

Open Glean is a self-hostable Next.js workspace for searching Hydra DB data, asking cited questions, and running multi-step research. It provides the interface, model connection, chat history, and connector controls, but Hydra DB remains the default retrieval service behind it.

+12stars / 7d
Verdict

Our Open Glean run passed all 250 tests and built cleanly, but npm audit found 8 high-severity vulnerabilities in a 755-package, 661 MB install. It is a credible front end for teams already committed to Hydra DB, especially when cited retrieval and Deep Research fit the job. Do not mistake self-hosting the Next.js app for owning the entire search stack, and do not expose a shared-key deployment without adding real authentication.

We ran it

Lab card: what happened when we ran open-gleanScreenshot of open-glean (hydradb.com)
Install✓ · 46s755 packages · 661 MB
Build✓ · 46s
Tests✓ · 13s250 passed · 0 failed of 250 (vitest)
Known vulns80 critical · 8 high · 0 moderate · 0 low (npm audit)
Repo241 files~24,465 lines of source · 2.9 MB · 1 CI workflows · Dockerfile

Answers from our run

Does open-glean build from source?

Dependencies installed in 46 seconds (755 packages), and the build succeeded in 46 seconds. We cloned commit 6d5b1ae into a clean Debian container with 3 CPUs and no project-specific setup.

Do open-glean's tests pass?

Yes. The project's own test command finished in 13 seconds and reported 250 passed, 0 failed (vitest).

Does open-glean have known vulnerabilities in its dependencies?

npm audit flagged 8 known advisories in the dependency tree at the time of our run.

Who should not use open-glean?

Buyers seeking a standalone open-source search stack: the Next.js server proxies retrieval through @hydradb/sdk to Hydra DB by default.

What are the alternatives to open-glean?

Onyx, Khoj, AnythingLLM. Our Open Glean run passed all 250 tests and built cleanly, but npm audit found 8 high-severity vulnerabilities in a 755-package, 661 MB install.

Setup3/5Green build, but 755 packages and several external services
Docs5/5Credentials, key handling, Docker, fallbacks, and limits are explicit
Community3/51,580 stars and 6 open PRs on a three-week-old repository
Maturity3/5250 tests pass, but 8 high advisories and no releases remain

Who it’s for

Teams already using Hydra DB that want an Apache-licensed search and research interface.
Developers who want cited answers over files, notes, webpages, and connector-synced data.
Operators prepared to manage a session secret, Hydra credentials, an LLM endpoint, optional MongoDB, and access control around the app.

Who it’s NOT for

Buyers seeking a standalone open-source search stack: the Next.js server proxies retrieval through @hydradb/sdk to Hydra DB by default.
Public deployments expecting built-in user authentication: the security policy says its anonymous browser subject is not a person, and a shared Hydra key serves every visitor unless you add access control.
Security-gated teams that require a clean dependency audit: our npm audit found 8 high-severity vulnerabilities.
Operators needing versioned backports: there are no GitHub releases, and the security policy says fixes land only on main.
Cost-sensitive research users: Deep Research runs many retrieval and model calls, with 3 concurrent runs allowed per instance by default.

Setup reality

Our Node 22 sandbox installed commit 6d5b1ae in 46 seconds, adding 755 packages and using 661 MB. The build passed in 46 seconds, and all 250 Vitest cases passed in 13 seconds. Npm audit reported 8 known vulnerabilities, all high severity.

Production needs a 16-character-or-longer session secret and a Hydra DB key. Answer generation needs an OpenRouter or other OpenAI-compatible model key. MongoDB is optional for server-side chat persistence; without it, the app falls back to browser localStorage.

The Dockerfile runs a standalone Next.js image as non-root, but self-hosting the UI does not self-host Hydra retrieval. Shared-key deployments need their own access control. Private local-model URLs are blocked unless explicitly enabled, and Deep Research can multiply provider calls and cost.

The 24,465-line app is still a Hydra DB client

Open Glean is a substantial interface, not a complete search backend. The measured checkout contained 241 files and about 24,465 lines of source. It can scope queries across collections, stream cited answers, show a knowledge graph, manage connector syncs, and run a research plan as a directed graph of sub-questions. The user experience sits in this Apache-2.0 repository.

Retrieval goes through the official @hydradb/sdk, which points to Hydra DB by default. A self-hosted Open Glean container still needs a Hydra key and reaches that service unless you configure another compatible Hydra base URL. Package version 0.1.0 is therefore best understood as an open client and orchestration layer around a separate data platform, rather than a drop-in replacement for hosted enterprise search.

What happened when we ran it

Our unprivileged Node 22 sandbox installed commit 6d5b1ae in 46 seconds. Npm added 755 packages and used 661 MB on disk. The Next.js build completed in another 46 seconds. The checkout also included 1 CI workflow and a Dockerfile, which is a better starting point for repeatable deployment than a README-only container recipe.

Vitest finished in 13 seconds with 250 passed and 0 failed. Npm audit reported 8 known vulnerabilities: 0 critical, 8 high, 0 moderate, and 0 low. The supplied measurement does not name the affected packages or exploit paths, so this review will not guess. A production owner should reproduce the audit against the lockfile, trace each advisory to reachable code, and decide whether mitigation or an upgrade is available.

A 16-character secret protects API keys, not user identity

Hydra and model keys entered through settings are encrypted into an httpOnly cookie with AES-256-GCM. The required OPEN_GLEAN_SESSION_SECRET must be at least 16 characters. Stored keys are pinned to the endpoint they arrived with, which prevents a caller from pairing a saved secret with an attacker-controlled host. Private and loopback LLM URLs are denied unless an operator turns them on.

The security policy draws a separate boundary around identity. An anonymous subject distinguishes 1 browser profile from another, but it is not authentication. Anyone using the same profile gets the same chats. If HYDRA_API_KEY is configured at deployment level, every visitor uses that key. The project explicitly tells operators to place such a deployment behind their own access control.

Three concurrent research requests can fan out quickly

Deep Research plans sub-questions, executes each level in parallel, writes branch findings, deduplicates sources, and produces one cited answer. The default allows 3 concurrent research requests per instance. The README warns that each uses many model and retrieval calls. This mode is useful when one search cannot answer the question, but it needs spending limits, provider quotas, cancellation, and concurrency chosen for your workload.

Transient provider failures are still being worked through. Open pull request 8 says one 429 or 503 can fail an answer or a research step, then proposes bounded retries before any streamed text has been read. Because that change remained open when checked, it should not be described as current behavior. Test rate limits and partial-stream failure against the providers you intend to pay.

MongoDB is optional, while persistence behavior changes without it

Open Glean stores conversations in MongoDB when the database is reachable. Without it, the app falls back to localStorage and shows a banner. That is convenient for one browser, but it changes backup, sharing, retention, and device access. DocumentDB users need a standard MongoDB connection string or the Lambda proxy because the documented IAM database-authentication path cannot authenticate to DocumentDB.

Answer generation is another optional layer with a hard boundary. Search can work without an LLM, while written answers need an OpenRouter or OpenAI-compatible model and have no built-in default. Web search citations come from the model provider's plugin. A 3-system deployment can therefore involve Hydra DB for retrieval, a model provider for synthesis, and MongoDB for shared chat persistence.

The October 6 security update has no versioned release

GitHub showed 1,580 stars, 6 open issues and pull requests, and a last push on October 6, 2026. All 6 open items returned by the API were pull requests. The latest merged change upgraded Next.js for a September security release. The repository was created on September 17 and has 0 GitHub releases, while its security policy says fixes land on main without backports.

Those dates describe an active young project, not a settled distribution. The 250 passing tests cover URL safety, outbound fetching, rendered-answer attacks, and application behavior well enough to justify a trial. The 8 high audit findings and shared-key access model block a casual public rollout. Open Glean makes the most sense when Hydra DB is already an accepted dependency and an operator can own the remaining security boundary.

Alternatives

ProjectWhat it isPick it when
Onyx gh↗An open-source AI search and chat platform with connectors and enterprise controls.pick this instead when you want the search platform and connector layer in one larger deployment.
KhojA self-hostable personal knowledge assistant with document, web, agent, and research features.pick this instead when a personal second brain and local-model options matter more than Hydra DB integration.
AnythingLLM gh↗A local-first workspace for documents, models, and agent tools.pick this instead when you want a packaged local workspace without adopting Hydra DB as the retrieval service.

What people are saying

  1. [velocity-scout] hydra-db/open-glean

Sources

  1. Open Glean README
  2. Open Glean security policy
  3. Open pull request for transient LLM retries
  4. Next.js security update commit

More self-hosted reviews

playport · edge-smart-doh · Comma · ProsperoEden · zulu · node_exporter · the whole board →