Upgrade Harbor 2.13.1 → 2.14.0 on Ubuntu 24.04

TL;DR: This upgrades Harbor 2.13.1 → 2.14.0 for the exact setup from my previous guide — Install Harbor 2.13.1 on Ubuntu 24.04 with HAProxy, Let’s Encrypt (DNS-01), and Systemd.


Scope & Assumptions

  • TLS termination: at HAProxy:443 (Let’s Encrypt DNS-01 via Cloudflare).
  • Harbor binding: HTTP only, bound to 127.0.0.1:80 and exposed externally only through HAProxy.
  • Config: external_url: https://harbor.maksonlee.com, http.port: 80, no https: block in harbor.yml.
  • Service management: Docker Compose v2 and a harbor.service systemd unit.
  • Paths: Harbor program/config in /opt/harbor, data in /data (default layout from the previous post).

If your deployment differs (Kubernetes/Helm, external Postgres/Redis, or air-gapped), adapt accordingly.


  1. Pre-flight (stop Harbor)
cd /opt/harbor
sudo docker compose down

  1. Backups (minimal but enough to roll back)
cd ~
mkdir -p ~/backup
sudo mv /opt/harbor ~/backup/harbor
sudo cp -r /data/database ~/backup/

  1. Download Harbor 2.14.0 and restore your harbor.yml
curl -LO https://github.com/goharbor/harbor/releases/download/v2.14.0/harbor-online-installer-v2.14.0.tgz

sudo mkdir -p /opt/harbor
sudo tar -xzf harbor-online-installer-v2.14.0.tgz -C /opt/harbor --strip-components=1

# Reuse the previous config
sudo cp ~/backup/harbor/harbor.yml /opt/harbor/

  1. Migrate harbor.yml (prepare migrator)
sudo docker pull goharbor/prepare:v2.14.0
sudo docker run -it --rm -v /:/hostfs \
  goharbor/prepare:v2.14.0 migrate \
  -i /hostfs/opt/harbor/harbor.yml

  1. Install 2.14.0

Use the same flags you used originally if applicable.

cd /opt/harbor
sudo ./install.sh

In my environment, this was enough. the loopback binding and HAProxy flow continued to work as-is.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top