{"slug":"homeassistant","tag":"2026.10.4-CE-ubuntu24.04-r1","current":true,"account":false,"tarball":"ReadyStack-homeassistant-2026.10.4-CE-ubuntu24.04-r1.tar.gz","tarball_sha256":"c4845866b0615f5476fbdf0b660bc9949454920ca8a1aed328256f602da6c4f1","generated_at":"2026-10-29T19:36:43Z","dockerfile":"Dockerfile.offline.pinned","build_script":"BUILD_OFFLINE.sh","pins":{"upstream":{"repo":"https://github.com/home-assistant/core","ref":"2026.10.4","commit":"357cae5c598dfcd7a0ea7dc5b1facccd4ec6037b","url":"https://github.com/home-assistant/core/tree/357cae5c598dfcd7a0ea7dc5b1facccd4ec6037b"},"fetches":[{"kind":"git","url":"https://github.com/home-assistant/core","ref":"2026.10.4"},{"kind":"http","url":"https://www.python.org/ftp/python/3.14.9/Python-3.14.9.tar.xz"},{"kind":"http","url":"https://raw.githubusercontent.com/home-assistant/core/2026.10.4/homeassistant/package_constraints.txt"}],"bases":[{"image":"ubuntu:24.04","digest":"sha256:24737cef17f4e22b1977df7d9a05e77c4e28b7da5b8911f8d8ccda136bf3573c"}],"toolchain":{"buildkit":"moby/buildkit:v0.31.2","buildkit_image_digest":"sha256:e0e67ea9c4bb07bdef683e29f70f3b623d1eb9c82274a9ec04e6bb0511449fb0","builder_images":["ubuntu:24.04@sha256:24737cef17f4e22b1977df7d9a05e77c4e28b7da5b8911f8d8ccda136bf3573c"]},"build_method":"source-rebuild-python","source_date_epoch":1792872089,"source_date_epoch_utc":"2026-10-24T20:01:29Z","target":{"image":"readystack/homeassistant:2026.10.4-CE-ubuntu24.04-r1","image_manifest_digest":"sha256:43f3bd32414b901c0c1fc6ee84983176be6fcc54c31193e8f1f3ae0cfa232f02","config_digest":"sha256:3cc69068a31d916ff503a77c9b752221373cc37dd7008844a96eafeea2e7cb22"},"checksummed_files":57127},"files":[{"path":"BASES.tsv","size":121,"sha256":"0da49a3ea98fcaa345080b1a4230d2c798b395f71854063c2af657eb53a8a2e0","public":"full","lines":1,"url":"/api/recipe/homeassistant/2026.10.4-CE-ubuntu24.04-r1/files/BASES.tsv","text":"ubuntu: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":8247115,"sha256":"b53a460c72f2fbb423f2480cde5f2143de7a329d86c7ea10ffc419b50492aebb","public":"account","lines":57127},{"path":"DOCKERFILE_NAME.txt","size":26,"sha256":"9aadd1ede68e016a6f163c97befc5ff2fcdc8ebd4f84b108dba63cb195fa8c84","public":"full","lines":1,"url":"/api/recipe/homeassistant/2026.10.4-CE-ubuntu24.04-r1/files/DOCKERFILE_NAME.txt","text":"Dockerfile.offline.pinned\n"},{"path":"Dockerfile","size":7551,"sha256":"890394cbf9d5eac537a1a6ff22c97cf7312623197bd037de16f742193c2aa8a5","public":"account","lines":71},{"path":"Dockerfile.offline","size":7551,"sha256":"890394cbf9d5eac537a1a6ff22c97cf7312623197bd037de16f742193c2aa8a5","public":"account","lines":71},{"path":"Dockerfile.offline.pinned","size":7551,"sha256":"890394cbf9d5eac537a1a6ff22c97cf7312623197bd037de16f742193c2aa8a5","public":"preview","lines":71,"preview":{"text":"# GENERATED L-009 hermetic Python build (--network=none, SBOM+SLSA-attestation-producing).\n# Pinned base from BASE_IMAGE_DIGESTS.lock; vendored wheelhouse + source + debs from Dockerfile.vendor.\n# pydeps sub-stage installs the wheelhouse offline; COPY /deps /usr/local keeps pip OUT of the runtime SBOM.\n# CPython 3.14.9 COMPILED HERE, offline, from python.org's tarball (sha256 re-checked) and the vendored\n# build debs, by the same command the vendor stage ran; linked against Ubuntu's libraries (debs the scan\n# sees, apt fixes). The runtime takes /usr/local from this stage and none of the toolchain.\nFROM ubuntu:24.04@sha256:24737cef17f4e22b1977df7d9a05e77c4e28b7da5b8911f8d8ccda136bf3573c AS cpython\nARG SOURCE_DATE_EPOCH=1792872089\nENV SOURCE_DATE_EPOCH=${SOURCE_DATE_EPOCH}\nCOPY vendored/python/debs/ /tmp/cpython-debs/\nCOPY vendored/python/Python-3.14.9.tar.xz /tmp/Python-3.14.9.tar.xz\nRUN set --; for f in /tmp/cpython-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    : \"${SOURCE_DATE_EPOCH:?the CPython build needs SOURCE_DATE_EPOCH}\" && \\\n    echo \"e02d9ac21cebda6e46435369744a92c65cc7cd8669697694122cf97ffacd1e53  /tmp/Python-3.14.9.tar.xz\" | sha256sum -c - && \\\n    mkdir -p /usr/src/python && tar -xJf /tmp/Python-3.14.9.tar.xz -C /usr/src/python --strip-components=1 --no-same-owner && \\\n    rm -rf /tmp/cpython-debs /tmp/Python-3.14.9.tar.xz && cd /usr/src/python && \\\n    export DEB_BUILD_MAINT_OPTIONS=optimize=-lto && \\\n    PYCF=\"$(dpkg-buildflags --get CFLAGS) $(dpkg-buildflags --get CPPFLAGS)\" && PYLD=\"$(dpkg-buildflags --get LDFLAGS)\" && \\\n    ./configure --build=x86_64-linux-gnu --prefix=/usr/local --enable-shared --enable-loadable-sqlite-extensions --enable-option-checking=fatal --disable-test-modules --without-static-libpython --with-ensurepip=install --with-system-expat --without-system-libmpdec --with-dbmliborder= py_cv_module__dbm=n/a py_cv_module__gdbm=n/a py_cv_module__tkinter=n/a && \\\n    make -j\"$(nproc)\" \"EXTRA_CFLAGS=$PYCF\" \"LDFLAGS=$PYLD,--strip-all\" && \\","lines_shown":24,"lines_total":71}},{"path":"Dockerfile.vendor","size":9434,"sha256":"792f18166a3908cad26868532d9d819d4be20e3cb42ea249f9c1bc0c40b541b6","public":"account","lines":83},{"path":"MANIFEST.txt","size":4362509,"sha256":"7907560044f953ab13f7d33f40827ac69631e4943deb9e9b6aeaa80aabe83355","public":"account","lines":57129},{"path":"SOURCE_DATE_EPOCH.txt","size":11,"sha256":"2fe9fb56efe8779601f287d40f04d10c9f7d7a00792c37f2aac3be579ffe0776","public":"full","lines":1,"url":"/api/recipe/homeassistant/2026.10.4-CE-ubuntu24.04-r1/files/SOURCE_DATE_EPOCH.txt","text":"1792872089\n"},{"path":"TARGET_DIGEST.txt","size":297,"sha256":"7efba53d518bc2b884c8c4e9cfbe7964ebc7373328fa75a2334a7cdc0dc7ead4","public":"full","lines":6,"url":"/api/recipe/homeassistant/2026.10.4-CE-ubuntu24.04-r1/files/TARGET_DIGEST.txt","text":"image_manifest_digest=sha256:43f3bd32414b901c0c1fc6ee84983176be6fcc54c31193e8f1f3ae0cfa232f02\nconfig_digest=sha256:3cc69068a31d916ff503a77c9b752221373cc37dd7008844a96eafeea2e7cb22\ntag=readystack/homeassistant:2026.10.4-CE-ubuntu24.04-r1\nprobe_port=8123\nprobe_path=/manifest.json\nprobe_timeout=180\n"},{"path":"VERIFY_OFFLINE.sh","size":10153,"sha256":"3e8184ea230cfd8f41f977e26be6bf7bd03112c396c517837ce0c7de4f7399dd","public":"account","lines":165},{"path":"docs/PROVENANCE.md","size":2045,"sha256":"ce89130999340182cb856328cc42dfa55855dc0f72e146b32dcfa0aa8cf6148c","public":"account","lines":29},{"path":"docs/REBUILD.md","size":5194,"sha256":"f93024b989920ec53287815f8c9b4f06cd96076f0ee39c6651140c9a39307d8d","public":"account","lines":57},{"path":"docs/VERIFY.md","size":2010,"sha256":"9ea36c10c06de45375ffb80a5b017974e61b835ebb252af0935ad28655645115","public":"account","lines":34},{"path":"docs/provenance/BASE_IMAGE_DIGESTS.lock","size":56,"sha256":"c3d6a7ac1257d5fdef4adae30ec92f26f68f8281273d4ba5761a783eeec14641","public":"full","lines":2,"url":"/api/recipe/homeassistant/2026.10.4-CE-ubuntu24.04-r1/files/docs/provenance/BASE_IMAGE_DIGESTS.lock","text":"# base images for homeassistant (resolve at build_kit)\n\n"},{"path":"docs/provenance/BUILD_RECIPE.json","size":10154,"sha256":"fd161fc374a92a0b58250972f492d43484385ef225e083ed8698f95245f728ae","public":"account","lines":84,"redactions":[{"line":36,"kind":"internal host"}],"kit_sha256":"9ac67e1df372beb8113eb43eeb7400983bfb367f098b2e2cb0a24f627702e9d3"},{"path":"docs/provenance/CUSTODY_INPUTS.json","size":660,"sha256":"00e6140ca735ea5fe12ccd8d7c5b811ebb24fff594f3978026cc9f08ceb28c18","public":"account","lines":17},{"path":"docs/provenance/SOURCE_FILE_MANIFEST.json","size":271685,"sha256":"ba0f5404c49f9fde7e28e574870cd0bc20e85d737fbbadfa533d77eef2946435","public":"account","lines":5007},{"path":"docs/provenance/SOURCE_TREE_HASH.json","size":319,"sha256":"99b07cde27491b20189fd579b0715d918264c27ea10ab96c1e1743d6025574af","public":"full","lines":9,"url":"/api/recipe/homeassistant/2026.10.4-CE-ubuntu24.04-r1/files/docs/provenance/SOURCE_TREE_HASH.json","text":"{\n  \"schema\": \"kitforge.source_tree_hash.v1\",\n  \"slug\": \"homeassistant\",\n  \"repo\": \"https://github.com/home-assistant/core\",\n  \"ref\": \"2026.10.4\",\n  \"commit\": \"357cae5c598dfcd7a0ea7dc5b1facccd4ec6037b\",\n  \"tree_listing_sha256\": \"c3af763bd9213398a7a12ae501848395cc61605ab13158414f7b96621198b9da\",\n  \"file_count\": 28317\n}"},{"path":"docs/provenance/SYSTEM_PINNING.lock","size":143,"sha256":"53a8ed1eb1d11e8a986e6630f3e8aaf4f5f43799acda48e120e8c10769cc98a2","public":"account","lines":15},{"path":"docs/provenance/TOOLCHAIN.lock","size":7693,"sha256":"82586283c5c8b2d7bb4fcd7da2a39fd497b65cbe0ba8d2e3498e05ae7389fc7b","public":"account","lines":104,"redactions":[{"line":99,"kind":"internal host"}],"kit_sha256":"3fe0ead0f7b97bf8aab2966d40ceea9b59e559d555904937449c75bd49513a3f"},{"path":"kitforge-wheel-overrides.json","size":295,"sha256":"a7b69a50b6afff1d1d306519a837738edd35ab85b88a5043b5c12bcd63fb3786","public":"account","lines":12},{"path":"kitforge-wheelmeta.py","size":7950,"sha256":"eeaaffa400dbc6cb20270c334dae691e5334edd48ce3798d489c6dc3ae968217","public":"account","lines":151},{"path":"rebuild.json","size":1171,"sha256":"e078ac9f3a2db99689ce33f77072b05a2b9c81fc6687596b8551e90d2b56f748","public":"account","lines":33},{"path":"toolchain/BUILDKIT_TAG.txt","size":22,"sha256":"fcd530eeb02b063d2f047adad6eef896422a8e8d558513e5f09b2a262be32573","public":"full","lines":1,"url":"/api/recipe/homeassistant/2026.10.4-CE-ubuntu24.04-r1/files/toolchain/BUILDKIT_TAG.txt","text":"moby/buildkit:v0.31.2\n"}],"skipped":[],"kit_adds":{"bases":{"files":5,"bytes":29771169},"docs":{"files":28369,"bytes":209605370},"toolchain":{"files":1,"bytes":111529472},"vendored":{"files":28728,"bytes":711788370}},"links":{"page":"https://readystack.dev/products/homeassistant/recipe","signup":"https://readystack.dev/login.html?create=1&next=%2Fproducts%2Fhomeassistant%2Frecipe","kit":"https://readystack.dev/buy.html?product=homeassistant"}}