How do you run an Open WebUI offline deployment with no internet access?
An offline Open WebUI deployment is possible with local or OpenAI-compatible model services, but only if every dependency is staged in advance. Nothing will be fetched at runtime, so every container image, Python package, model weight, embedding model, reranker and vector database must cross into the isolated network before the first start. The first decision is the install method. The official routes are Docker and Docker Compose, Kubernetes with Helm, and pip install open-webui followed by open-webui serve. Each route pulls different artifacts, so each needs its own offline bundle, built on a connected staging network and checked against the exact version you intend to run. Confirm with your team which route your platform team already operates, because a route they cannot patch will cause problems later.
The model runtime is the second decision. If you use Ollama, it binds to 127.0.0.1 on port 11434 by default. Set OLLAMA_HOST only when other services must reach it, put it behind a proxy that enforces authentication, and set OLLAMA_MODELS to a directory on storage you control. Set OLLAMA_NO_CLOUD=1 so cloud features stay off. The local API does not require authentication, so network placement is your only access control there. Retrieval features need models too: embeddings for knowledge, a model for extraction, and a cross-encoder reranker if you enable reranking. Confirm which of these load on first use, then pre-load them. If you serve models with vLLM, its documentation describes an offline docs option for air-gapped environments, which you should test before relying on it.
Scaling state decides whether a single host is enough. The scaling guide requires PostgreSQL instead of SQLite for multi-instance deployments. Multiple replicas also need Redis for sessions, websocket connections and application state, plus shared file storage so uploads and knowledge are reachable from every replica. The default ChromaDB will crash in multi-process setups, so plan an external vector database such as PGVector or Qdrant and stage its images too. SQLite is acceptable for a single replica or a small evaluation team only when the database file sits on locally attached SSD or NVMe storage. Without Redis, signing out does not revoke tokens, which then remain valid until they expire, by default after 4 weeks. Treat that window as a risk to document and accept or reduce.
Identity must also live inside the enclosure. Open WebUI documents SSO through OIDC and LDAP, SCIM 2.0 provisioning, role-based access control with groups, API keys and authenticator-app MFA. Your identity provider must be reachable from the isolated network, and its signing keys, metadata and certificates must be staged with the rest of the bundle. Confirm whether your provider can run on the same enclosure before you commit to a design. For software crossing the boundary, verify the integrity and authenticity of every package and image. If you operate in the electric sector, NERC CIP-013-2 addresses supply chain verification of vendor software and patches, and NERC CIP-005-7 governs remote access to high and medium impact BES Cyber Systems. Either standard may shape how the bundle is verified and how administrators reach the system.
Several limits need confirmation before you commit. Open WebUI v0.12.3 was published on October 16, 2026, so your offline bundle must come from the release you choose, and every upgrade needs a new staged bundle. Since v0.6.6 the code is under the Open WebUI License, which forbids altering or removing branding in deployments that exceed 50 users in any rolling 30-day period unless you hold an enterprise license or written permission. Enterprise pricing is not published and is quoted after contacting sales with an expected seat count. DeployOpen plans and builds this offline deployment inside your own infrastructure, including staging, identity wiring and verification. DeployOpen does not issue audit reports or attestations. Independent auditors and certification bodies do that work.
Which offline configuration options fit your environment
This table compares the configuration choices an offline Open WebUI deployment has to make, from the model server and vector store to the database, shared state and sign-in method. Read each row against two cases: a single-team pilot on one host, and a shared deployment with several replicas. The main takeaway is that pilot defaults stop working once more than one process writes state, so the shared column adds components you must build, host and back up inside the isolated network.
| Option | Single-team pilot | Shared multi-replica deployment | What it adds to the build |
|---|---|---|---|
| Local Ollama | Fits a pilot on one host. The local API binds to 127.0.0.1:11434 by default and needs no API key. | Needs OLLAMA_HOST set, a reverse proxy and concurrency tuning, since OLLAMA_NUM_PARALLEL defaults to 1 per model. | Model transfer across the boundary, a model storage location, and checks on each model file before import. |
| vLLM or another OpenAI-compatible server | Fits when a team already runs GPU serving or wants one API endpoint for Open WebUI. | Typical for shared capacity. Confirm offline documentation options and model compatibility with your accelerator hardware. | Accelerator sizing, a separate serving host, and model weights staged inside the network. |
| External vector database (PGVector or Qdrant) | Optional for a small document set. Confirm retrieval needs and volume before choosing storage. | Required. The scaling guide warns that the default ChromaDB crashes in multi-process setups. | PGVector adds an extension to PostgreSQL. Qdrant is a separate service to deploy, back up and patch. |
| Database: SQLite or PostgreSQL | SQLite works for one replica or evaluation, only on locally attached SSD or NVMe storage. | PostgreSQL is required for multiple instances, because SQLite handles concurrent writes from several processes poorly. | A PostgreSQL service with tested backups, plus a decision on whether pilot data migrates or starts clean. |
| Redis for shared state | Typically unnecessary for one replica. Without Redis, signing out does not revoke tokens until they expire. | Required for sessions, websocket connections and application state, alongside shared file storage for uploads and knowledge. | A Redis service inside the boundary, shared file storage, and a test of sign-out and token revocation. |
| OIDC or LDAP for sign-in | Both methods are documented. Confirm the identity provider is reachable inside the isolated network. | Choose the method your directory supports, then plan SCIM 2.0 provisioning, group mapping and MFA. | An identity provider inside the boundary, certificate handling, group and role mapping, and MFA settings you verify. |
Choosing between Ollama and an OpenAI-compatible server offline
Open WebUI can connect to Ollama or any OpenAI-compatible provider, and it can run fully offline with either. The choice depends on which runtime your team can secure, size and operate inside the isolated network.
Ollama local REST API
Ollama serves a REST API on port 11434, with OpenAI compatibility and Python and JavaScript SDKs. It binds to 127.0.0.1 by default, so Open WebUI must run on the same host or reach the API through a deliberate bind setting. Changing the address with OLLAMA_HOST is the usual step when Open WebUI runs in a separate container or host. Confirm the address, port and container networking before go-live.
Unauthenticated local API exposure
The local Ollama API does not require authentication, so any client that can reach the port can send inference requests. Exposing it through a reverse proxy such as Nginx requires an authenticating layer in front of it. Keep the proxy on the internal interface, restrict source addresses and log access. Test from a host outside the Open WebUI network to confirm that unauthenticated requests fail.
Turning off cloud features
Ollama states that local runs do not expose your prompts or data, and cloud features can be turned off with OLLAMA_NO_CLOUD=1 or in the server configuration file. Set the variable in the service unit or container environment, then confirm that no cloud model appears in Open WebUI. Direct cloud inference needs an API key sent as a Bearer token, so an isolated host should have no key configured.
Sizing Ollama concurrency
Ollama's defaults set the capacity ceiling. OLLAMA_NUM_PARALLEL defaults to one parallel request per model, OLLAMA_MAX_LOADED_MODELS defaults to three times the GPU count (or three on CPU), and OLLAMA_MAX_QUEUE defaults to 512 queued requests. Model expected concurrent users against these values and memory per loaded model before choosing hardware. Load-test with your own prompts, since the defaults are limits rather than measured throughput.
vLLM offline documentation
vLLM is the alternative for teams that want an OpenAI-compatible serving engine. Its --enable-offline-docs option serves API documentation without fetching assets from the internet, which matters on an isolated network. Confirm that the option is available in the release you deploy, and that browser clients in the enclave can load the bundled pages.
Model and accelerator validation
vLLM needs model compatibility and accelerator capacity checked before cutover. Confirm that each model's architecture, quantization and context length load on the GPUs you have, and measure memory headroom at your expected concurrency. Ask the team that owns the hardware to confirm driver and runtime versions, since an offline host cannot pull missing packages at deploy time.
Which dependencies must be staged before the network is cut
Build a complete staging manifest before the network is cut, because a missing dependency usually surfaces only when a user first triggers the feature that needs it. An offline install must carry the Open WebUI container image or the pip package, the chat model weights, the embedding and reranking models used for retrieval, the document extraction components that parse uploads, and the image for the vector database you chose. It must also carry a verified network path to the identity provider for SSO through OIDC or LDAP. Record each artifact with its version and checksum, then reconcile that list against a test installation on a connected build host.
Model storage is where offline installs most often fail. If you run Ollama, the default model directory depends on the operating system, and the OLLAMA_MODELS variable moves it to another location. Confirm the target path on the air-gapped host, set the variable before the first start, and load each model once inside the boundary to confirm it runs. Treat the transfer itself as a controlled process: verify the integrity and authenticity of every package, container image and model file before it crosses, and keep a signed record of each check. This is the kind of control NERC CIP-013-2 addresses for regulated utilities, which requires supply chain procurement processes to verify software integrity and authenticity.
Optional features are the second source of failure, because several of them can make outbound calls. Confirm with the Open WebUI documentation which features reach external services in the version you deploy, including web search, speech, image generation and model catalogs. For each one, either disable it in the administrator settings or pre-stage what it needs inside the boundary, such as speech models or a search backend you host. Record the decision for each feature, so that a reviewer can see every outbound path was closed on purpose and tested rather than discovered later in production logs.
Identity and state services need the same discipline. The SSO provider must be reachable from the Open WebUI network segment, its certificate chain must be trusted by the host, and group claims should be tested with a dedicated account. If you run several replicas, the external vector database, Redis and shared file storage from the scaling guide must come across as versioned images or packages. Test the staged set on an isolated network with the outbound route blocked by running a sign-in, a file upload, a retrieval query and a chat against each configured model. Any failure at that stage points to a missing dependency, and finding it before the cut is far cheaper than finding it afterward.
How to build an offline Open WebUI deployment step by step
This sequence takes a team from a pinned Open WebUI release to a reverse-proxied instance that answers chat requests using only models inside the boundary. Each step ends with a check you can run and record, so the finished deployment can be reviewed against your own network and identity controls.
Confirm the target Open WebUI version
The platform team selects a release from the Open WebUI GitHub releases page and reads its notes before any artifact is downloaded. The latest published release at the time of writing was v0.12.3 (October 16, 2026), but the version you choose should be the one your change process has approved. Confirm the license that applies to that version: code from v0.6.6 onward is under the Open WebUI License, and its branding clause applies to deployments above 50 users in any rolling 30-day period unless you hold an enterprise license or written permission. Done when the version, license position and approval are recorded in the change ticket.
Build a verified transfer bundle
The build team assembles everything the isolated network will need: the Open WebUI container image or Python package, the Ollama runtime, model weights for generation, embedding, extraction and reranking, vector database and PostgreSQL images, Redis, the reverse proxy image and any Helm charts or Compose files. Each item is listed in a manifest with its version and a SHA-256 checksum, and the bundle is scanned before it crosses the boundary. NERC CIP-013-2 is one reference point for verifying software integrity and authenticity before import. Done when a second person can recompute every checksum from the manifest and get identical results.
Stage the local model server and models
The infrastructure team installs the model runtime inside the boundary and sets OLLAMA_HOST, OLLAMA_MODELS and OLLAMA_NO_CLOUD=1 so models load from local storage and cloud features stay off. Ollama binds to 127.0.0.1 on port 11434 by default, so the bind address must be changed deliberately and the port limited to the Open WebUI network segment, because the local API does not require authentication. Import the generation, embedding, extraction and reranking models from the bundle. Done when a chat completion sent from a host inside the boundary returns a response, and the same request fails from any host outside the allowed segment.
Configure Open WebUI to use local endpoints only
The application team points Open WebUI at the internal Ollama endpoint or an internal OpenAI-compatible service and removes any default or public provider connections from the configuration. Retrieval and embedding settings should reference the local models staged in the previous step. Then run a network test from the application host: DNS lookups and HTTPS connections to public addresses should fail, while the internal model endpoint, identity provider and database should succeed. Done when that test is captured in the deployment record, and the result is repeated after every configuration change.
Connect the identity provider
The identity team configures sign-in through OIDC or LDAP, which Open WebUI documents as supported single sign-on methods, and maps directory groups to Open WebUI roles. Decide whether SCIM provisioning will be used now or later, and confirm that the identity provider is reachable from inside the boundary, since it is the only sign-in path in this design. Enable authenticator-app MFA where your policy requires it. Done when a test user signs in through the identity provider, receives the expected role and group membership, and a user outside the mapped groups is denied access.
Set up PostgreSQL, external vector storage and Redis for replicas
The data team moves Open WebUI off SQLite to PostgreSQL, because the scaling guide requires PostgreSQL for multi-instance deployments. An external vector database replaces the default ChromaDB, which the guide warns will crash in multi-process setups. Each replica also needs Redis for shared sessions and websocket state and shared file storage for uploads and knowledge. Test sign-out on one replica and confirm the session is rejected on another. Without Redis, tokens remain valid until they expire, by default after 4 weeks, so a missing Redis service is a control gap. Done when the sign-out test passes and backups for PostgreSQL and file storage are restored successfully into a test environment.
Place a reverse proxy in front
The network team places a reverse proxy in front of the Open WebUI replicas to terminate TLS with internally issued certificates and to forward WebSocket traffic. The proxy should accept connections only from approved user networks and should block administrative paths from general user segments. Confirm the proxy configuration against the tested routes and log every request for security monitoring. Done when user traffic reaches Open WebUI through the proxy, a request to a restricted path is refused, and a final end-to-end test confirms that the application still makes no outbound connections to public networks.
Why replicas, Redis and PostgreSQL change the offline design
The topology you choose sets the size of your offline bill of materials, so settle it before you stage any images. The Open WebUI scaling guide requires PostgreSQL instead of SQLite for multi-instance deployments, because SQLite does not handle concurrent writes from multiple processes well. For multiple replicas, the guide also requires Redis as a shared state store for sessions, websocket connections and application state, plus shared file storage so that uploads and knowledge stay reachable from every replica. In a connected environment these are routine services to add. Inside an isolated boundary, each one becomes a component you must deploy, patch, back up and restore without pulling anything from the internet, and each one's images or packages must be carried across the boundary and checked before use.
The scaling guide also warns that the default ChromaDB will crash in multi-process setups, so an external vector database is required when you run several workers or replicas. Open WebUI's retrieval features support 13 vector databases, including PGVector, Qdrant, Milvus and Elasticsearch, and the choice should follow what your team can already operate. Pick the option early and confirm that its install method works with no internet access. Hybrid BM25 plus vector search and cross-encoder reranking also depend on models and assets that must be staged inside the boundary, so confirm with your Open WebUI version which of those assets the retrieval pipeline downloads on first use. A reranker that fetches its weights at runtime will fail quietly in an air-gapped network.
Redis also changes how sign-out behaves, and this matters for offboarding in a restricted environment. Without Redis, signing out does not revoke tokens. They stay valid until they expire, by default after 4 weeks. A user who leaves the organization, or whose device is lost, can keep a working session for that window unless you act on it. For a multi-replica deployment, treat Redis as a security control rather than only a performance component, and test sign-out on two replicas before go-live. If you run a single instance, confirm with your identity team how session expiry and account disablement reach Open WebUI, and document the procedure for ending active sessions when an account is disabled in your identity provider.
SQLite remains an option, but only in narrow cases. The scaling guide accepts it for single-replica deployments, evaluation and small teams, and only when the database file sits on locally attached SSD or NVMe storage rather than network storage. Offline sites often mount shared volumes from a storage array or network file system for convenience, and that is the setup this rule excludes. Check the storage type of the host that will hold the database with your infrastructure team, and record the answer in the design. If the site later adds a second replica, the PostgreSQL, Redis and shared storage work described above starts from zero, so plan the migration path now rather than treating SQLite as a permanent choice.
What offline settings do not protect you from
Offline settings stop Open WebUI from reaching the internet, but they do not govern the network around it, how users reach it, or who can change what it runs. The cards below cover the controls you still own: outbound and DNS filtering, inbound proxying and logging, identity, permissions, code execution, and the regulatory scope that applies to utilities.
Egress filtering, DNS and stray pulls
Offline settings govern the application's own behavior, not the hosts around it. Block outbound traffic at the firewall and proxy so only named internal services are reachable, and restrict DNS resolvers so hosts cannot resolve public model registries or ollama.com. Ollama's documentation says cloud features can be turned off with OLLAMA_NO_CLOUD=1, so confirm that setting on every host. Also check the model directory set by OLLAMA_MODELS, and limit who can run model pull commands on the server.
Inbound access and admin logging
Ollama binds to 127.0.0.1 on port 11434 by default, and its local API requires no authentication. Publish only Open WebUI through a reverse proxy that terminates TLS, restricts source networks, and never exposes port 11434 directly. Forward proxy access logs and the administrative events Open WebUI records, such as user, group and setting changes, to your central log platform. Confirm which administrative actions are logged in your version and assign someone to review them.
API keys and authenticator-app MFA
Open WebUI documents API keys and authenticator-app MFA, but confirm which of these are enabled and enforced in your build. Decide who may create API keys, how long they remain valid, and who revokes them when staff leave. Require MFA for every interactive account, including administrators, and record whether your identity provider or the application enforces it. Because the local Ollama API has no authentication, keep it behind Open WebUI and the proxy so that keys and MFA guard every path to the models.
Role-based access through groups
Open WebUI applies role-based access control through groups and per-resource permissions, so a model or knowledge base can be limited to the teams that need it. Define groups before users arrive, and review who can create groups or change model access. Where accounts come from SSO or SCIM 2.0 provisioning, confirm that removing someone from a directory group also removes their model and knowledge access. Test each group with a non-administrator account.
Functions that run arbitrary Python
Open WebUI Functions execute Python code on the server, so anyone who can add or edit one can run commands with the server's privileges. Restrict function creation to a small administrator group, review every function before import, and keep approved code in version control. Confirm which roles can install Functions in your version, and test that a non-administrator account cannot add one. Treat each function as code that needs the same review as any application change.
Utility remote access and OT scope
If the deployment supports utility operations, check whether NERC CIP-005-7 applies. It requires Interactive Remote Access to high and medium impact BES Cyber Systems to pass through an Intermediate System with encryption and multi-factor authentication, plus methods to detect and disable active vendor sessions. Confirm each system's impact rating with your compliance team before you design access. For OT-adjacent environments, NIST SP 800-82 Rev. 3 offers guidance on operational technology security that can shape zone and access decisions.
How SSO works when the identity provider sits inside the boundary
An offline Open WebUI installation still needs a reachable identity provider for sign-in. Open WebUI documents single sign-on through OIDC and LDAP, so the first decision is which of these protocols your directory supports and where that provider runs. The identity provider must sit inside the same boundary as Open WebUI, or it must be reachable through an approved, documented path such as a controlled gateway. If neither holds, users cannot sign in, and no fallback should quietly reintroduce an outside dependency. Record the chosen provider, its network location, and the owner who can change its configuration before any other SSO setting is touched.
Confirm three things in your own environment before go-live. First, the redirect URLs registered in the OIDC client must match the exact external hostname, scheme and port that users will type in the isolated network, because a mismatch fails at the callback step. Second, the certificate trust chain for the internal certificate authority must be present in the runtime trust store of every Open WebUI host or container, so discovery and token requests succeed without disabling verification. Third, for LDAP, test connectivity from the Open WebUI network segment to the directory over the TLS-protected port you intend to use, with the bind account and search base you plan to keep. Each of these checks depends on local firewall rules and certificates, so none can be assumed from the software documentation.
SCIM 2.0 provisioning is a separate concern from sign-in. Sign-in answers whether a person can log in, while provisioning creates, updates and deactivates user accounts and group memberships ahead of or after login. Open WebUI documents SCIM 2.0 user and group provisioning, so decide whether your identity provider will push accounts into the offline instance or whether accounts will be created at first sign-in. If SCIM is used, confirm that the identity provider inside the boundary can reach the Open WebUI SCIM endpoint and that deprovisioning is tested. Groups then carry the access model. Open WebUI uses role-based access control with groups and per-resource permissions, so a group that appears in the directory should map to a deliberate set of models and knowledge collections. Review every group mapping before users are granted access.
Sign-out and session lifetime need explicit planning. The scaling documentation states that without Redis, signing out does not revoke tokens, which then stay valid until they expire, by default after 4 weeks. A disabled user in the identity provider can therefore keep an active session for that period unless revocation works in your deployment. Multi-replica deployments need Redis as a shared state store for sessions, so the Redis placement and its persistence fall under the same boundary review as the identity provider. Ask the team to test a sign-out and a disabled-account login on the exact topology you will run, and set the token lifetime with the security owner rather than accepting the default.
Test multi-factor authentication before users depend on it. Open WebUI documents authenticator-app MFA, and the enrollment flow must work with no internet access. Run a dry run on a network with no egress: enroll a test account, confirm that the enrollment page loads its assets locally, check that no step calls an external font, script or messaging service, and sign in with a generated code. Also test recovery codes or the administrator reset path, and confirm who can clear an enrollment when a device is lost. Record the results as evidence, because an enrollment that depends on an outside service will fail silently in the isolated environment.
Limits to confirm in your environment before you commit
Each limit below needs confirmation from the vendor, a standard, or your own environment before you fix a design or budget. Together they decide which release you pin, what you can license, and which models and retrieval components can run without outbound access.
Standardized Open WebUI version
Choose the release line your team will standardize on and record it in the design. The project published v0.12.3 on October 16, 2026, after v0.12.0 on October 10 and v0.11.0 in July, so the gap between your certified version and the latest release will grow quickly. Ask how security fixes and patches are packaged, and confirm how your team verifies the integrity and authenticity of each artifact before it crosses the boundary into your network.
Enterprise license for branding
Releases from v0.6.6 onward use the Open WebUI License, which protects branding in deployments that exceed 50 users in any rolling 30-day period. Keeping the interface branding unchanged at that scale requires an enterprise license or written contributor permission. Count active users over the rolling window, and confirm with the vendor which terms apply before you finalize the interface and user communications.
Enterprise pricing is quoted
Open WebUI's enterprise licenses cover white-labeling, custom branding and dedicated support options, but pricing is not published. The vendor quotes after enterprise sales receives an expected seat count, so your seat estimate drives the number. Ask for the quote in writing with the seat count, license term, support tier and any change in price at renewal, then compare it with the staff time your team would spend on the same support.
Model families and accelerators
Open WebUI connects to Ollama, OpenAI, Anthropic or any OpenAI-compatible provider, so your offline capability depends on the runtime behind it. Confirm which model families your runtime loads, which quantizations and context lengths it supports, and which GPU or CPU accelerators its drivers and version support on your hardware. For vLLM, confirm how the --enable-offline-docs option fits your air-gapped serving plan. Load-test the exact models on the exact accelerators you intend to buy.
Vector database and reranker offline
Open WebUI's retrieval supports 13 vector databases, including ChromaDB, PGVector, Qdrant, Milvus and Elasticsearch, with hybrid BM25 plus vector search and cross-encoder reranking. The scaling guide warns that the default ChromaDB crashes in multi-process setups, so multi-replica deployments need an external vector database. Confirm that the database, reranker weights and tokenizer files are staged locally and that each component loads with no outbound calls.
Release cadence and re-staging
Open WebUI and Ollama both ship often. Ollama v0.40.5 was released on 14 October 2026, and v0.40.6 was published as a pre-release on 16 October 2026. Each upgrade that crosses your boundary requires a new bundle of images, models and dependencies, so define how often you will re-stage, which pre-releases you will skip and how long a bundle stays in service. Confirm the vendor's support window for older lines before you set that schedule.
What buyers ask before they hire help with offline Open WebUI
How much does an offline Open WebUI deployment cost?
No single figure applies, because cost follows the scope of the work and the environment it lands in. Who gets paid for what: DeployOpen fees cover planning, build, hardening, documentation and handover, and are quoted from a written scope. Your hardware or cloud allocation covers inference and embedding servers, sized to your models and concurrency. Storage, PostgreSQL, Redis and an external vector database add infrastructure cost. If you need white-labeling or branding changes, the Open WebUI enterprise license is quoted only after you contact enterprise sales with an expected seat count. Ask any quote to separate one-time build items from recurring ones, and to state which work your own staff absorb.
How long does offline Open WebUI take to deploy?
Duration depends on the boundary you need, how many systems the work touches, and how quickly approvals and hardware arrive. Most engagements are fixed-scope, so the timeline is agreed in writing before work starts. Items that often stretch the schedule: moving model files, container images and packages across the isolation boundary, confirming the identity provider is reachable from inside the isolated network, procuring compute hardware, and completing change approvals for each new service. Ask for the timeline as phases, with the client inputs each phase depends on. That shows where your team's dependencies sit and which milestones need your sign-off.
What does our team need to provide for the work?
Your team provides the environment facts and approvals that the build cannot assume. Typical inputs: current network diagrams showing zones, segments and firewall paths between the Open WebUI hosts, model servers and the identity provider. Read access or a service account for the directory, using OIDC or LDAP as your environment requires. Hardware that meets the agreed specification, or approval to procure it. Contacts for DNS, certificate issuance and internal package or container mirrors. Change approval paths and lead times for each host and rule. Where the environment is regulated, such as an energy operator subject to NERC CIP-005-7 remote access controls, confirm early which access paths and monitoring obligations apply.
Can our own team deploy Open WebUI offline without outside help?
Yes, if your team already has the skills the work requires. Open WebUI supports Docker, Docker Compose, Kubernetes with Helm and a pip install, so the platform itself is not the main hurdle. Skills to confirm: container and Linux administration, identity integration, PostgreSQL and Redis operations, and a repeatable process for moving images, packages and model files across the boundary. For more than one replica, the scaling guide requires PostgreSQL, Redis, shared file storage and an external vector database. A single-replica setup can use SQLite only on locally attached SSD or NVMe storage. Ask whether your team needs an independent review of the design or the offline update process.
Which offline Open WebUI costs recur after go-live?
Build costs are usually one-time, while several items repeat for as long as the system runs. One-time: design, build, hardening, initial model and image transfer, and documentation. Recurring: patch and release transfers into the isolated network, model updates and their validation, hardware refresh, enterprise license renewal if you hold one, support retainers, and staff time for change approvals. Model runtime costs depend on your choice of software. Ollama states that running models on your own hardware is unlimited, but its paid cloud plans do not apply to an offline deployment. Ask the quote to list each recurring item with the party responsible for it.
Does the 50-user branding rule apply to our rollout?
It can. The Open WebUI License forbids altering or removing Open WebUI branding in deployments that exceed 50 users in any rolling 30-day period, unless the operator holds an enterprise license or written contributor permission. Check these points: how your organization counts users across groups, departments and any service accounts, whether a rollout planned in phases will cross the threshold, and which license applies to the release you install. Code through v0.6.5 remains BSD-3-Clause, so the release version matters for your upgrade path. Confirm the license reading with your legal counsel before the scope is signed.
What should a written scope for offline Open WebUI contain?
A written scope turns the design into something you can approve, price and test. Include at least: the isolation boundary and which hosts, networks and services sit inside it; the model and embedding servers, with the models named; the identity integration and the directory fields it reads; the database, Redis, shared storage and vector database choices; the method for transferring images, packages, models and patches; deliverables such as runbooks and configuration records; acceptance tests; client inputs with owners and dates; change control; exclusions; and support after handover. Most engagements are fixed-scope, so anything left out of the document is a candidate for a change request.
Why do sign-in tokens stay valid after users sign out?
Without Redis, signing out does not revoke tokens. They stay valid until they expire, which is by default 4 weeks in the Open WebUI scaling guide. What to decide: whether to deploy Redis inside the isolated network as the shared state store for sessions, websocket connections and application state, which the guide requires for multiple replicas. Also decide how long token lifetimes should run for your risk model, and confirm the current configuration option for that setting in the Open WebUI documentation before you rely on it. Record the decision and the owner in the runbook so the next team knows why the setting was chosen.
How DeployOpen scopes and delivers offline Open WebUI
DeployOpen plans, builds, documents and supports self-hosted open-source platforms inside your own infrastructure, including air-gapped networks. For Open WebUI offline deployments, we start from a written scope that names the local model runtime, the identity provider, the vector store and every network control the offline boundary depends on.
How we scope
- Engagements are fixed-scope, with deliverables and timelines agreed in writing before work starts.
- We inventory which inference, embedding, extraction and reranking services must run locally, and which models they will load.
- We confirm the identity provider reachable from the isolated network, covering OIDC or LDAP sign-in and SCIM provisioning if needed.
- We record the install method (Docker Compose, Kubernetes with Helm, or pip) and the database and vector store each choice requires.
How we build
- We stage container images, Python packages and model files on approved media, then verify each package before it crosses the boundary.
- We configure Open WebUI against local Ollama or OpenAI-compatible endpoints and test that no external provider is reachable.
- We set up PostgreSQL and Redis for multi-replica runs and an external vector database in place of the default ChromaDB where scaling needs it.
- We apply network egress rules and document the controls that offline settings alone do not enforce.
How we hand over
- We test sign-in, role and group permissions, document retrieval and model responses from a client-side test plan in the isolated network.
- We deliver runbooks for model loading, updates by offline media, backups and restores of the database and file storage.
- We document the license terms that apply to the Open WebUI version you run, including branding rules for deployments above 50 users.
- We map the configuration and evidence to your compliance requirements, and note that auditors and certification bodies issue any assessment results.
How we support
- Ongoing support, upgrades and continuous testing are available as a retainer, scoped separately from the build.
- We plan each Open WebUI upgrade and model or package refresh as a controlled import, with testing before production use.
- We review token lifetimes, session revocation and access logs after each change, since revocation depends on shared Redis state.
- Confirm with your team the release channel, the update window and who approves each package admitted to the isolated network.

