Self-hosted LLM inference on CPU-only and edge servers

Running quantized open-weight models on CPU servers at branch offices, plants, ships and laptops, with llama.cpp or Ollama, when GPUs are unavailable or not permitted for the site.

On this page

Why CPU-only and edge inference needs its own plan

For a regulated organization that needs a model at branch offices, ships, plants or on laptops, llama.cpp is the engine to evaluate first for constrained CPU hosts, and Ollama is the better fit when a simpler runtime and local model management matter more than squeezing out the last tokens per second. The decision starts from the site, not the model catalog. Sites without GPUs, with unreliable links to a central data center, or where hardware purchases are restricted each need an inference service that runs on whatever the site has, keeps prompts on site, and keeps working when the wide-area link drops. Those constraints change the build compared with a central GPU service. A central cluster is one place to patch, monitor and back up. An edge estate is many small nodes, each with its own model files, engine version, certificate and API key, and each one can be offline for days. The plan therefore has to cover how a model artifact and engine build are verified and delivered to each node, how a node reports health when it cannot reach a central console, and who is responsible for a node that stops answering. Confirm with your own operations team whether they can run that per-node process at the number of sites you have in mind, because the answer decides whether a fleet tool or a central pattern is needed.

Expect a different hardware and security posture too. Without accelerators, model size, context length and concurrency are capped by RAM and CPU instruction support, so the first deliverable is a sizing test on the actual site hardware using the quantized models you intend to approve. Ask the engine and the operating system team to confirm which CPU instruction sets the hosts expose, since llama.cpp uses them to speed up inference. On the security side, llama-server supports API key authentication through --api-key or an API key file and TLS through PEM certificate and key files, and Ollama's local API on port 11434 has no authentication by default, so every edge node needs a front layer or explicit configuration before any application connects. Treat these as acceptance tests written into the scope, not as later hardening work.

Requirements that shape a CPU-only edge build

This table lists the requirements that change how a CPU-only llama.cpp or Ollama node is built, with the source of each constraint and what it means for the build. Read each row as a design decision to settle before the first node ships, because several defaults (open local APIs, unauthenticated access, manual model handling) are the first things an assessor will check. Most of the work sits in authentication, transport security, and a repeatable update process for many small nodes.

RequirementSourceWhat it means for the build
Data residency at each siteInternal data classification and local regulation for each branch, ship, plant or laptop locationConfirm which sites may hold prompts and output locally, and whether any logs or model caches leave the site. Record the answer per site, not once for the fleet.
Authentication on the local APIOllama API authentication docs: the local API at localhost:11434 does not require authenticationOllama must be placed behind a proxy or gateway that enforces credentials before any network exposure. Do not rely on the default bind address alone.
API keys on llama-serverllama-server README: API key authentication through --api-key or an API key fileSet the key from a file with restricted permissions and rotate it on a documented schedule. Confirm how keys are distributed to each node.
TLS on the inference endpointllama-server README: TLS through PEM certificate and key filesIssue certificates from the organization's internal CA and plan renewal for every node. Expired certificates on remote sites are a common outage cause.
Metrics and capacity monitoringllama-server README: optional Prometheus-compatible endpoint enabled with --metricsEnable the metrics endpoint deliberately and restrict who can scrape it. Ask the team to confirm which queue and latency signals their monitoring stack will collect.
Event logging and retention for high-risk systemsEU AI Act Article 12(1) on automatic event recording; Article 19(1) on keeping logs for at least six months unless other law provides otherwiseApply only if the use case falls under high-risk obligations. Then design node-level event recording that is shipped and retained centrally, with the retention period confirmed by legal counsel.
Offline transfer of models and binariesLlama.cpp README: GGUF models sourced from Hugging Face; Docker documented; Ollama stores models in configurable directoriesSites without reliable connectivity need a signed, verified bundle of model files and engine binaries or images. Confirm the verification method and where the model directory is set with OLLAMA_MODELS.
Update cadence for frequent engine buildsggml-org/llama.cpp publishes numbered builds continuously, such as b11717 on October 18, 2026; Ollama publishes frequent releasesDefine which builds are approved for production, how often the fleet is patched, and how a rollback works. Pin versions per node so the fleet does not drift.
Concurrency limits on small hardwareOllama FAQ: OLLAMA_NUM_PARALLEL defaults to 1, OLLAMA_MAX_LOADED_MODELS defaults to 3 on CPU, OLLAMA_MAX_QUEUE defaults to 512Default settings suit a single user. Set parallelism and queue depth to what the CPU can serve within the response time agreed with users, and test those values before rollout.

Which model sizes and quantizations are realistic on CPU

A branch server is usually a rack or tower machine with a fixed CPU, a fixed amount of RAM and no accelerator. For llama.cpp, the first question is whether the processor exposes the instruction sets the build uses. The llama.cpp README lists x86 AVX, AVX2, AVX512 and AMX support, so the server's CPU model and its feature flags decide which build and which expectations apply. Memory is the second constraint, because the quantized model and its context cache must both fit with room for the operating system and other services.

  • Instruction support first: Confirm AVX2 or AVX512 (and AMX where the CPU offers it) on the exact server model before selecting a build.
  • Memory headroom: Reserve RAM for the OS, the context window and concurrent requests, not just the model file.
  • Concurrency: Parallel decoding and continuous batching in llama-server add memory and queueing pressure, so test with the number of users you expect.
  • Serving controls: Put --api-key or an API key file and TLS certificates in front of the endpoint before the server joins the branch network.
  • Monitoring: Enable --metrics so memory and request load can be tracked centrally.

Before committing, record model, quantization, context length, prompt size, tokens per second and peak memory on the target server, and confirm the result meets the use case.

Which engine fits which edge node: llama.cpp, Ollama and the layers around them

Edge deployments usually combine one inference engine per node with a few shared layers above it. The engine choice depends on how many users a node serves, how much control you need over authentication and concurrency, and whether a central team must manage many machines. The cards below cover the two engines most often run on CPU-only servers and the gateway and tracing layers that sit around them.

llama-server for multi-user nodes

llama-server, the HTTP server in the llama.cpp project, is the option to evaluate when one branch or plant node must serve several staff at once. It is MIT licensed, documents a Docker setup, and offers API key authentication through --api-key or a key file, TLS through PEM certificate and key files, and a Prometheus-compatible endpoint enabled with --metrics. Parallel decoding and continuous batching make it better suited to shared use. Check the parallel slot and context settings against the RAM and cores of the actual hardware, because throughput on CPU falls quickly as concurrent requests grow.

Ollama for single-user and laptop nodes

Ollama is a runtime with a llama.cpp backend that pulls and runs models through a simple command line and a REST API on port 11434, with OpenAI compatibility. It binds to 127.0.0.1 by default, so exposing it to a network means changing OLLAMA_HOST and placing a proxy with authentication in front, because the local API does not require a key. Its default of one parallel request per model suits personal or small-team use. Raise OLLAMA_NUM_PARALLEL only after measuring memory use, and set OLLAMA_NO_CLOUD=1 on nodes where cloud features must stay off.

Queue limits and request handling

When many requests arrive at one small node, the queue decides whether users wait or see errors. Ollama queues up to 512 requests by default through OLLAMA_MAX_QUEUE, and its per-model parallel default is 1, so a busy plant assistant can accumulate long waits without any alert. llama-server handles concurrency through its slot settings instead. Test both engines with the expected peak load on the target CPU, and set a maximum queue length and a client timeout that match what operators will tolerate, not the defaults.

LiteLLM as a gateway across many nodes

Once dozens of branch or ship nodes run models, applications need one stable endpoint instead of a list of addresses. LiteLLM can sit in front of several engines, expose an OpenAI-format API, route requests, and record usage and cost. It is MIT licensed, but its enterprise directory is under separate terms, so confirm which features your deployment needs before relying on them. Keys, budgets and routing rules then live in one place, which simplifies rotation when a node is replaced or moved.

Langfuse or Phoenix for tracing

Tracing shows which prompts reached which node, how long each answer took and what it cost in tokens and time, which is the evidence you need when edge answers degrade. Langfuse is MIT licensed except its ee directories and can be self-hosted in your own storage. Arize Phoenix is licensed under the Elastic License 2.0, which prohibits offering the software to third parties as a hosted or managed service. That restriction matters if a partner or managed provider runs it for your customers, so confirm the deployment model with counsel before choosing it.

Release tracking for many engines

Edge nodes are often updated late, so different sites end up on different engine builds. llama.cpp publishes numbered builds continuously, and Ollama ships frequent releases, including pre-releases. Record the engine build, model file hash and launch flags on every node, and pin versions in a central inventory. Schedule a test of a new build against a fixed prompt set before rolling it out, so a regression in answer quality or speed is caught before it reaches operators.

How a multi-site CPU rollout is phased

The sequence moves a CPU-only model service from a survey of the hardware to a hardened, packaged and monitored fleet, with each phase closing on a written output that the next one depends on. Sites are added only after a single pilot node has proven the model, settings and security baseline.

  1. Survey hardware and instruction sets

    Inventory every target node, including branch servers, plant PCs, ship systems and laptops, and record CPU model, instruction-set support (AVX, AVX2, AVX512 or AMX on x86), installed memory, storage, operating system and any restrictions on what can be installed. Confirm whether any site has a GPU that could be used, and whether local policy permits it. The output is a node register that groups machines into a small number of hardware classes, so benchmarking covers each class rather than every machine.

  2. Benchmark models and quantization on a reference node

    Pick one node per hardware class and test candidate open-weight models in GGUF format at several quantization levels, measuring time to first token, tokens per second, memory use and output quality on your own prompts. Involve the business owners who will judge answer quality, since speed numbers alone do not show whether a smaller quantization is acceptable. The output is a signed-off model and quantization matrix per hardware class, with the context length and concurrency each one supports.

  3. Harden the engine before any user connects

    Configure llama-server or Ollama with API key authentication, TLS using PEM certificate and key files, and a bind address limited to the interface the clients need, not all interfaces. Disable cloud features in Ollama with OLLAMA_NO_CLOUD=1 or the server configuration file, and enable the metrics endpoint only where monitoring will read it. The output is a hardened configuration file and a test log showing that unauthenticated requests are rejected and the engine is unreachable from networks it should not reach.

  4. Package binaries, models and checksums offline

    Build a single offline bundle containing the engine binary or container image, the approved GGUF files, configuration templates and documentation, then generate and record checksums for every file. Store the bundle in your own artifact repository and verify checksums on the way in, so each site installs from the same reviewed artifacts without downloading at runtime. The output is a versioned, checksummed release bundle with a manifest that the fleet can be audited against.

  5. Pilot at one site

    Install the bundle at one representative site, connect a small group of real users through the agreed client applications, and run the service through normal working conditions, including a reboot, a network interruption and a model swap. Record latency, errors, memory pressure and user feedback against the targets set in the benchmark phase. The output is a pilot report that states which settings changed, which failures were found and whether the configuration is fit to copy to other sites.

  6. Roll out the fleet from a configuration baseline

    Deploy the approved bundle to remaining sites using one configuration baseline per hardware class, with site-specific values such as hostnames and certificates kept separate from the shared settings. Use the same automation for every node so drift is visible and reversible. The output is a deployment record for each site that shows the bundle version, checksums verified, configuration applied and the validation tests passed.

  7. Operate the fleet in run state

    Set up monitoring of node health, queue depth, response times and model versions, and define who receives alerts and who can change configuration. Schedule engine and model updates through the same offline bundle process, retest one node per class before wider release, and keep logs needed for accountability. The output is a run book, an on-call assignment and a current fleet inventory that is reconciled against the deployment records. Ask any implementation partner to show how these are handed over and who keeps them current.

How managing many small nodes changes operations

How do you stop configuration drift across dozens of branch inference nodes?

Drift is controlled by treating every node as a copy of one reviewed definition, not as a hand-tuned server. The engine flags, model files, environment variables such as OLLAMA_NUM_PARALLEL and OLLAMA_MAX_QUEUE, the bind address and the TLS settings should live in version-controlled configuration and be applied by automation. The drivers are the number of sites, how often staff log in locally to fix something, and whether any node can be changed outside the pipeline. Standardize one baseline image or playbook per hardware class, keep a short list of approved site-specific overrides, and run a periodic check that compares each node's running configuration with the baseline. Ask any partner how they detect a node that was changed by hand and how that change gets back into the baseline.

How often do you patch llama.cpp or Ollama on many nodes?

Patching cadence is set by the release rhythm of the engine and by how much testing each release needs. llama.cpp publishes numbered builds continuously, with build b11717 dated October 18, 2026 as one example, and Ollama shipped v0.40.5 on October 14, 2026 with a pre-release v0.40.6 two days later. Frequent releases mean you need a defined policy: which channel is allowed in production, who approves an upgrade, how a build is tested against your models and prompts, and how a failed node is rolled back. Keep the binary and its checksum in an internal artifact store so every node runs the same verified build. Confirm with your partner how many releases per quarter they expect to test and what happens when a security fix arrives between scheduled windows.

How do you pin model versions so every site answers the same way?

Pin each model by file identity, not by name. A GGUF file or an Ollama model tag can change under the same label, so record the exact file hash, the quantization level and the context length in a model manifest that every node checks at startup. Use one approved model list for the fleet, and let sites differ only where a documented reason exists, such as local language needs. When you upgrade a model, roll it out to a canary node first, run your regression prompts, and only then promote it. Ask suppliers how they tell you a model has changed and whether they publish checksums for the artifacts you download.

How do you collect metrics from many inference endpoints?

Collect metrics centrally from every node through a Prometheus-compatible scraper or an equivalent agent. llama-server can expose a Prometheus-compatible metrics endpoint when started with --metrics, so you can enable it in the baseline configuration and scrape it over a management network. Ollama does not document a comparable built-in metrics endpoint in the sources reviewed here, so confirm how you will gather request counts, latency, queue depth and loaded models, perhaps through a proxy or host-level exporters. Standardize the metric names, the labels (site, node, model, build) and the alert thresholds before the first site goes live. Plan for a central time series store and for what happens to metrics when a site's WAN link is down.

What happens when an edge node stays offline for weeks?

A node that returns after a long outage can be running an old engine, an old model, an expired certificate or a stale key, so it should rejoin the fleet through the same process as a new node. Design for this case from the start: keep the node stateless where possible, store models and configuration on the device in a known state, and have it refuse to serve until its version and checksums match the current manifest. Decide in advance whether a node that was offline longer than your tolerance is reimaged instead of patched. Also consider the data it may hold, such as cached prompts or logs, and how those are collected or wiped. Ask your partner what their reconnection procedure looks like and how they test it.

How do you rotate API keys and TLS certificates across many nodes?

Rotation at fleet scale depends on a secrets store and automation, because manual copying of keys to each node does not scale and leaves stale credentials behind. llama-server supports API key authentication through --api-key or an API key file, and TLS through PEM certificate and key files, so the key file path and certificate renewal can be handled by your configuration management. Ollama's local API at port 11434 does not require authentication by default and binds to 127.0.0.1, so any network exposure must be added in front of it with a proxy that enforces authentication. Define a rotation interval, a process for revoking a lost node's credentials, and an alert for certificates that are close to expiry. Confirm how your partner will store and rotate these secrets and who holds the keys.

Who owns the fleet after the initial rollout?

Ownership after rollout is the decision that determines whether the fleet stays healthy, and it should be written down before the first site goes live. Your team, a partner or a mix can own the baseline, the patch pipeline, monitoring, on-call response and model promotion. Costs recur in each of these areas: engineering time for upgrades and testing, hardware replacement, and on-call coverage across time zones. Ask a partner for a handover plan that names runbooks, the process for adding a site, and the support hours they commit to in writing. Ongoing support and upgrades can be arranged as a retainer, and the scope of that retainer should be agreed in writing before work begins.

Can we run a small node fleet ourselves?

Yes, a small team can run a fleet if the work is standardized, but the effort grows with the number of sites, the number of model and engine versions in use, and how many people can make changes. Ollama states that running models on your own hardware is always unlimited, and its engine is MIT licensed, so software licensing does not block self-operation. The real questions are staffing, testing capacity and the skills needed for configuration management, metrics and secrets handling. Before deciding, write down the baseline, the patch policy, the on-call model and the handover process, and estimate the hours each one requires from your own staff. If those hours are not available, a fixed-scope implementation followed by a support retainer is one option to compare.

Evidence to collect for auditors and regulators

This table lists the evidence an assessor or regulator is likely to ask for from a fleet of CPU-only inference nodes, what each item proves and which component produces it. Read it as a starting list to agree with your auditor, since the required evidence depends on the frameworks that apply to your organization. The main takeaway is that node-level records, not the central platform alone, carry most of the proof.

Evidence itemWhat it provesComponent that produces it
Model inventory per nodeWhich GGUF model files, versions and checksums run on each node, and when each was installed or changedConfiguration management export and model file hashes recorded at install time
Configuration baseline per nodeThe approved llama-server or Ollama settings, bind addresses, parallelism and queue limits, and any drift from that baselineConfiguration management tool, version-controlled service files and environment settings such as OLLAMA_HOST and OLLAMA_NUM_PARALLEL
Access and API key recordsWho or which application holds an API key for each node, when keys were issued, rotated or revokedllama-server --api-key or key file, plus the key register kept by the platform team
TLS configurationThat client traffic to each node is encrypted, with certificate issuer, validity and key storage locationllama-server PEM certificate and key files, certificate management records and scan output
Metrics and availability recordsNode uptime, request volume, queue depth and latency over time, supporting capacity and availability claimsllama-server --metrics Prometheus-compatible endpoint, scraped and retained by a central monitoring stack
Patch and release historyWhich engine build each node runs and when it was upgraded, relevant to vulnerability managementPackage manager or image registry records, llama.cpp build identifiers and Ollama release tags
Event logs retained for the required periodWho called which model, when and with what outcome, kept for the period your obligations set. Where the EU AI Act applies, Article 19(1) sets a minimum of six months for logs of high-risk systemsReverse proxy or application logs shipped to central storage with retention policy and access controls
Backup and restore recordsThat model files, configuration and keys can be recovered on a replacement node within the recovery objective you setBackup job logs and periodic restore test results, which should be confirmed with your backup tooling

When a central GPU service is the better choice

Choose a central GPU service when a site can host a GPU, the organization is allowed to put one there, and the workload needs either larger models or more concurrent users than a CPU node can serve. Start the decision with three questions: does the site have power, cooling and physical access control for an accelerator, does the data protection policy allow inference hardware at that location, and does the use case need a model that a CPU can answer within the time users will tolerate. If the answer to all three is yes, a shared inference service on a GPU server in a data center or secure server room is usually simpler to secure, patch and monitor than a fleet of small CPU nodes.

The second trigger is concurrency. Ollama defaults to one parallel request per model (controlled by OLLAMA_NUM_PARALLEL), and llama-server handles parallel decoding and continuous batching, so a CPU node that serves a handful of staff at one site will queue requests quickly once several teams share it. A central engine with its own API key, TLS termination and the --metrics endpoint gives one place to set limits, watch queue depth and add capacity. Before committing, load-test the candidate model with your real prompt lengths. Confirm the throughput on the specific GPU model you plan to buy, because published figures rarely match your context sizes.

The third trigger is fleet size. Managing many edge nodes means provisioning, model distribution, key rotation and upgrades at every location, and that effort does not shrink as the fleet grows. If only a few sites need local inference, or if the sites already have connectivity to a central data center, one central service with routing from each site is often the lower-effort design. Keep the edge pattern for sites that must work when the WAN link is down. Ask your implementation partner to document which sites fall into each group, and to show the operating effort per node in the proposal.

What do buyers ask before hiring help for CPU-only inference?

What drives the cost of a CPU-only inference project?

The biggest drivers are the number of sites and machines, how many distinct hardware profiles exist, how much benchmarking is needed to choose a model and quantization per profile, and how much hardening and monitoring each node needs. Cost splits into one-time work (hardware survey, design, benchmarking, hardening, documentation, handover) and recurring work (updates, model changes, monitoring, support). Ask for the quote to list each site, each hardware profile, the benchmark matrix, the update cadence and the support hours separately, so you can see which items scale with fleet size. No fixed figure applies across environments, so the written scope is the basis for any number.

How long does a CPU-only inference rollout take?

Duration depends mainly on the number of sites, whether hardware is already on hand, how many hardware profiles need separate testing, and how much network access and approval each location requires. A pilot at one site usually takes far less time than a fleet rollout across branches, ships or plants because each new profile repeats survey and benchmarking. DeployOpen does not publish timelines; confirm the phases, dependencies and acceptance tests in the written scope before work starts.

What does our organization need to provide before the work starts?

Most of the dependencies sit with your team rather than the implementation partner. Plan to provide:

  • Physical or remote access to each site, with change windows agreed in advance
  • The hardware inventory or purchase decisions, including CPU generation and installed memory
  • Network rules for outbound model downloads, internal clients and any metrics collection
  • Named decision owners for security, model approval and acceptance testing

Confirm in the quote which of these the partner expects you to supply and which are included in the fixed scope.

Can our internal team run CPU-only inference without a partner?

Yes, a team with Linux administration, container and service management experience, and access to a test node can run llama.cpp or Ollama on a single machine. The harder part is repeating the work across many nodes: keeping model files, engine builds and configuration consistent, applying authentication and TLS, and checking performance on each hardware profile. Assess whether you have people to own that fleet process over time. A partner can build the baseline and runbooks, then hand over operations, or your team can own it from the start.

Do we need a retainer for updates after go-live?

Not always, but you should plan for ongoing work. llama.cpp publishes numbered builds continuously, and Ollama ships frequent releases, so each engine upgrade and model change needs testing on every hardware profile. Ollama's own documentation notes that it binds to 127.0.0.1 port 11434 by default and that the local API does not require authentication, so exposing nodes to the network requires a proxy or gateway with access control. Decide whether your team will handle that cycle internally or whether a retainer for upgrades, testing and support better fits your release calendar. Ask the partner to state the support hours, response process and upgrade cadence in writing.

Which parts of the work determine whether a node is secure?

Security on small nodes depends on four controls: restricting who can reach the engine, enabling authentication, encrypting traffic and limiting what each node can reach. The llama-server supports API key authentication through an API key file or the --api-key option, TLS through PEM certificate and key files, and an optional Prometheus-compatible metrics endpoint enabled with --metrics. Ask the partner how they handle key distribution and rotation across many nodes, how they confirm metrics are not exposed beyond the monitoring network, and how they document these settings for audit evidence.

What should a quote for CPU-only inference include?

A useful quote lists the scope in writing: the sites and machines in scope, the hardware survey method, the models and quantization levels to benchmark, the response-time and throughput criteria for acceptance, the hardening baseline, the monitoring setup, the documentation and handover items, and any exclusions. It should also separate one-time deliverables from recurring support and state what each assumes about your environment. If a line item is missing, ask whether it is excluded or included, because gaps usually appear later as change requests.

Integration points at each site and in the central estate

Each edge node is small, but it still has to talk to applications, identity, monitoring and a backup target. The cards below cover the touchpoints that matter at every branch, ship or plant, and the ones that sit in the central estate and keep a fleet of nodes manageable.

Local API consumers

Applications on the same site call the node over its OpenAI-compatible routes, so each site usually runs a single llama-server or Ollama endpoint bound to the local network. Decide which hosts may call it and whether browser tools reach it directly or only through a site proxy. Ollama binds to 127.0.0.1 on port 11434 by default, so the bind address must be changed deliberately, and the change should be tested from every client subnet that needs access.

Identity and API key management

Local Ollama calls need no authentication by default, so the node itself must be protected at the network layer or in front of it. llama-server can require a key through --api-key or an API key file, and TLS can be terminated with PEM certificate and key files. Confirm how keys are issued, rotated and revoked on hardware that may sit unattended, and whether a central identity provider can be used from sites with weak connectivity.

Gateway routing

A central gateway can route requests from applications to the nearest healthy node, or to a larger central model when a site is online and the task allows it. Keep routing rules explicit: which model names map to which sites, what happens when a node is offline, and whether prompts ever leave the site. Confirm that the gateway you choose can health-check many small endpoints and that failover does not silently send regulated data to a different region.

Metrics and logs

llama-server can expose a Prometheus-compatible metrics endpoint when started with --metrics, which lets a central monitoring stack track queue depth, throughput and errors across the fleet. Ship request logs off the node when the use case needs an audit trail, and set retention on both sides. Where high-risk AI obligations apply, confirm with counsel which events must be recorded and how long they are kept.

Model and binary artifact repository

Each site needs the exact GGUF file and llama.cpp build it was tested with. Keep a central, internal artifact store where weights and binaries are hashed, approved and versioned, and have nodes pull only from that store. Build numbers change often, with llama.cpp publishing continuously, so pin the build for each site and record which model file and quantization are deployed where. Confirm how a new model is promoted to a subset of nodes before the fleet is updated.

Backup of configuration

A small node is cheap to replace, but its configuration is not. Back up model lists, service unit files, environment settings such as OLLAMA_MODELS and OLLAMA_NUM_PARALLEL, TLS material, and API key files to the central estate, encrypted and access-controlled. Test a rebuild from that backup on a spare machine. Ask the partner how restores are verified and who holds the keys needed to decrypt them.

How DeployOpen scopes and supports edge inference

DeployOpen plans, builds, hardens and documents CPU-only inference nodes inside the client's own sites, data centers or networks, so each branch, plant or vessel runs under the same controls as the rest of the estate. Engagements are fixed-scope, with the scope, deliverables and timeline agreed in writing before work starts.

How we scope

  • Written scope lists the sites, node count, hardware classes and operating systems in the engagement
  • Model shortlist, quantization level and required context length are agreed against measured response times on target hardware
  • Scope defines authentication, TLS, metrics and log retention for each node, plus who owns patching and model updates

How we build

  • Builds llama.cpp or Ollama nodes from a repeatable image, configured with the bind address, API key or key file, and TLS certificate files
  • Tests response times and concurrency on representative CPU hardware before any model is approved for a site
  • Packages model files and engine builds for transfer into networks where nodes cannot download at runtime

How we hand over

  • Delivers runbooks for provisioning, updating, rolling back and retiring a node, written for the client's operations team
  • Documents the configuration baseline, model inventory, access list and metrics endpoints for each site
  • Trains the named operators on alerting, log review and the procedure for replacing a failed node

How we support

  • Ongoing support, upgrades and continuous testing are available as a retainer after handover
  • Retainers can cover engine release reviews, model replacement and periodic security testing of each node's endpoint
  • Confirm response expectations, coverage hours and escalation paths in the written agreement before signing

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.