1.0.-Installing-Harbor.md

June 3, 2026 ยท View on GitHub

Installing Harbor

Harbor lets you run local LLMs and 50+ AI services with simple commands. Get Open WebUI + Ollama running in minutes.

Note

Harbor is in active development (v0.x). Join our Discord for support.

At a Glance

PathTimePrerequisitesBest For
Quick Start5 minDocker + GitDocker users
Agent Install Prompt5-15 minAgent CLIClaude Code, Codex, and similar tools
Complete Install15-30 minJust a computerNew to Docker
GPU Setup+10 minNVIDIA / AMD GPUOptional boost

Table of Contents


Quick Start

For users who already have Docker and Git installed.

Prerequisites Check

  • Docker installed and running (docker --version)
  • Docker Compose 2.23.1+ installed (docker compose version)
  • Git installed (git --version)
  • 10GB+ free disk space

Install Harbor

Choose your preferred method:

Quick Install Script (Recommended)

curl -fsSL https://raw.githubusercontent.com/av/harbor/refs/heads/main/install.sh | bash

Verify Installation

harbor --version
harbor doctor  # Check system compatibility

Start Using Harbor

harbor up    # Start default services (Ollama + Open WebUI)
harbor open  # Open in browser

Tip

First launch requires creating a local admin account for Open WebUI.

โœ“ Done! What's next?


Agent Install Prompt

Use install.md when you want an agentic coding tool to install Harbor for you. The prompt tells the agent to orchestrate the install through Harbor's install.sh (which installs dependencies by default) and verify with harbor --version and harbor doctor.

# With Claude Code
curl -fsSL https://raw.githubusercontent.com/av/harbor/refs/heads/main/install.md | claude

# With Codex
codex "$(curl -fsSL https://raw.githubusercontent.com/av/harbor/refs/heads/main/install.md)"

This is the recommended path for Claude Code, Codex, and similar local agents. Use the quick script directly when you are installing Harbor yourself.


Complete Installation Guide

New to Docker? No problem. Choose your platform below for step-by-step instructions.

Harbor is a containerized toolkit that runs on top of Docker. This enables Harbor to support so many services and work across platforms. The sections below guide you through setting up Docker and all prerequisites.

๐ŸชŸ Windows Installation

Windows Installation (15-25 minutes)

What you'll need:

  • Windows 10/11 (64-bit)
  • 20GB free disk space
  • Administrator access

Why WSL2? Harbor uses WSL2 (Windows Subsystem for Linux) to run Docker on Windows. Think of it as a lightweight Linux environment inside Windows.

Step 1: Install WSL2 (5 minutes)

Open PowerShell as Administrator and run:

wsl --install

Restart your computer when prompted.

Verify:

wsl --version

You should see WSL version information โœ“

Step 2: Install Docker Desktop (10 minutes)

  • Download Docker Desktop for Windows
  • Run the installer
  • During installation, ensure "Use WSL 2 instead of Hyper-V" is checked
  • Restart your computer
  • Launch Docker Desktop
  • In Docker Desktop settings, go to Resources โ†’ WSL Integration
  • Enable integration with your default WSL distro

Verify (in WSL2 terminal):

docker --version
docker compose version
docker run hello-world

You should see "Hello from Docker!" โœ“

Step 3: Install Git (2 minutes)

In your WSL2 terminal:

sudo apt update && sudo apt install git -y

Verify:

git --version

Step 4: Install Harbor (5 minutes)

Follow the Harbor CLI installation methods below.

โœ“ Success! What's next?

  • Run harbor doctor to verify everything is working
  • Try harbor up to start default services
  • Learn more about Harbor

Common Issues:

  • Docker Desktop not starting? Ensure virtualization is enabled in BIOS
  • WSL not installing? You may need to enable Windows features manually
  • Permission issues? Ensure Docker integration is enabled for your WSL distro
๐ŸŽ macOS Installation

macOS Installation (15-20 minutes)

What you'll need:

  • macOS 11 (Big Sur) or newer
  • 20GB free disk space
  • Administrator access

Note

ARM64 Limitation: Some services don't ship ARM64 images (Apple Silicon). GPU pass-through is not supported on macOS. For Metal-accelerated inference, use host-native backends like Docker Model Runner (harbor up dmr), MLX (harbor up mlx), or oMLX (harbor up omlx) โ€” they run on the host and are exposed to Harbor containers via a proxy.

Step 1: Install Docker Desktop (10 minutes)

  • Download Docker Desktop for Mac
    • Choose Apple Silicon or Intel based on your Mac
  • Open the .dmg file and drag Docker to Applications
  • Launch Docker from Applications
  • Follow the setup wizard
  • Grant the requested permissions

Verify (in Terminal):

docker --version
docker compose version
docker run hello-world

You should see "Hello from Docker!" โœ“

Step 2: Install Git (2 minutes)

Git typically comes pre-installed on macOS. Verify:

git --version

If not installed, macOS will prompt you to install Command Line Tools.

Or install via Homebrew:

brew install git

Step 3: Install Harbor (5 minutes)

Follow the Harbor CLI installation methods below.

โœ“ Success! What's next?

  • Run harbor doctor to verify everything is working
  • Try harbor up to start default services
  • Learn more about Harbor

Common Issues:

  • Docker Desktop not starting? Check System Preferences โ†’ Privacy & Security
  • Permission errors? Grant Full Disk Access to Docker in System Preferences
  • ARM64 service not available? Check available services for ARM64 support
๐Ÿง Linux Installation

Linux Installation (15-20 minutes)

What you'll need:

  • Ubuntu 20.04+, Debian 11+, Fedora 35+, or similar
  • 20GB free disk space
  • Sudo access

Step 1: Install Docker (10 minutes)

Ubuntu/Debian:

# Add Docker's official GPG key
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add repository
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# Install Docker
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

Fedora:

sudo dnf -y install dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/fedora/docker-ce.repo
sudo dnf install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
sudo systemctl start docker
sudo systemctl enable docker

Configure Docker to run without sudo:

sudo groupadd docker
sudo usermod -aG docker $USER
newgrp docker

Verify:

docker --version
docker compose version
docker run hello-world

You should see "Hello from Docker!" โœ“

Step 2: Install Git (2 minutes)

Ubuntu/Debian:

sudo apt-get install git -y

Fedora:

sudo dnf install git -y

Verify:

git --version

Step 3: Install Harbor (5 minutes)

Follow the Harbor CLI installation methods below.

โœ“ Success! What's next?

  • Run harbor doctor to verify everything is working
  • Try harbor up to start default services
  • Learn more about Harbor

Common Issues:

  • Permission denied? Ensure you've added your user to the docker group and logged out/in
  • Docker service not starting? Try sudo systemctl status docker
  • Old Docker version? Ensure Docker Compose 2.23.1+ is installed

GPU Acceleration (Optional)

Should you set this up?

  • โœ“ You have an NVIDIA or AMD GPU
  • โœ“ You want 3-10x faster inference for local LLMs

NVIDIA Setup

Note

Official documentation: NVIDIA Container Toolkit Installation Guide

Ubuntu/Debian:

# Add NVIDIA Container Toolkit repository
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | \
  sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
  sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

# Install
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
sudo systemctl restart docker

Arch Linux:

# Install from official repositories
sudo pacman -S nvidia-container-toolkit

# Configure Docker runtime
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

Windows (WSL2): Follow the Ubuntu/Debian instructions above inside your WSL2 terminal.

Verify:

docker run --rm --gpus all nvidia/cuda:12.0.0-base-ubuntu22.04 nvidia-smi

You should see your GPU information โœ“

AMD Setup (ROCm)

Note

Official documentation: AMD ROCm Docker Guide

Use this method if you have an AMD Radeon GPU (RX 6000/7000 series or newer recommended).

Tip

Ensure your user is in the render or video group to access GPU devices: sudo usermod -aG render,video $USER

Ubuntu (22.04 / 24.04):

# 1. Add ROCm GPG key
wget https://repo.radeon.com/rocm/rocm.gpg.key -O - | \
  gpg --dearmor | sudo tee /etc/apt/keyrings/rocm.gpg > /dev/null

# 2. Add repository
source /etc/os-release
echo "deb [signed-by=/etc/apt/keyrings/rocm.gpg] https://repo.radeon.com/amd-container-toolkit/apt/ $VERSION_CODENAME main" \
  | sudo tee /etc/apt/sources.list.d/amd-container-toolkit.list

# 3. Install
sudo apt update && sudo apt install -y amd-container-toolkit

# 4. Configure Docker
sudo amd-ctk runtime configure
sudo systemctl restart docker

Warning

Important: You must run amd-ctk runtime configure. Harbor specifically checks for the amd Docker runtime to auto-detect your GPU. If you skip this, your GPU will likely be ignored.

Fedora / RHEL:

# 1. Add repository and install
sudo dnf config-manager --add-repo https://repo.radeon.com/amd-container-toolkit/el9/main/amd-container-toolkit.repo
sudo dnf install -y amd-container-toolkit

# 2. Configure Docker
sudo amd-ctk runtime configure
sudo systemctl restart docker

Verify:

Note

This command may download the Ubuntu image if not present on your system.

docker run --rm --runtime=amd -e AMD_VISIBLE_DEVICES=all ubuntu ls -l /dev/dri

Expected output: /dev/dri/renderD128 shown in the container.

โœ“ GPU Enabled! Harbor will automatically use GPU for supported services when available.


Harbor CLI Installation Methods

Choose your preferred installation method. All methods work equally well.

This automated script:

  • Installs system dependencies (Git, curl, Docker, Docker Compose) by default via requirements.sh
  • Clones Harbor to ~/.harbor
  • Adds Harbor to your PATH
  • Works on Linux, macOS, and Windows (WSL2)
curl -fsSL https://raw.githubusercontent.com/av/harbor/refs/heads/main/install.sh | bash

If Docker, Git, and Docker Compose are already installed and you want to skip the dependency step:

curl -fsSL https://raw.githubusercontent.com/av/harbor/refs/heads/main/install.sh | bash -s -- --skip-requirements

Tip

Want to review the script first? curl -fsSL https://raw.githubusercontent.com/av/harbor/refs/heads/main/install.sh | less

Tip

Want an agentic tool to run the install for you? Use the Agent Install Prompt.

Tip

Need a custom install location? See Manual Install below.

On Windows: Run this inside your WSL2 terminal, not PowerShell.


Manual Install

Same as the quick install script, but manual. You can install Harbor to any location:

# Default location
git clone https://github.com/av/harbor.git ~/.harbor
cd ~/.harbor

# Or a custom location
git clone https://github.com/av/harbor.git /path/to/harbor
cd /path/to/harbor

# Make Harbor CLI available globally
./harbor.sh ln

# Verify installation
harbor --version

The harbor update command works the same way regardless of install location.

Tip

Use harbor home to reference the install path in scripts and commands.

Troubleshooting:

  • If harbor command not found after install, restart your shell
  • On some systems, you may need to manually add ~/.local/bin to PATH

Verify Your Installation

After installing via any method:

# Check Harbor version
harbor --version

# Check system compatibility
harbor doctor

# View available commands
harbor --help

Expected output from harbor doctor:

  • โœ“ Docker installed and running
  • โœ“ Docker Compose 2.23.1 or newer
  • โœ“ Git installed
  • โœ“ Sufficient disk space

โœ“ Installation Complete!

Next steps:

# Start default services (Ollama + Open WebUI)
harbor up

# Open in browser
harbor open

# Browse available services
harbor ls

Tip

First launch requires creating a local admin account for Open WebUI. This is required because Harbor supports exposing your services to the internet.

Learn more:


Troubleshooting

harbor doctor

The harbor doctor command checks your system for common issues:

harbor doctor

This will verify:

  • Docker installation and daemon status
  • Docker Compose version compatibility
  • Git installation
  • Disk space availability
  • File permissions
  • Bash version

Common Issues

"docker: command not found"

  • Docker is not installed or not in PATH
  • On Windows: Make sure you're running commands in WSL2, not PowerShell
  • Solution: Follow the Complete Installation Guide for your platform

"Cannot connect to the Docker daemon"

  • Docker Desktop is not running
  • Solution: Start Docker Desktop and wait for it to fully initialize

"docker compose: command not found" or version too old

  • Docker Compose plugin not installed or outdated
  • Solution: Install/update Docker Compose plugin (minimum version 2.23.1)
  • Check version: docker compose version

"Permission denied" when running docker commands

  • On Linux: User not in docker group
  • Solution: sudo usermod -aG docker $USER then log out and back in
  • On Windows/macOS: Docker Desktop permissions issue

Services fail to start with GPU errors (NVIDIA or AMD)

  • NVIDIA Container Toolkit not properly installed
  • AMD: amd runtime not configured or /dev/kfd missing permission
  • Solution: See GPU Acceleration section. For AMD, ensure you ran amd-ctk runtime configure.

"harbor: command not found" after installation

  • PATH not updated or shell not restarted
  • Solution: Restart your terminal or run source ~/.bashrc (or ~/.zshrc)
  • Manual fix: Add ~/.local/bin to your PATH (Harbor links the CLI there via harbor.sh ln)

Services download slowly or fail

  • Large Docker images (especially with CUDA)
  • Solution: Be patient, first download can take 10-30 minutes depending on your internet
  • Retry: harbor down && harbor up

Need more help?


Harbor App (GUI)

Alternative to the command-line interface.

Harbor App provides a graphical interface for managing Harbor services. It's built on top of the Harbor CLI.

On first launch, the app can install Harbor and host prerequisites for you through a guided setup flow. You only need to download and install the Harbor App package first; the CLI install is optional beforehand.

Note

Harbor App is in beta. The CLI is more stable and feature-complete for advanced workflows. Windows App support is beta and uses WSL2 plus Docker Desktop.

When to Use Harbor App

Use Harbor App if you:

  • Prefer graphical interfaces over command-line
  • Want visual service management
  • Want App-first install on Linux, macOS, or Windows (WSL2)
  • Are comfortable with beta software

Use Harbor CLI if you:

  • Comfortable with terminal commands
  • Want the most stable experience
  • Need all features and latest updates
  • Prefer installing Harbor manually before opening the app

Prerequisites

App package only (recommended path)

  • Harbor App installed from releases
  • Linux, macOS, or Windows 10/11 with WSL2 capability (Windows)
  • Administrator or sudo access when the guided installer needs it
  • Network access for Docker images and Harbor install scripts

Already have Harbor CLI (optional)

  • harbor on PATH (or in WSL for Windows) and harbor doctor passing
  • Docker daemon running when you start services

If the CLI is missing, launch the app and use Install Harbor on the setup screen. See Harbor App โ€” Guided setup for platform-specific behavior.

Installation by Platform

๐Ÿง Linux

Download the package for your distribution from the latest release:

Debian/Ubuntu (.deb)

# Download the .deb file from releases
sudo dpkg -i Harbor_*.deb

# If dependencies missing:
sudo apt-get install -f

AppImage (Universal)

# Download the .AppImage file from releases
chmod +x Harbor_*.AppImage
./Harbor_*.AppImage

โœ“ Launch Harbor App from your applications menu or run the AppImage.

๐ŸŽ macOS

Important: Harbor App is not code-signed. You'll need to bypass macOS security.

Installation Steps

  1. Download Harbor_aarch64.app.tar.gz from releases page
  2. Extract the archive (double-click the .tar.gz file)
  3. You'll see Harbor.app in the same directory
  4. Open Terminal in that directory and run:
sudo xattr -d com.apple.quarantine ./Harbor.app
  1. Enter your system password when prompted
  2. Launch Harbor.app by double-clicking it
  3. (Optional) Move to Applications folder for easier access

โœ“ Harbor App is now ready to use!

Harbor App on macOS

Troubleshooting:

  • "damaged and can't be opened": Run the xattr command above
  • Setup screen or errors after launch: Complete guided setup or run harbor doctor after the CLI is installed
  • Can't find Harbor.app: Make sure you extracted the .tar.gz file
๐ŸชŸ Windows

Harbor App on Windows is beta. Guided setup installs WSL2 (if needed), an Ubuntu WSL2 distro, Docker Desktop, and the Harbor CLI inside WSL via install.ps1.

  1. Download .msi or setup.exe from releases page
  2. Run the installer
  3. Launch from Start Menu
  4. On the setup screen, choose Install Harbor and complete any WSL or Docker Desktop first-run prompts
  5. Enable Docker Desktop WSL integration for your Ubuntu distro when prompted, then Retry setup if Docker was not reachable yet

Optional: set HARBOR_WSL_DISTRO to your Ubuntu distro name before launching the app if you do not use the default.

If setup is blocked or the main UI shows errors:

  • Run harbor doctor inside WSL: wsl.exe -d Ubuntu -e bash -lic 'harbor doctor'
  • Confirm Docker Desktop is running and integrated with your WSL distro
  • Restart Harbor App after WSL or Docker Desktop finishes its first-run setup

Having issues? See Harbor App โ€” Guided setup or install Harbor manually in WSL2 with the Windows installation steps and press Check in the app.


Next Steps with Harbor App

After installing the app package:

  1. Launch the app โ€” Complete guided setup if prompted, or confirm Ready if harbor is already installed
  2. Verify the CLI โ€” Open the CLI screen and confirm harbor doctor passes
  3. Browse services โ€” See all 50+ available services on the Home screen
  4. Start services โ€” Start the default stack or individual services (for example Open WebUI and a backend)
  5. Monitor status โ€” View running services and their logs
# Equivalent CLI steps after setup is ready
harbor doctor
harbor up
harbor open

Learn more:


Additional Resources

System Requirements Summary

Minimum:

  • 10GB free disk space (more recommended for multiple services)
  • 8GB RAM (16GB+ recommended for LLMs)
  • Docker 20.10+
  • Docker Compose 2.23.1+
  • Bash 3.2+

Recommended:

  • 50GB+ free disk space
  • 16GB+ RAM
  • NVIDIA GPU (optional, for faster inference)
  • SSD storage (for better performance)

Bash Version Check

Harbor requires Bash 3.2 or newer (available by default on most systems):

bash --version

If you encounter Bash-related issues, please report them.

Getting Help

What's Next?

Now that Harbor is installed:

  1. Learn the basics: Harbor User Guide
  2. Explore services: Browse 50+ services
  3. Master the CLI: Complete CLI Reference
  4. Join the community: Discord

Popular first services to try:

Welcome to Harbor! ๐Ÿšข