{"slug":"harbor","tag":"v2.15.4-CE-ubuntu24.04-r4","current":true,"account":false,"tarball":"ReadyStack-harbor-v2.15.4-CE-ubuntu24.04-r4.tar.gz","tarball_sha256":"960e2f6b817330062d9618580780d955df42ca7b9708f27e8f7cddeee1713b9e","generated_at":"2026-10-29T20:11:51Z","dockerfile":"Dockerfile.offline.pinned","build_script":"BUILD_OFFLINE.sh","pins":{"upstream":{"repo":"https://github.com/goharbor/harbor","ref":"v2.15.4","commit":"0a6bf30d54e779962ad5b862fc67e3e9f6b010d8","url":"https://github.com/goharbor/harbor/tree/0a6bf30d54e779962ad5b862fc67e3e9f6b010d8"},"fetches":[{"kind":"git","url":"https://github.com/goharbor/harbor","ref":"v2.15.4"},{"kind":"git","url":"https://github.com/goharbor/distribution.git","ref":"v2.8.3-harbor.2"},{"kind":"http","url":"https://deb.nodesource.com/setup_22.x"}],"bases":[{"image":"golang:1.26.10-bookworm","digest":"sha256:632dff7351799a5a9954a48dc06670ade72ee44e8c351cdc0e5a57af2fea21af"},{"image":"ubuntu:24.04","digest":"sha256:24737cef17f4e22b1977df7d9a05e77c4e28b7da5b8911f8d8ccda136bf3573c"}],"toolchain":{"buildkit":"moby/buildkit:v0.31.2","buildkit_image_digest":"sha256:e0e67ea9c4bb07bdef683e29f70f3b623d1eb9c82274a9ec04e6bb0511449fb0","builder_images":["golang:1.26.10-bookworm@sha256:632dff7351799a5a9954a48dc06670ade72ee44e8c351cdc0e5a57af2fea21af"]},"build_method":"source-rebuild-go","source_date_epoch":1791512107,"source_date_epoch_utc":"2026-10-09T02:15:07Z","target":{"image":"readystack/harbor:v2.15.4-CE-ubuntu24.04-r4","image_manifest_digest":"sha256:de9ac3f2a6d3b26febe333400f1a1200a3b00500805310187c77769ab286bcee","config_digest":"sha256:b241148b10c36ced32962283c30ddf48e667305624c05b5ff8e60619752beb63"},"checksummed_files":18155},"files":[{"path":"BASES.tsv","size":264,"sha256":"8d72027e2bc448d0c7ff3a900bfe648f1e4c9ec92a2beaa3f623ccffc48641b5","public":"full","lines":2,"url":"/api/recipe/harbor/v2.15.4-CE-ubuntu24.04-r4/files/BASES.tsv","text":"golang:1.26.10-bookworm@sha256:632dff7351799a5a9954a48dc06670ade72ee44e8c351cdc0e5a57af2fea21af\tbases/golang_1.26.10-bookworm_632dff735179.oci\nubuntu:24.04@sha256:24737cef17f4e22b1977df7d9a05e77c4e28b7da5b8911f8d8ccda136bf3573c\tbases/ubuntu_24.04_24737cef17f4.oci\n"},{"path":"BUILD_OFFLINE.sh","size":6738,"sha256":"83299978ccd02a0b69e163d760da1211b401bbfa35a3184ca674dc37ff876732","public":"preview","lines":125,"preview":{"text":"#!/usr/bin/env bash\n# =============================================================================\n# ReadyStack — offline reproducible rebuild.\n#\n# Rebuilds this product's image from THIS ARCHIVE ALONE, with no network access\n# of any kind, and prints the resulting linux/amd64 image-manifest digest.\n# Run ./VERIFY_OFFLINE.sh afterwards to assert it equals the published digest.\n#\n# Requirements: linux/amd64 Docker host, docker buildx >= 0.30, jq, tar.\n# No git, no registry access, no additional tooling.\n#\n#   ./BUILD_OFFLINE.sh                the rebuild (OCI image + a docker-loadable copy)\n#   ./BUILD_OFFLINE.sh --provenance   the same rebuild with SLSA v1 build provenance (mode=max) attached to the OCI\n#                                     image, generated by BuildKit, not by any build step. Run on your own hardened,\n#                                     isolated build platform and sign that provenance with a key the build cannot\n#                                     reach, and the result meets SLSA Build Level 3 (see REBUILD.md). The image\n#                                     digest is the same either way.\n# =============================================================================\nset -euo pipefail\nPROVENANCE=0\nfor arg in \"$@\"; do\n  case \"$arg\" in\n    --provenance) PROVENANCE=1 ;;\n    -h|--help) sed -n '2,20p' \"$0\"; exit 0 ;;","lines_shown":24,"lines_total":125}},{"path":"CHECKSUMS.sha256","size":2734855,"sha256":"6f706a0f0aa13af0e9ecc5569df452b23ccb788eb6626bfc9b105061681cc177","public":"account","lines":18155},{"path":"DOCKERFILE_NAME.txt","size":26,"sha256":"9aadd1ede68e016a6f163c97befc5ff2fcdc8ebd4f84b108dba63cb195fa8c84","public":"full","lines":1,"url":"/api/recipe/harbor/v2.15.4-CE-ubuntu24.04-r4/files/DOCKERFILE_NAME.txt","text":"Dockerfile.offline.pinned\n"},{"path":"Dockerfile","size":6358,"sha256":"cf8e836472e29292b64071e085aa2de7d338ee561e4add966d6d1e476dcad971","public":"account","lines":71},{"path":"Dockerfile.offline","size":6358,"sha256":"cf8e836472e29292b64071e085aa2de7d338ee561e4add966d6d1e476dcad971","public":"account","lines":71},{"path":"Dockerfile.offline.pinned","size":6358,"sha256":"cf8e836472e29292b64071e085aa2de7d338ee561e4add966d6d1e476dcad971","public":"preview","lines":71,"preview":{"text":"# GENERATED L-009 hermetic build (--network=none, SBOM+SLSA-attestation-producing).\n# Pinned bases from BASE_IMAGE_DIGESTS.lock; vendored Go tree + debs from Dockerfile.vendor.\nFROM golang:1.26.10-bookworm@sha256:632dff7351799a5a9954a48dc06670ade72ee44e8c351cdc0e5a57af2fea21af AS build_harbor_core\nCOPY vendored/harbor-src/ /src/\nWORKDIR /src/src\nENV CGO_ENABLED=0 GOTOOLCHAIN=local GOWORK=off GOFLAGS=\"-mod=vendor -buildvcs=false\" GOPROXY=off SOURCE_DATE_EPOCH=1791512107\nRUN go build -trimpath -ldflags='-s -w -X github.com/goharbor/harbor/src/pkg/version.GitCommit=0a6bf30d -X github.com/goharbor/harbor/src/pkg/version.ReleaseVersion=v2.15.4' -o /harbor_core ./core && /harbor_core -h\nFROM golang:1.26.10-bookworm@sha256:632dff7351799a5a9954a48dc06670ade72ee44e8c351cdc0e5a57af2fea21af AS build_harbor_jobservice\nCOPY vendored/harbor-src/ /src/\nWORKDIR /src/src\nENV CGO_ENABLED=0 GOTOOLCHAIN=local GOWORK=off GOFLAGS=\"-mod=vendor -buildvcs=false\" GOPROXY=off SOURCE_DATE_EPOCH=1791512107\nRUN go build -trimpath -ldflags='-s -w' -o /harbor_jobservice ./jobservice && /harbor_jobservice -h >/dev/null 2>&1; test -x /harbor_jobservice\nFROM golang:1.26.10-bookworm@sha256:632dff7351799a5a9954a48dc06670ade72ee44e8c351cdc0e5a57af2fea21af AS build_harbor_registryctl\nCOPY vendored/harbor-src/ /src/\nWORKDIR /src/src\nENV CGO_ENABLED=0 GOTOOLCHAIN=local GOWORK=off GOFLAGS=\"-mod=vendor -buildvcs=false\" GOPROXY=off SOURCE_DATE_EPOCH=1791512107\nRUN go build -trimpath -ldflags='-s -w' -o /harbor_registryctl ./registryctl && /harbor_registryctl -h\nFROM golang:1.26.10-bookworm@sha256:632dff7351799a5a9954a48dc06670ade72ee44e8c351cdc0e5a57af2fea21af AS build_registry\nCOPY vendored/harbor-src/ /src/\nWORKDIR /src/third_party/distribution\nENV CGO_ENABLED=0 GOTOOLCHAIN=local GOWORK=off GOFLAGS=\"-mod=vendor -buildvcs=false\" GOPROXY=off SOURCE_DATE_EPOCH=1791512107\nRUN go build -trimpath -tags \"include_oss include_gcs\" -ldflags='-s -w -X github.com/docker/distribution/version.Revision=ac7c4cedc2f4d45347630beceaaa1639bb9c771a' -o /registry ./cmd/registry && /registry --version\nFROM ubuntu:24.04@sha256:24737cef17f4e22b1977df7d9a05e77c4e28b7da5b8911f8d8ccda136bf3573c\nENV DEBIAN_FRONTEND=noninteractive TZ=UTC LANG=C.UTF-8","lines_shown":24,"lines_total":71}},{"path":"Dockerfile.vendor","size":4193,"sha256":"ba6e078a7de35131bb70b48326da6090ab0f809b074cddb0cfac8582e9103d04","public":"account","lines":32},{"path":"MANIFEST.txt","size":1500345,"sha256":"87e0b13e9e140430a48a4c32e8974acbc73cbcd27157f4230081a34f2970962c","public":"account","lines":18157},{"path":"SOURCE_DATE_EPOCH.txt","size":11,"sha256":"79f4128e36e3cc89f8c8056a9a6e5e4cab7c73b5116e48c844b6cee8a9275928","public":"full","lines":1,"url":"/api/recipe/harbor/v2.15.4-CE-ubuntu24.04-r4/files/SOURCE_DATE_EPOCH.txt","text":"1791512107\n"},{"path":"TARGET_DIGEST.txt","size":442,"sha256":"11c4173d7224a8213fa9d68ebc32da3f867b106d3f62bd9870fa90f06144f10e","public":"full","lines":8,"url":"/api/recipe/harbor/v2.15.4-CE-ubuntu24.04-r4/files/TARGET_DIGEST.txt","text":"image_manifest_digest=sha256:de9ac3f2a6d3b26febe333400f1a1200a3b00500805310187c77769ab286bcee\nconfig_digest=sha256:b241148b10c36ced32962283c30ddf48e667305624c05b5ff8e60619752beb63\ntag=readystack/harbor:v2.15.4-CE-ubuntu24.04-r4\nprobe_port=8080\nprobe_path=/api/v2.0/ping\nprobe_timeout=600\nverify_boot=skip\nverify_boot_reason=this image needs db, redis (not part of this archive); boot it with your own services as the admin handbook describes\n"},{"path":"VERIFY_OFFLINE.sh","size":10153,"sha256":"3e8184ea230cfd8f41f977e26be6bf7bd03112c396c517837ce0c7de4f7399dd","public":"account","lines":165},{"path":"core-app.conf","size":74,"sha256":"29c0eda6ce6930a4159a3b43bbb8349dda51629cc7412fb0087baed0719b1050","public":"account","lines":6},{"path":"docs/PROVENANCE.md","size":1697,"sha256":"3c384a6bf0642c56b6c98f014e9c247ea83df648c6c75017cb1c02d75579f9ea","public":"account","lines":28},{"path":"docs/REBUILD.md","size":5131,"sha256":"2c36953cf69ea445daa5969d2eaa7440f376bf561a23996102722ff1800360b7","public":"account","lines":59},{"path":"docs/VERIFY.md","size":1957,"sha256":"252e14126a63dad56d4747993440dc650e47f5285f037af71e6210e0c1b5f99c","public":"account","lines":34},{"path":"docs/provenance/BASE_IMAGE_DIGESTS.lock","size":72,"sha256":"92f69da14256490478d4a43b0e3c25884c2432dd0fb7f71c98c8865fe8d849f7","public":"full","lines":2,"url":"/api/recipe/harbor/v2.15.4-CE-ubuntu24.04-r4/files/docs/provenance/BASE_IMAGE_DIGESTS.lock","text":"# base images for harbor (resolve at build_kit)\ngolang:1.26.10-bookworm\n"},{"path":"docs/provenance/BUILD_RECIPE.json","size":6368,"sha256":"4a081a4dc2e73bcbd8670ffa9f8c365fe20f33a8f5c1f72eaf9f5959c2303115","public":"account","lines":85},{"path":"docs/provenance/CUSTODY_INPUTS.json","size":647,"sha256":"e6903e67a08243c5117b9c0dd3d56dfe425311a543fc52d68ed058af9869e1a9","public":"account","lines":17},{"path":"docs/provenance/SOURCE_FILE_MANIFEST.json","size":197021,"sha256":"8681f300eb871bb651ed319598a7071a1bc2c85d8f70e1b61f20d45dd38c52b9","public":"account","lines":3296},{"path":"docs/provenance/SOURCE_TREE_HASH.json","size":305,"sha256":"737c5b3167cb8e20698db91d6cba9332c8d915d79ab58b224a77a773f10d69cd","public":"full","lines":9,"url":"/api/recipe/harbor/v2.15.4-CE-ubuntu24.04-r4/files/docs/provenance/SOURCE_TREE_HASH.json","text":"{\n  \"schema\": \"kitforge.source_tree_hash.v1\",\n  \"slug\": \"harbor\",\n  \"repo\": \"https://github.com/goharbor/harbor\",\n  \"ref\": \"v2.15.4\",\n  \"commit\": \"0a6bf30d54e779962ad5b862fc67e3e9f6b010d8\",\n  \"tree_listing_sha256\": \"c720c8b87a8214ee487223dc0d6a0287b6e82722713f1ee37f6f870b03718c7f\",\n  \"file_count\": 3289\n}"},{"path":"docs/provenance/SYSTEM_PINNING.lock","size":67,"sha256":"d0b7c9e605cc3cb74bfe2a4e362d7c3ba7530ec4d2ff922e4afb1c77418de7a1","public":"account","lines":7},{"path":"docs/provenance/TOOLCHAIN.lock","size":7355,"sha256":"23a049267fa3b36fc0f43ab7aa58b3d800df0f997ff182d6459974d998d88c01","public":"account","lines":167},{"path":"harbor-entrypoint.sh","size":7167,"sha256":"d8231c9145d1bbd7bb7ed55fdc26aa2259e378faaa87cd3c1f8bab4b2a056fb1","public":"account","lines":101},{"path":"harbor-svc","size":270,"sha256":"a4990721682c19bd893c87b8f93c0f11fc871d16d0cfe7abecdc15fbf9284c0d","public":"account","lines":10},{"path":"jobservice-config.yml","size":766,"sha256":"8f3b6b1d4624f1a272ab9bbd55be43ba19630fa3b9d9435f60a2463dd9177122","public":"account","lines":29},{"path":"nginx.conf","size":3546,"sha256":"e11fbaf354d49959a1cb06d195b36c7d8ab2fbe0e8fbc46382b1c382371af332","public":"account","lines":117},{"path":"rebuild.json","size":1501,"sha256":"76db327db81d0f0f531a35fe146ca3300e2c6951dd1c69fefd52f7bc31e3e647","public":"account","lines":36},{"path":"registry-config.yml","size":1016,"sha256":"1ca8c61d7346109f0d0233d5c42982d99482b9d64ec3e9d796ace284df5b08d1","public":"account","lines":45},{"path":"registryctl-config.yml","size":95,"sha256":"cf61e144c9bc571bda4f01fde880fd119015165b71bcec3b4ccdbb7b35080dd7","public":"account","lines":4},{"path":"supervisord.conf","size":1869,"sha256":"517eda275d15f413cafd9715dc98f9885c78b060503b2ad050f3bcdd1c048355","public":"account","lines":63},{"path":"toolchain/BUILDKIT_TAG.txt","size":22,"sha256":"fcd530eeb02b063d2f047adad6eef896422a8e8d558513e5f09b2a262be32573","public":"full","lines":1,"url":"/api/recipe/harbor/v2.15.4-CE-ubuntu24.04-r4/files/toolchain/BUILDKIT_TAG.txt","text":"moby/buildkit:v0.31.2\n"}],"skipped":[],"kit_adds":{"bases":{"files":16,"bytes":326583068},"docs":{"files":3348,"bytes":23136223},"toolchain":{"files":1,"bytes":111529472},"vendored":{"files":14760,"bytes":360991701}},"links":{"page":"https://readystack.dev/products/harbor/recipe","signup":"https://readystack.dev/login.html?create=1&next=%2Fproducts%2Fharbor%2Frecipe","kit":"https://readystack.dev/buy.html?product=harbor"}}