docker compose-based service orchestration with dynamic configuration resolution
Harbor abstracts Docker Compose through a CLI system that dynamically resolves and merges compose files based on requested services, hardware capabilities (GPU detection via has_nvidia()), and user profiles. The orchestration engine uses a 'Lego-like' modular approach where each service is a pluggable module, with the core harbor.sh script handling service lifecycle management through functions like run_up() for starting services with flags like --tail or --open. Configuration is merged via compose_with_options() which combines base compose files with service-specific overrides.
Unique: Uses dynamic compose file merging with hardware-aware profile selection (compose_with_options + has_nvidia detection) rather than static configuration, enabling single-command deployment across heterogeneous hardware without manual intervention
vs alternatives: Simpler than Kubernetes for local AI stacks but more flexible than Docker Compose alone because it automates the 'wiring' between services (e.g., connecting UI to inference backend) based on what's actually deployed
environment variable management with profile-based configuration
Harbor provides a dedicated env_manager() function in harbor.sh (lines 1257-1350) that handles get, set, and list operations for the .env file, enabling users to configure services through environment variables without editing files directly. The system supports profile-based configuration through profiles/default.env, allowing users to switch between different hardware profiles, model selections, and service configurations. Configuration changes are persisted to the .env file and automatically loaded on subsequent service starts.
Unique: Implements a dedicated env_manager() CLI function with get/set/list operations instead of requiring users to edit .env files directly, combined with profile-based configuration switching (profiles/default.env) for hardware-aware deployments
vs alternatives: More user-friendly than raw Docker Compose environment variable management because it provides CLI commands for configuration instead of requiring file editing, and supports profile switching for different hardware setups
service dependency resolution and automatic wiring with compose file merging
Harbor implements automatic service dependency resolution through its compose file merging system (compose_with_options function in harbor.sh lines 402-520). When a user requests a service, Harbor analyzes service metadata to identify required dependencies, then merges the appropriate compose files in dependency order. This ensures that if a user enables a RAG service, the required vector database and embedding model services are automatically started. The system prevents circular dependencies and validates that all required services are available before starting the stack.
Unique: Implements automatic dependency resolution through compose file merging (compose_with_options) that analyzes service metadata to identify and start required dependencies in correct order, preventing broken configurations and circular dependencies
vs alternatives: More intelligent than manual Docker Compose because it automatically resolves and starts dependencies, and more reliable than ad-hoc service startup because it validates dependency chains before starting services
version synchronization and model management across services
Harbor includes version synchronization logic (routines/models/hf.ts, routines/models/llamacpp.ts) that manages model versions across different inference backends. The system tracks which models are available in each backend (Ollama, llama.cpp, HuggingFace), handles model downloads and caching, and ensures version consistency when switching backends. Users can specify model versions through environment variables, and Harbor automatically downloads the correct version for the selected backend. The system supports model quantization variants (e.g., 4-bit, 8-bit) and automatically selects the appropriate variant based on available hardware.
Unique: Implements version synchronization and model management (routines/models/hf.ts, llamacpp.ts) that tracks model availability across backends, handles downloads and caching, and automatically selects quantization variants based on hardware
vs alternatives: More integrated than manual model management because it automates downloads and version tracking, and more flexible than single-backend model management because it supports multiple backends with different quantization variants
observability and evaluation services for llm monitoring and testing
Harbor includes observability and evaluation services that enable monitoring of LLM inference (latency, throughput, token usage) and evaluation of model outputs (quality metrics, safety checks). These services integrate with Harbor Boost to collect metrics from every LLM request, and provide dashboards and APIs for analyzing performance. The system supports custom evaluation modules that can be plugged into the request/response pipeline to assess output quality, detect hallucinations, or check for safety violations.
Unique: Provides observability and evaluation services that integrate with Harbor Boost to collect metrics from every LLM request and support custom evaluation modules for quality assessment and safety checking
vs alternatives: More integrated than external monitoring tools because it's built into Harbor's request pipeline, and more flexible than fixed evaluation metrics because it supports custom evaluation modules
custom service creation and harbor boost module development framework
Harbor provides a framework for creating custom services and Harbor Boost modules that extend the platform's capabilities. Custom services are defined as Docker Compose services with metadata declarations, while Boost modules are Python classes that hook into the LLM request/response pipeline. The framework includes templates, documentation, and integration testing utilities to help developers build and test custom extensions. Custom services are automatically discovered and integrated into the service catalog, and Boost modules can be enabled through configuration without modifying Harbor core.
Unique: Provides a framework for creating custom services (Docker Compose + metadata) and Boost modules (Python classes) that extend Harbor without forking, with automatic discovery and integration into the service catalog
vs alternatives: More extensible than closed platforms because it provides clear extension points and templates, and more integrated than plugin systems because custom services are first-class citizens in Harbor's service model
service catalog with metadata-driven discovery and tagging
Harbor maintains a curated service catalog (app/src/serviceMetadata.ts lines 8-103) with over 50 AI-related services organized by Harbor Service Tags (HST). Each service has associated metadata including category (LLM backends, frontends, satellite services, RAG tools), dependencies, port mappings, and integration patterns. The catalog enables users to discover available services, understand their purpose, and understand how they integrate with other services in the stack. Service metadata drives the dynamic composition of Docker Compose files and the Harbor Desktop App's UI.
Unique: Implements a declarative service catalog (serviceMetadata.ts) with Harbor Service Tags (HST) for categorization, enabling metadata-driven service discovery and composition rather than requiring users to manually understand service relationships
vs alternatives: More discoverable than raw Docker Compose because services are tagged and categorized with explicit metadata, making it easier for users to find and understand available services without reading documentation
harbor boost — llm proxy with python-based module system for optimization
Harbor Boost is an optimizing LLM proxy layer (services/boost/pyproject.toml) built with a Python-based module system that intercepts LLM requests and applies transformations such as prompt optimization, response caching, cost tracking, and multi-provider routing. The module system allows users to create custom Boost modules that hook into the request/response pipeline. Boost acts as a middleware between client applications and inference backends (Ollama, llama.cpp, OpenAI), enabling advanced features like artifact generation and visualization without modifying the underlying models.
Unique: Implements a Python-based module system for LLM request/response transformation that allows users to create custom optimization logic (caching, routing, artifact generation) without modifying Harbor core or client applications
vs alternatives: More flexible than static LLM proxies because the module system enables custom transformations, and more lightweight than full LLM orchestration frameworks because it focuses specifically on request/response optimization
+6 more capabilities