LensHub
Get startedlenshub.ai
Self-hosting

Requirements and sizing

What to run it on.

Minimum

CPU4 cores
RAM8 GB
Disk20 GB, plus room for your content
SoftwareDocker with Compose v2, or Kubernetes

That is enough for a small team and a few connectors.

Sizing up

The two things that grow are the database and the indexing work.

ContentRAMDiskNotes
Small — a few repositories, a wiki8 GB20 GBDefaults are fine
Medium — most of a company16 GB100 GBGive PostgreSQL more memory
Large — hundreds of thousands of documents32 GB+250 GB+Consider a GPU for indexing

The first sync is the heaviest moment. Afterwards, only changes are processed and load drops sharply.

GPU

Optional. Indexing runs on CPU everywhere and works fine. On a large corpus a single mid-range GPU makes the initial sync substantially faster. Routine syncing rarely needs one.

Putting it on a network

The quickstart binds to 127.0.0.1, which is correct for one machine and wrong for anything else. Before colleagues or agents connect:

  1. Put it behind a reverse proxy with TLS. Agents send API keys on every request; those must not cross a network in plain text.
  2. Set BASE_URL to the public address. Agent sign-in breaks otherwise — the URLs LensHub advertises must be the ones clients actually reach.
  3. Set COOKIE_SECURE=true, so browser sessions are HTTPS-only.
  4. Set CORS_ORIGIN to your web address.
  5. Set TRUST_PROXY_HEADERS=true only if your proxy overwrites X-Forwarded-For. If it appends instead, leave this off — otherwise clients can spoof their address and evade rate limiting.

Air-gapped

LensHub can run with no internet access:

  • Mirror the container images to a registry you can reach
  • Indexing is already local and needs no external calls
  • Point chat at a self-hosted model

Connectors still need to reach whatever they sync from.

On this page