Harbor
Harbor
Active

Harbor

Harbor by av is an Apache-2.0 CLI and companion app for composing local AI stacks from Docker services such as Ollama, llama.cpp, vLLM, Open WebUI, SearXNG and ComfyUI. This guide covers architecture, GPU sizing, storage, secrets, network exposure, profiles, upgrades and production migration.

168

Views

0

Likes

Jan 2026

Added

github.com

Website

Tags

gpt-applicationsfree

Editorial Review

About Harbor

Harbor at github.com/av/harbor is an open-source CLI and companion app that assembles local AI services with Docker Compose. A basic harbor up can start Ollama and Open WebUI already connected; adding service handles can wire search, speech, image generation, gateways, observability and other components into the same stack. The project is Apache-2.0 licensed.

This is not the CNCF Harbor container registry at goharbor/harbor. It is also not an LLM, a security boundary or a managed production platform. It is a fast integration layer around many independently maintained images. Harbor reduces configuration work; the operator still owns image provenance, exposed ports, authentication, GPU capacity, model licenses, persistent data, upgrades and every service’s vulnerabilities.

Harbor local AI stack placeholder visual
Harbor’s current directory record lacks an official screenshot. Use the official repository and live service catalog as the product authority; this generic image is not evidence of a particular UI or capability.

A local AI stack is a network, not one application

 browser / coding client
          |
          v
 [Open WebUI / API gateway]
          |
   .------+---------+--------------.
   v                v              v
 [Ollama]      [llama.cpp]       [vLLM]       model inference
   |                |              |
   '----------------+--------------'
                    |
          .---------+----------.
          v                    v
      [SearXNG]            [Speaches]          tools / speech
          |
       Internet

 Docker network ≠ trusted network
 local host ≠ automatically private

Harbor selects Compose fragments and cross-service configuration so consumers can find providers by internal service name and expected API path. That convenience expands the trust graph: a web UI can reach a model backend, search service and speech engine; plugins or agents may call still more endpoints. Inventory data flows before adding services.

Service roles and the decision each introduces

LayerExamples documented by HarborOperator decision
Inference backendOllama, llama.cpp, vLLM, SGLang and othersModel, quantization, GPU, context, license and API exposure
FrontendOpen WebUI and alternative chat interfacesAuthentication, users, history, uploads and tools
Gateway/routerLiteLLM, Bifrost, Harbor BoostKeys, fallbacks, logs, quotas and provider routing
Retrieval/searchSearXNG, research and RAG servicesOutbound traffic, index privacy, citations and prompt injection
MediaSpeaches, ComfyUI and voice/design servicesModel rights, GPU contention and generated-media review
Agent/workflowDify, n8n, coding/agent servicesTool authority, credentials, sandboxing and side effects
Proxy/accessTraefik and built-in tunnelTLS, hostnames, authentication and internet exposure

Install with a reviewable supply chain

Official materials show installation scripts and Docker-based operation. A command such as curl ... | bash is convenient but executes mutable network content immediately. For controlled use, download the script, inspect it, pin a commit/tag and verify repository ownership before running. Review Dockerfiles and Compose definitions for the selected services.

Container tags such as latest are not reproducible. Pin image digests for a stable environment, record Harbor’s version and export the effective Compose configuration. Scan images and software bills of materials under your policy. An official image can still contain a vulnerable base layer.

ArtifactRecordWhy
Harbor CLI/appVersion, commit and installer hashReproduce orchestration behavior
Compose configRendered/ejected file and environment namesKnow what actually ran
Container imageRegistry, repository and digestPrevent silent tag drift
ModelSource, revision, hash, quantization and licenseQuality, security and legal provenance
ProfileReviewed local file and checksumProfiles can change endpoints and secrets

GPU and memory planning

Harbor can detect capabilities and pass GPU resources to supported containers, but it cannot make incompatible workloads fit. Estimate model weights, KV cache, runtime overhead and concurrent requests. A model that loads successfully may still fail at the requested context or when ComfyUI and speech services compete for VRAM.

WorkloadCapacity driverTest
Single-user chatModel weights + one KV cacheTime to first token and tokens/sec at target context
Long-context RAGKV cache and prompt preprocessingPeak VRAM/RAM and latency at realistic document size
Multiple usersBatching, queue and cache fragmentationP50/P95 latency and rejected requests under load
Image generationDiffusion model and resolutionContention while LLM backend is active
Speech pipelineAudio duration, model and real-time factorEnd-to-end capture-to-response latency

Set memory, CPU, GPU and disk quotas where practical. Monitor temperature and power on a workstation. Avoid assuming that “local” means free: include hardware depreciation, electricity, storage, engineering and idle capacity in cost per accepted task.

Ports and authentication

Bind development services to loopback unless another host must reach them. Docker-published ports can bypass assumptions about a host firewall. List listeners after startup and test from another device. Many local LLM endpoints accept dummy or no API keys because they expect a trusted machine; do not expose them to a LAN or internet unchanged.

The project explicitly warns that tunneling a service to the internet is unsafe without authentication. Treat harbor tunnel as an exposure event: require strong identity, TLS, rate limits, request-size limits, logs and a narrow target. Never tunnel a raw vLLM/Ollama endpoint or admin UI with default credentials.

ExposureMinimum controlResidual risk
Loopback onlyHost account securityMalicious local process/browser request
Trusted LANFirewall, auth and segmented subnetCompromised peer and weak Wi-Fi
Reverse proxy/VPNSSO/MFA, TLS and access policyProxy misconfiguration and stolen session
Public tunnelAll above plus abuse protection and monitoringInternet scanning, cost/DoS and model extraction

Secrets and cross-service trust

Gateways and UIs may need API keys for hosted models, search or storage. Put secrets in a managed store or protected environment file that is excluded from Git. Prefer service-specific, low-scope keys and rotate them. Inspect effective container environment and mounted files; a UI should not receive a backend key merely because both share a Compose project.

OpenAI-compatible APIs create interface compatibility, not identical authentication or semantics. A dummy key that works locally must not be reused as a real access control. Verify streaming, tool calls, structured output, model names, limits and error behavior for each client/backend pair.

Persistent data, backups and deletion

Map each volume: model cache, chat database, uploaded documents, vector indexes, generated images, logs and gateway telemetry. Decide what survives down, upgrades and profile changes. Encrypt disks and backups. Test restore with the same pinned services.

  • Separate replaceable model caches from irreplaceable user data.
  • Do not back up API keys inside application databases when avoidable.
  • Set retention for chat and uploaded documents; deletion should cover vector indexes and thumbnails.
  • Before removing a service, export data in a documented format and confirm volume cleanup.

Profiles are executable configuration

Harbor profiles save configuration for scenarios and can be imported from a URL. A profile can alter image versions, endpoints, arguments and potentially credentials. Never apply an untrusted remote profile directly. Download, inspect, pin and strip secrets; treat profile review like a code change.

Maintain profiles such as offline-private, gpu-chat and rag-test with explicit service lists and budgets. Avoid one ever-growing default profile that silently starts dozens of containers and expands attack surface.

Web RAG adds an untrusted-content channel

A Harbor stack combining Open WebUI, SearXNG and an LLM can search the web and use results as context. Web text can contain prompt injections and false claims. Label retrieved content as untrusted data, restrict tools, preserve URLs and require citations. Do not allow page instructions to access secrets or invoke administrative endpoints.

Search queries and fetched pages also leave the machine even when the LLM is local. Document this exception in any privacy claim. Proxy and DNS logs may expose user intent.

Upgrade one layer at a time

ChangeCanary evidenceRollback asset
Harbor updateRendered Compose diff and smoke testsPrior CLI/version and config
Service imageSchema, auth, UI and integration checksPrevious digest and volume snapshot
ModelQuality, tool-call and latency benchmarkPrevious model hash
GPU driver/runtimeAll backends load and sustain target workloadKnown-good host image/driver
ProfilePort, secret and data-flow diffVersioned prior profile

Back up state, stop writes and test compatibility before a migration. “Container starts” is not enough: send known prompts, perform RAG retrieval, test tool calls and verify user/history persistence.

Use eject as a graduation path

harbor eject can produce a standalone Compose representation of selected services and variables. This is valuable when an experimental combination becomes important: review the output, replace floating tags, externalize secrets, define health checks, backups, monitoring and ownership, then manage it as ordinary infrastructure.

Ejection is not automatic production hardening. Generated Compose reflects the experiment’s assumptions. Production may require Kubernetes or another scheduler, external databases, high availability, autoscaling, audit logging and tested disaster recovery.

Evaluation scorecard

DimensionMeasurePass question
Setup valueTime from clean host to working scenarioDoes Harbor materially reduce repeatable setup time?
ReliabilityCold start, restarts and failed dependency recoveryCan another operator recover it?
QualityTask benchmark on pinned model/settingsAre accepted results sufficient?
PerformanceLatency, throughput, VRAM and queueDoes it meet real concurrent load?
SecurityPorts, auth, secrets, scans and data flowsIs each service’s authority justified?
PortabilityEject and restore on a clean hostCan the stack leave Harbor without lost data?

Alternatives

OptionBest fitTradeoff versus Harbor
Harbor (av)Exploring many pre-wired local AI servicesLarge fast-changing service catalog
Ollama + Open WebUI manuallySimple stable local chatLess abstraction and easier audit, more manual wiring
LM StudioDesktop-first model download and chat/APILess multi-service Compose orchestration
Docker Compose built in-houseSmall production-owned stackMore initial engineering, clearer minimal surface
Kubernetes/HelmMulti-node production platformMuch higher operational complexity
Managed model/API platformTeams avoiding GPU infrastructureUsage cost, uploads and provider dependency

Frequently asked questions

Is this the Harbor container registry?

No. This listing points to av/harbor, a local AI-stack orchestrator. The registry project is goharbor/harbor.

Is Harbor an LLM?

No. It downloads/runs and connects model servers, UIs and supporting tools.

Is it free?

The project is Apache-2.0 licensed. Models, hosted APIs, electricity, hardware and third-party services can cost money.

Does local mean private?

Only if all selected services, models, tools and storage remain local and securely configured. Search, cloud APIs and tunnels create external flows.

Can I expose it remotely?

The project includes tunneling and proxy options but warns about internet exposure. Use authenticated VPN/reverse-proxy controls and never expose raw unauthenticated services.

Is it production-ready?

It is an excellent exploration/integration layer. Production readiness depends on the selected services plus your pinning, security, monitoring, backups and support.

How can I migrate away?

Use the eject workflow as a starting Compose file, then harden and operate it independently.

Primary sources

Last reviewed July 26, 2026. Harbor and its service catalog move quickly. Pin the orchestrator, rendered Compose, images, models and profiles and re-run security and compatibility checks after changes.

Ready to try Harbor?

Visit the official website to get started

Visit Harbor

Quick Info

Added
1/21/2026
Published
1/21/2026
Updated
9/2/2026

Share This Tool

Have an AI tool to share?

Submit it to AI Dreamhub

Get your product in front of people actively exploring AI tools.

Submit Your Tool

Related Tools

Poe

Poe

AI product built by Quora. Can use ChatGPT, Sage, Dragonfly, Claude bots for free. All you need is an email address to register. GPT-4 can be used once a day for free

gpt-applicationsfree
2200
HuggingChat

HuggingChat

Independent HuggingChat 2026 review: current status, Omni and model choice, provider/privacy boundaries, tools, limits, verification and alternatives.

open modelsAI chatHugging Face
1990
Google AI Studio

Google AI Studio

Google AI Studio is a free, web-based developer tool that enables you to quickly develop prompts and then get an API key to use in your app development.

gpt-applicationsfree
2060
NotebookLM

NotebookLM

AI Research Assistant developed by Google. Upload PDFs, websites, YouTube videos, audio files, Google Docs, or Google Slides, and NotebookLM will summarize them and make interesting connections between topics.

gpt-applicationsfree
2100