{"slug":"portainer","tag":"2.45.3-CE-ubuntu24.04-r1","current":true,"account":false,"tarball":"ReadyStack-portainer-2.45.3-CE-ubuntu24.04-r1.tar.gz","tarball_sha256":"c5fa07330063029ee3117719fd58cee2fbf27889d957c54dd5d5c203007fcf20","generated_at":"2026-10-29T19:20:13Z","dockerfile":"Dockerfile.offline.pinned","build_script":"BUILD_OFFLINE.sh","pins":{"upstream":{"repo":"https://github.com/portainer/portainer","ref":"2.45.3","commit":"0fa764dc81c76bb7914d65d8e62b026d7c746899","url":"https://github.com/portainer/portainer/tree/0fa764dc81c76bb7914d65d8e62b026d7c746899"},"fetches":[{"kind":"git","url":"https://github.com/portainer/portainer","ref":"2.45.3"},{"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":1792624796,"source_date_epoch_utc":"2026-10-21T23:19:56Z","target":{"image":"readystack/portainer:2.45.3-CE-ubuntu24.04-r1","image_manifest_digest":"sha256:a2cbe2d511c57174efe65263c59e63f50b081168921f328977e8665e8b3c9e34","config_digest":"sha256:304508ade386107d7e6a210e0792d3ce0ed0515d3a71bceec8ed715f54b12812"},"checksummed_files":23556},"files":[{"path":"BASES.tsv","size":264,"sha256":"8d72027e2bc448d0c7ff3a900bfe648f1e4c9ec92a2beaa3f623ccffc48641b5","public":"full","lines":2,"url":"/api/recipe/portainer/2.45.3-CE-ubuntu24.04-r1/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":3552939,"sha256":"b6c3566fe20fad542b519edb64bf9a68521e09a96ef40c5c304b3a8684461b4d","public":"account","lines":23556},{"path":"DOCKERFILE_NAME.txt","size":26,"sha256":"9aadd1ede68e016a6f163c97befc5ff2fcdc8ebd4f84b108dba63cb195fa8c84","public":"full","lines":1,"url":"/api/recipe/portainer/2.45.3-CE-ubuntu24.04-r1/files/DOCKERFILE_NAME.txt","text":"Dockerfile.offline.pinned\n"},{"path":"Dockerfile","size":3190,"sha256":"f62293d073151cdc01f6742880b6de36dd6d80343e9df9e455661272fe1992cc","public":"account","lines":42},{"path":"Dockerfile.offline","size":3190,"sha256":"f62293d073151cdc01f6742880b6de36dd6d80343e9df9e455661272fe1992cc","public":"account","lines":42},{"path":"Dockerfile.offline.pinned","size":3190,"sha256":"f62293d073151cdc01f6742880b6de36dd6d80343e9df9e455661272fe1992cc","public":"preview","lines":42,"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_portainer\nWORKDIR /src\nCOPY vendored/portainer-src/ .\nENV CGO_ENABLED=0 GOTOOLCHAIN=local GOWORK=off GOFLAGS=\"-mod=vendor -buildvcs=false\" GOPROXY=off SOURCE_DATE_EPOCH=1792624796\nRUN go build -trimpath -ldflags='-s -w' -o /portainer ./api/cmd/portainer && /portainer --version\nFROM ubuntu:24.04@sha256:24737cef17f4e22b1977df7d9a05e77c4e28b7da5b8911f8d8ccda136bf3573c\nENV DEBIAN_FRONTEND=noninteractive\nRUN --mount=type=bind,source=vendored/debs,target=/tmp/debs \\\n    set --; for f in /tmp/debs/*.deb; do [ -e \"$f\" ] && set -- \"$@\" \"$f\"; done; \\\n    for pass in 1 2 3 4 5; do [ $# -eq 0 ] || dpkg -i --skip-same-version \"$@\" >/dev/null 2>&1 && break; done; \\\n    dpkg --configure -a && bad= && for d in \"$@\"; do p=$(dpkg-deb -f \"$d\" Package) v=$(dpkg-deb -f \"$d\" Version); \\\n      case \"$(dpkg-query -W -f='${Version} ${db:Status-Abbrev}' \"$p\" 2>/dev/null)\" in \"$v ii\"*) ;; *) bad=\"$bad $p=$v\" ;; esac; done && \\\n    { [ -z \"$bad\" ] || { echo \"vendored debs not installed at their vendored version:$bad\" >&2; false; }; } && \\\n    rm -rf /var/lib/apt/lists/* \\\n           /var/log/dpkg.log /var/log/alternatives.log /var/log/apt /var/cache/ldconfig/aux-cache /var/cache/fontconfig\nARG SOURCE_DATE_EPOCH=1792624796\nRUN groupadd -r portainer && useradd -r -g portainer -d /data -m portainer && \\\n    mkdir -p /data && chown -R portainer:portainer /data && \\\n    : \"${SOURCE_DATE_EPOCH:?SOURCE_DATE_EPOCH must be set for a reproducible build}\" && \\\n    sed -ri \"s/^([^:]*:[^:]*):[0-9]*:/\\1:$((SOURCE_DATE_EPOCH/86400)):/\" /etc/shadow && \\\n    rm -f /etc/passwd- /etc/shadow- /etc/group- /etc/gshadow-\nCOPY --from=build_portainer /portainer /usr/local/bin/portainer","lines_shown":24,"lines_total":42}},{"path":"Dockerfile.vendor","size":2623,"sha256":"697c5294ca38f0924f758153f4d38cfe70119d990f3e9fae0dd0afef5f028f52","public":"account","lines":31},{"path":"MANIFEST.txt","size":1951161,"sha256":"64be758a75d7b36deee08e040782005bd48d2aa5d778a0e22fe795ce36e1e300","public":"account","lines":23558},{"path":"SOURCE_DATE_EPOCH.txt","size":11,"sha256":"fe4ae3da09af5bce14b3d06fa38d42a59367de15bc3bb4b9479749d5dc3b3981","public":"full","lines":1,"url":"/api/recipe/portainer/2.45.3-CE-ubuntu24.04-r1/files/SOURCE_DATE_EPOCH.txt","text":"1792624796\n"},{"path":"TARGET_DIGEST.txt","size":287,"sha256":"a48189432a8b3165c7e24aaa24df840c66bd75a81999c355dede736f46b6ce49","public":"full","lines":6,"url":"/api/recipe/portainer/2.45.3-CE-ubuntu24.04-r1/files/TARGET_DIGEST.txt","text":"image_manifest_digest=sha256:a2cbe2d511c57174efe65263c59e63f50b081168921f328977e8665e8b3c9e34\nconfig_digest=sha256:304508ade386107d7e6a210e0792d3ce0ed0515d3a71bceec8ed715f54b12812\ntag=readystack/portainer:2.45.3-CE-ubuntu24.04-r1\nprobe_port=9000\nprobe_path=/api/status\nprobe_timeout=180\n"},{"path":"VERIFY_OFFLINE.sh","size":7331,"sha256":"8b036b1f9a7f7deb4dbab14ef6b7c40622d2820904e891b8845ba3580e924506","public":"account","lines":128},{"path":"docs/PROVENANCE.md","size":1706,"sha256":"5806d86822589195b4af7ae5000a15ec6c71e20fb6e4d4bc64acbd46abf82c0a","public":"account","lines":28},{"path":"docs/REBUILD.md","size":5110,"sha256":"75f0fb30f5c511ef42bdd1ff7be7df76132ba04099ca9cb88ae07d25f8c14103","public":"account","lines":57},{"path":"docs/VERIFY.md","size":1970,"sha256":"77672e87a069cd43d45d1f8bdfc09c2ea0688726b564bd3fe51cda465257c969","public":"account","lines":34},{"path":"docs/provenance/BASE_IMAGE_DIGESTS.lock","size":75,"sha256":"93df126358576cb7c5aa79955e22096650dc972f5f29010c807048396daa324b","public":"full","lines":2,"url":"/api/recipe/portainer/2.45.3-CE-ubuntu24.04-r1/files/docs/provenance/BASE_IMAGE_DIGESTS.lock","text":"# base images for portainer (resolve at build_kit)\ngolang:1.26.10-bookworm\n"},{"path":"docs/provenance/BUILD_RECIPE.json","size":7341,"sha256":"6b83e2a4f73eb62e33a2ed1e23617fa8ec3ebabc59c0f150f671696539c77de6","public":"account","lines":63,"redactions":[{"line":37,"kind":"internal host"},{"line":55,"kind":"internal host"}],"kit_sha256":"08c2311d491a871803e69077a30f0ac55bfebbc805c0960f40f77b7e7e1d7c4e"},{"path":"docs/provenance/CUSTODY_INPUTS.json","size":653,"sha256":"c53d33e739a8d104f0a441707301b32a03fa97d2277874fc581f119b89cbc373","public":"account","lines":17},{"path":"docs/provenance/SOURCE_FILE_MANIFEST.json","size":322182,"sha256":"8d6e6243f7f3aaa8cd0d39fe11a3696adebd5ae3dd47ea16c64de4dd2351c843","public":"account","lines":5007},{"path":"docs/provenance/SOURCE_TREE_HASH.json","size":311,"sha256":"c92923ebca9125c81e4c19415c5fa5185fe974edf1b587ad3c9c67069825899b","public":"full","lines":9,"url":"/api/recipe/portainer/2.45.3-CE-ubuntu24.04-r1/files/docs/provenance/SOURCE_TREE_HASH.json","text":"{\n  \"schema\": \"kitforge.source_tree_hash.v1\",\n  \"slug\": \"portainer\",\n  \"repo\": \"https://github.com/portainer/portainer\",\n  \"ref\": \"2.45.3\",\n  \"commit\": \"0fa764dc81c76bb7914d65d8e62b026d7c746899\",\n  \"tree_listing_sha256\": \"fc0d8c88ba3ecea1aac3b366fe50414c75b27220c0ae5e1371033d834f8d0a93\",\n  \"file_count\": 5387\n}"},{"path":"docs/provenance/SYSTEM_PINNING.lock","size":28,"sha256":"fa091140511e85f86057bf9f05d5bd9e073f13c04af3de77559c304bd4b38227","public":"account","lines":3},{"path":"docs/provenance/TOOLCHAIN.lock","size":9179,"sha256":"539c4880905956667cf03818017b866a65dea2216debd022edd7b008fa667476","public":"account","lines":134},{"path":"rebuild.json","size":1442,"sha256":"3585870ed3f17ab3360f7f025e4d1473f2509e0dcf7e16d4d0dc779652f9358c","public":"account","lines":38},{"path":"toolchain/BUILDKIT_TAG.txt","size":22,"sha256":"fcd530eeb02b063d2f047adad6eef896422a8e8d558513e5f09b2a262be32573","public":"full","lines":1,"url":"/api/recipe/portainer/2.45.3-CE-ubuntu24.04-r1/files/toolchain/BUILDKIT_TAG.txt","text":"moby/buildkit:v0.31.2\n"}],"skipped":[],"kit_adds":{"bases":{"files":16,"bytes":326583068},"docs":{"files":5438,"bytes":23122498},"toolchain":{"files":1,"bytes":111529472},"vendored":{"files":18079,"bytes":183733975}},"links":{"page":"https://readystack.dev/products/portainer/recipe","signup":"https://readystack.dev/login.html?create=1&next=%2Fproducts%2Fportainer%2Frecipe","kit":"https://readystack.dev/buy.html?product=portainer"}}