LLM observability in air-gapped networks

Air-gapped LLM observability means every Langfuse image, chart, database engine and evaluation model enters the enclave by a controlled transfer and is tested before it runs. This page explains what that changes and which platforms fit.

On this page

Why air-gapped LLM observability needs its own plan

For an AI team inside a regulated or critical-infrastructure enclave, the short answer is that self-hosted Langfuse is the default platform for tracing prompts, outputs and costs without any internet path, because its core features are available under the MIT-licensed open source version and the deployment runs on the same codebase as Langfuse Cloud. Arize Phoenix is a license-dependent alternative: its Elastic License 2.0 prohibits offering the software to third parties as a hosted or managed service, so it fits an internal deployment but must be checked against any intent to serve other organizations. For evaluation models that must also stay inside the enclave, local serving with Ollama or vLLM keeps judge models off external endpoints. Confirm each component's license terms with counsel before the design is frozen.

A connected deployment can pull images, chart updates and dependency patches on demand. An air-gapped one cannot, so the dependency stack becomes the main design problem. A self-hosted Langfuse instance runs Langfuse Web, Langfuse Worker, PostgreSQL, ClickHouse, Redis or Valkey and S3-compatible blob storage, and each of those components needs its own image, chart and version record carried across the boundary. ClickHouse in particular carries most of the data and most of the operational risk, so its version support status, backup target and Keeper topology need to be settled before the transfer process is designed. Ask the implementation partner to produce a bill of materials that lists every image digest, chart version and checksum for the target release.

Upgrade discipline is where air-gapped deployments most often drift. Langfuse applies database migrations automatically at startup within a major version, and its v3 to v4 guide requires ClickHouse 25.12 or later, PostgreSQL 15 or later and Redis 7.0 or later, so a release that is imported late can leave the enclave on an unsupported combination. Plan a fixed import calendar that matches the vendor and ClickHouse release cadence, a pre-production environment loaded with representative data, and a restore test on a spare cluster before any major upgrade. Decide in advance who signs off each imported package, since the change record for a major upgrade becomes part of the audit trail.

Which requirements shape an air-gapped LLM observability build

This table maps each requirement that shapes an air-gapped Langfuse build to its source and to what it means for the build. Rows marked as conditional apply only if the operator falls under that regulation, so check scope with counsel and the regulator before relying on them. Read the table as a checklist of decisions to settle before the first image crosses the gap.

RequirementSource and what it asksWhat it means for the build
Log retention of at least six months (conditional)EU AI Act Article 12(1) requires automatic event logging for high-risk systems over their lifetime, and Article 19(1) requires at least six months of retention unless other law says otherwiseSize ClickHouse and object storage for the full retention period, plus backup copies. Confirm which logs the system must keep and who owns the retention decision.
Software integrity for every carried package (conditional)NERC CIP-013-2 requires supply chain processes that verify software integrity and authenticity of vendor software and patchesRecord checksums or signatures for each image, Helm chart and model file imported across the boundary, and keep a transfer log that an assessor can trace.
Intermediate System and MFA for remote access (conditional, OT-adjacent)NERC CIP-005-7 requires Interactive Remote Access to pass through an Intermediate System with encryption and multi-factor authentication, and methods to detect and disable vendor sessionsRoute any vendor or partner access to the observability enclave through an intermediate host with MFA, and make session termination testable.
Enterprise license for RBAC, audit logs and maskingLangfuse license key docs list project RBAC roles, audit logs, server-side data masking, data retention policies and SCIM as features that need an Enterprise license keyDecide early whether the enclave needs these controls. If it does, budget for the license and install the key during the first offline deployment.
Core features under MITLangfuse LICENSE: MIT except the ee directories, and all core features are available in the open source versionCore tracing and evaluation can run without a license key, but access control and audit evidence may need the enterprise tier.
Stateful dependencies to mirrorLangfuse runs Web, Worker, PostgreSQL, ClickHouse, Redis or Valkey and S3-compatible storage, with ClickHouse 25.12 or later and PostgreSQL 15 or later for v4Build an inventory of every image, chart and version for each dependency, and confirm the v4 version floors before choosing the ClickHouse line.
ClickHouse replication and KeeperClickHouse documents ReplicatedMergeTree with ClickHouse Keeper, recommends at least three Keeper nodes in production, and says a recovered replica syncs from a healthy peerPlan Keeper nodes on dedicated hosts. Replication keeps data available but does not protect against human error or corruption.
Restore-tested backupsClickHouse BACKUP and RESTORE support full and incremental copies to local disk or S3-compatible storage, and the docs warn that untested backups will probably failSchedule restore tests on a spare cluster inside the enclave and record the results as evidence.
Upgrade cadence and offline importClickHouse supports the latest stable line plus a few prior lines with security updates, and Langfuse minor updates apply migrations at startupEach release must be imported and tested in a pre-production copy before promotion. Confirm the supported ClickHouse lines at the time of each upgrade.

Which platforms fit an air-gapped LLM observability stack

Four platforms cover most air-gapped LLM observability designs: a trace and evaluation store, a local model runtime for evaluators, and an offline chat interface. Each one carries a licensing or feature question that has to be settled inside the enclave before the bill of materials is frozen.

Self-hosted Langfuse as the trace store

Langfuse is the usual anchor for this stack. The core is MIT licensed, and self-hosted deployments run the same codebase as Langfuse Cloud, so the trace store stays in your enclave. The ee directories fall under a separate enterprise license, and features such as audit logs, data retention policies and server-side masking need an enterprise license key. Confirm which of those controls your review requires, and plan the air-gapped image and chart transfer around the release you choose, currently v4.63.0 (October 16, 2026).

Arize Phoenix for tracing and evaluation

Phoenix is an LLM tracing and evaluation tool under the Elastic License 2.0. That license prohibits providing the software to third parties as a hosted or managed service, but it does not by its terms stop an organization from running it inside its own enclave. Have counsel confirm that reading against your use. Ask whether you need the tracing or the evaluation features, and whether your team's instrumentation already targets OpenTelemetry, which keeps a later move between the two tools practical.

Ollama for local evaluation models

Ollama runs open-weight models on your own hardware under the MIT license, which makes it a practical runtime for judge models that score traces without any outbound calls. Evaluation quality depends on the model you load, so validate scoring against human-labeled samples before you rely on it. Confirm which model weights you can import through the enclave's approved transfer process, how their licenses apply to your use, and who signs off on each version that enters the boundary, currently v0.40.5 (October 14, 2026).

vLLM for high-throughput evaluation

vLLM is an inference and serving engine under Apache-2.0 that exposes an OpenAI-compatible endpoint. It suits evaluation workloads that score many traces in parallel, where Ollama's single-host throughput becomes the limit. Its GPU and driver requirements are heavier than Ollama's, so confirm the hardware is in the enclave before design work begins. Check that the offline documentation flag in your chosen release behaves as expected when the network has no route to external sites, currently v0.31.0 (October 5, 2026).

Open WebUI as an offline interface

Open WebUI can run entirely offline when paired with Ollama or an OpenAI-compatible API, which lets staff test prompts and inspect model behavior without leaving the enclave. Its license includes a clause that restricts altering or removing branding, with exceptions for small deployments and for written permission, so check that clause before you rebrand the interface. Confirm that the offline mode covers every feature you enable, such as web search or external tool connectors, which may still try to reach the internet.

Single VM or Kubernetes for an enclave deployment

Langfuse documents Docker Compose on a single virtual machine as a testing pattern, and it carries no high availability. The stack is still the full set of components: two application containers, Langfuse Web for the UI and APIs and Langfuse Worker for asynchronous event processing, plus PostgreSQL, ClickHouse, Redis or Valkey, and S3-compatible blob storage. All of them share one host, so a host failure stops tracing and the UI together.

  • Minimum resources: the scaling guide lists 2 CPU and 4 GiB for web, worker and PostgreSQL, 1 CPU and 1.5 GiB for Redis or Valkey, and 2 CPU and 8 GiB for ClickHouse.
  • Single failure point: one VM hosts every stateful service, so backup and restore planning matters more than on a clustered layout.
  • Offline image handling: every container image and the Compose files must be imported into the enclave before the first start.
  • Limited scaling: you cannot scale the worker on CPU load or split the web tier in this layout.
  • Best fit: a proof of concept or a short evaluation inside the enclave, not a system that holds production traces.

Before you commit, confirm with the vendor whether the Compose pattern is acceptable for your risk owner, and what it would take to move the same data to a cluster later.",

How images, charts and model weights get into the enclave

Every transfer starts with a bill of materials that lists each container image, Helm chart, database package and model file the Langfuse deployment needs, with its exact version and source. For Langfuse that list covers the Langfuse Web and Langfuse Worker images, PostgreSQL, ClickHouse, Redis or Valkey, the S3-compatible blob storage component, and any utility or exporter images referenced by the chart. Pull these from the internet side in a controlled staging zone, mirror them into a private registry inside the enclave, and keep the manifest with the transfer record. The Kubernetes offline pattern applies to the cluster itself: kubeadm config images list and kubeadm config images pull fetch control plane images in advance, and --image-repository points kubeadm init at the private registry. Confirm with the vendor which chart version pins which ClickHouse, Redis or Valkey image tags, and whether the chart can be rendered with every image reference overridden to your registry without manual edits.

Integrity checks belong before anything enters the enclave. Compute checksums for every artifact in the bill of materials, verify the publisher's signatures where they exist, and record the results beside the manifest. Re-check digests after the registry import, because a mismatch at that point usually means a copy error or a substituted tag. Treat tags such as latest as unacceptable for a reproducible import, and pin by digest. The same discipline covers local evaluation models: an LLM-as-judge or embedding model used for Langfuse evaluations is a file the enclave must hold, so its weights, tokenizer files and license terms go through the same manifest, checksum and approval steps. Log who requested, reviewed and approved each transfer, with the date and the artifact versions, so a later auditor can trace which code ran in production.

Before the first transfer, ask the vendor or your partner to confirm three things in writing: the offline registry layout the chart expects, every chart dependency that pulls from an external repository at install or upgrade time, and whether the Langfuse Enterprise features you need are covered by the license key that must also be imported. Run a dry-run install in a disconnected test cluster and watch for any outbound DNS or HTTPS call. Network-isolated test runs catch hidden dependencies, such as a telemetry hook or a model download on first startup, before they reach the production enclave.

What auditors ask for from an air-gapped trace store

This table maps each piece of evidence an auditor or regulator is likely to request from an air-gapped Langfuse deployment to the component that produces it. Read it as a checklist of what to generate and retain, noting which items depend on a Langfuse Enterprise license key and which the organization must keep itself. DeployOpen prepares this evidence, but auditors and certification bodies draw the conclusions.

EvidenceProduced byNotes for the assessor
Trace records and retention settingsLangfuse trace storage in ClickHouse and blob storageShow what is recorded, where it sits inside the enclosure, and how long it is kept. Confirm whether retention policies need an Enterprise license key.
Audit logs and project role recordsLangfuse Enterprise audit logs and RBAC (license-dependent)Confirm with the vendor whether your license tier includes these. If not, the organization must capture access changes through its own directory and change records.
Import manifest with checksums and approvalsTransfer process across the air gap (organization-owned record)List each image, Helm chart and model artifact with its checksum, source, scanner result and approver. This record is kept by the organization.
Upgrade records showing tested version and ClickHouse releaseChange records from staging tests and the production upgradeShow the Langfuse version, the ClickHouse release in use, and the test evidence from a pre-production environment with representative data.
Backup and restore test resultsClickHouse BACKUP and RESTORE runs on a spare clusterAssessors expect dated restore tests, not only backup job logs. Record which tables or partitions were restored and the outcome.
Access records for users and servicesLDAP, Kerberos, X.509 or JWT external authentication in ClickHouse, plus SSO in LangfuseConfirm which authenticator governs each access path and whether authentication events are logged in your central log system.

Upgrade discipline when every release must be imported

Connected teams can take a new Langfuse release, pull the image and roll it out the same week. Air-gapped teams cannot. Every Langfuse release, every ClickHouse release and every base image has to be downloaded on a connected network, imported across the gap, scanned, and tested in a pre-production enclave before it reaches production. Plan that cycle as a standing operational duty with an owner, a calendar and a rollback path, not as an emergency activity that happens when a bug forces it. Updates within a major Langfuse version are documented as non-disruptive, and database migrations run automatically at startup. That convenience cuts both ways: an imported patch can change schema on the first start, so the restore point must be taken before the upgrade begins. Major upgrades follow their own migration guides. The v3 to v4 guide requires ClickHouse 25.12 or later (26.4 recommended), PostgreSQL 15 or later and Redis 7.0 or later, and it moves to an observations-first ClickHouse data model. Confirm the target versions of all four components against that guide before you import anything, because a ClickHouse upgrade may be needed before the Langfuse upgrade can proceed. The guide also advises about 3x ClickHouse disk headroom when backfilling historic data, so size the storage before you start the migration, not after it stalls.

ClickHouse has its own support window, and it limits how long you can stay on a line. The ClickHouse security policy lists versions 26.9, 26.8, 26.7 and 26.3 as receiving security updates, and all other versions as unsupported. LTS lines such as v26.8.29.10-lts and v26.3.53.4-lts were published on October 16, 2026, and LTS releases are supported for a year after release. Choose the line your team can sustain, track the end of support in your change calendar, and budget import cycles for it. Read the changelog for every release before importing it, because minor backward-incompatible changes can occur even within a stable line. A pre-production enclave copy with representative data and queries is the only practical test. Restore a recent backup into it, run the new Langfuse and ClickHouse versions, then check ingestion, the trace UI, evaluation jobs and a sample of queries before promoting anything. Ask your implementation partner how the enclave is kept in step with production, who signs off the promotion, and how long a rollback takes if the restored data does not behave as expected.

How an air-gapped LLM observability rollout runs

The sequence moves from licensing decisions and a staged bill of materials to an enclave install, instrumented applications, a local evaluation model and a tested upgrade path, so each phase closes with evidence the enclave team can review.

  1. Scope features and settle the license decision

    The partner and the platform owner list the applications to trace, the data classes in prompts and outputs, and the retention and access rules those data need. They then check which controls require a Langfuse Enterprise license key, such as project-level RBAC, data retention policies, audit logs and server-side data masking, and whether Arize Phoenix fits, given that its Elastic License 2.0 bars offering it to third parties as a hosted or managed service. Done means a written decision record naming the edition, the licensed features and the masking approach, signed off by the security and procurement owners.

  2. Build the bill of materials and staging zone

    The team lists every artifact the enclave needs: Langfuse web and worker images, the Helm chart or Terraform modules used, PostgreSQL, ClickHouse, Redis or Valkey, S3-compatible storage software, the local evaluation model and its weights, and any OS packages. Each item is pinned to an exact version and digest, then mirrored into a staging zone with internet access. Done means a bill of materials with versions, hashes and license terms that the enclave owner has reviewed, which is the starting point for the supply chain checks under NERC CIP-013-2 where that standard applies.

  3. Transfer and import through a signed manifest

    Artifacts cross the boundary on approved media or a controlled transfer path, and the importing team verifies each file against the manifest before loading it into the enclave registry and chart repository. Any mismatch stops the transfer and returns the item to staging. Done means an import record listing every artifact, its checksum, who approved the transfer and where it landed, so the enclave can show that nothing was pulled from the internet at runtime.

  4. Install Langfuse, ClickHouse with Keeper and PostgreSQL

    Engineers deploy the data tier first: PostgreSQL, Redis or Valkey, ClickHouse with ClickHouse Keeper on at least three dedicated nodes, and S3-compatible blob storage, all sized to the minimums in Langfuse's scaling guide and the ClickHouse production guidance. Langfuse web and worker are then deployed on Kubernetes or, for a test, Docker Compose on a single VM with no high availability. Done means health checks pass inside the enclave, a test trace is stored in ClickHouse and blob storage, and no component attempts an outbound connection during the test window.

  5. Instrument the first applications

    Developers add the Langfuse SDK or OpenTelemetry instrumentation to the first one or two applications, pointing the exporter at the enclave endpoint. Client-side masking is applied before data leaves the application, and project roles restrict who sees which traces. Done means traces for representative requests appear with prompts, outputs, token counts and cost fields, and a reviewer confirms that masked fields contain no personal or client data in the stored records.

  6. Set up the local evaluation model

    The team installs the evaluation model and any scoring prompts on local servers using the approved model artifacts, then runs model-based scores against a labeled sample of traces. Because no external model API is reachable, the evaluators must be tested for failures and timeouts with the enclave network in its real configuration. Done means evaluation jobs complete end to end inside the enclave, scores are written back to traces, and the owners have recorded the evaluator version and the human review step that checks the scores before a prompt or model change ships.

  7. Prove backup and restore on a spare cluster

    Backups are taken with ClickHouse BACKUP to S3-compatible storage or local disk, and PostgreSQL and blob storage are backed up on their own schedules. A full restore runs on a spare cluster, and the restored data is compared with the source for row counts and sample traces. Done means a signed restore report, since ClickHouse documentation warns that a backup never test-restored will probably not restore properly when needed, and replication alone does not protect against human error or corruption.

  8. Document and dry-run the upgrade runbook

    The team writes a runbook for each release that covers the import steps, the pre-upgrade backup, the changelog review for ClickHouse and Langfuse, and the rollback path. Before the first production upgrade, the runbook is dry-run on the spare cluster against the next release, including any v3 to v4 data model changes that require ClickHouse 25.12 or later and extra disk headroom during backfill. Done means a dated dry-run record, a rollback test result and an approved runbook that the operations team can follow without internet access.

What buyers ask before an air-gapped LLM observability project

What does an air-gapped Langfuse project cost and what drives the price?

Cost comes from four components: the infrastructure inside the enclave (compute and storage for Langfuse Web, Worker, PostgreSQL, ClickHouse, Redis or Valkey and S3-compatible storage), the transfer process that moves images, Helm charts and updates across the gap, instrumentation of your applications, and any Langfuse enterprise license. Infrastructure and licensing recur, while transfer setup and instrumentation are largely one-time, although each new release adds transfer and testing work. DeployOpen does not publish a price list. Ask for a fixed-scope written quote that lists each component, who pays for it, and which enterprise features are included or excluded.

How long does an air-gapped Langfuse deployment take to build?

The timeline depends on how many applications you instrument, how quickly your enclave infrastructure and transfer approvals are ready, and whether a production Kubernetes cluster already exists. Delays most often come from change approvals for moving files across the boundary and from waiting for storage and network access. DeployOpen agrees timelines in writing as part of a fixed-scope engagement, so ask for the milestones, the approval steps they depend on, and what happens if an approver is unavailable.

What does our internal team need to provide for the project?

Plan for four inputs: access to the target infrastructure inside the enclave, named approvers who can sign off each transfer of images, charts and updates, application owners who can point to the code paths that call models, and a data classification for prompts, outputs and files that will appear in traces. The classification decides masking, access roles and retention settings, so it should be agreed before the storage sizing is final. Confirm these responsibilities in the written scope so that delays have a clear owner.

Can our own team run an air-gapped Langfuse deployment without a partner?

A team with Kubernetes and database operations experience can build it, but the work spans several disciplines: cluster and registry setup without internet access, ClickHouse and PostgreSQL operations, backup and restore testing, SDK instrumentation, and a repeatable release import process. The Langfuse documentation covers the product, but it assumes connectivity for many steps, so the enclave variant needs its own procedure. Check whether your team has these skills in place, how many people can cover on-call duty, and how often they can run restore tests before choosing a self-run or partner model.

How do we keep Langfuse and ClickHouse current without internet access?

Each upgrade has to be downloaded outside the enclave, scanned, tested in a pre-production environment with representative data, and then imported. Langfuse says updates within a major version apply database migrations automatically at startup, while major upgrades follow dedicated guides, including the v3 to v4 guide that requires ClickHouse 25.12 or later and advises about 3x ClickHouse disk headroom when backfilling. ClickHouse documents that its three latest stable releases receive backports and that LTS releases are supported for a year, and its security policy lists the currently supported versions. Build the import cycle around those support windows and read changelogs before each move.

Does an air-gapped deployment satisfy EU AI Act logging duties by itself?

No. Keeping traces inside your own enclave helps you meet the AI Act's expectations, because Article 12(1) requires high-risk AI systems to technically allow automatic event logging over their lifetime and Article 19(1) requires providers to keep those logs for at least six months unless other law says otherwise. However, the deployment only provides the technical capability. You still need to define what is logged, retention periods, access rules and evidence of review, and independent auditors or authorities decide conformity. DeployOpen prepares systems, controls and evidence for compliance assessments but does not issue certifications or attestations.

Which Langfuse features need an enterprise license in an air-gapped setup?

The core product is MIT licensed in the open source repository, outside the ee directories, and Langfuse says all core features and APIs are available without limits in that version. Self-hosted features that need an enterprise license key include project-level RBAC roles, protected prompt labels, data retention policies, audit logs, server-side data masking, the SCIM and instance management APIs. Confirm with the Langfuse license key documentation which of these your regulators or security team require, because that decides whether the enterprise tier is part of the quote.

What to ask an implementation partner for an enclave build

Start by asking how the partner builds and verifies the bill of materials and transfer manifest for every image, Helm chart and package that crosses the gap. Ask who signs the manifest, how checksums are recorded, and how the partner proves that what entered the enclave is what was approved outside it. The control behind this is supply chain verification under NERC CIP-013-2 for regulated energy operators, and similar software integrity expectations apply elsewhere. Ask for a sample manifest from a previous build, not a description of one. Next, ask how the ClickHouse Keeper quorum and backups will work when the enclave has no external object storage. Keeper needs at least three nodes on dedicated hosts in production, so confirm where those hosts sit and who patches them. Ask where the BACKUP destination lives (local disk, an internal S3-compatible store or another enclave system), how often backups run, and how the partner will test restores on a spare cluster. The ClickHouse documentation is explicit that a backup never test-restored will probably not restore when needed, so ask for the restore test schedule and the evidence each test produces. Also ask how upgrades will be planned when every Langfuse and ClickHouse release must be imported by hand. Ask which ClickHouse line they will pin (stable or LTS), how they check the current security support list before choosing, and how long they expect an import cycle to take. Ask which Langfuse features they would need under a license key, such as RBAC roles, data retention policies, audit logs and server-side masking, and who decides whether to buy them. Ask how local evaluation models are chosen and served, what GPU or CPU hardware they assume, and what storage that adds. Finally, ask for a written scope with deliverables before work starts, the evidence pack they will produce for an assessor, and their approach to remote access, support windows and patch imports.

How DeployOpen scopes and supports air-gapped LLM observability

DeployOpen plans, implements, hardens, documents and supports self-hosted Langfuse inside the client's own air-gapped network, so prompts, outputs and traces never leave the boundary. Each engagement starts with a written scope that covers the image transfer path, storage sizing, local evaluation models and the upgrade process.

How we scope

  • Inventory the applications to instrument and the trace volume each one will produce inside the isolated network.
  • Confirm which Langfuse features need an Enterprise license key and record that decision in the written scope.
  • Agree how container images, Helm charts and ClickHouse packages will cross the boundary and who approves each transfer.

How we build

  • Deploy Langfuse Web, Langfuse Worker, PostgreSQL, ClickHouse, Redis or Valkey and S3-compatible storage from a local registry and chart mirror.
  • Set up local evaluation models and document which ones run offline, with their licenses and hardware needs confirmed.
  • Configure ClickHouse replication, Keeper nodes, backups and a scheduled restore test on a spare environment.

How we hand over

  • Document the import procedure, checksum verification steps and the upgrade runbook for each Langfuse and ClickHouse release.
  • Provide instrumentation guidance for SDKs and OpenTelemetry so application teams can add tracing without internet access.
  • Deliver evidence packs covering access control, retention settings and backup records for your assessors to review.

How we support

  • Offer ongoing support, upgrades and testing as a retainer, scoped in writing with the same offline procedures.
  • Run the upgrade path in a pre-production copy with representative data before any release reaches production.
  • Review ClickHouse and Langfuse security and version updates each cycle and agree which ones the client imports.

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.