{"slug":"drupal","tag":"11.4.11-CE-ubuntu24.04-r2","current":true,"account":false,"tarball":"ReadyStack-drupal-11.4.11-CE-ubuntu24.04-r2.tar.gz","tarball_sha256":"f263cf6de385f95e70d5aaa1fd3e9a786b56b37e6c71d2ffd3d78e2b18c3c595","generated_at":"2026-10-29T19:34:27Z","dockerfile":"Dockerfile.offline.pinned","build_script":"BUILD_OFFLINE.sh","pins":{"upstream":{"repo":"https://github.com/drupal/recommended-project","ref":"11.4.11","commit":"8a28d5d06552a136852de8a93fc597a146631536","url":"https://github.com/drupal/recommended-project/tree/8a28d5d06552a136852de8a93fc597a146631536"},"fetches":[{"kind":"git","url":"https://github.com/drupal/recommended-project","ref":"11.4.11"}],"bases":[{"image":"ubuntu:24.04","digest":"sha256:24737cef17f4e22b1977df7d9a05e77c4e28b7da5b8911f8d8ccda136bf3573c"}],"toolchain":{"buildkit":"moby/buildkit:v0.31.2","buildkit_image_digest":"sha256:e0e67ea9c4bb07bdef683e29f70f3b623d1eb9c82274a9ec04e6bb0511449fb0"},"build_method":"source-rebuild-php","source_date_epoch":1792577930,"source_date_epoch_utc":"2026-10-21T10:18:50Z","target":{"image":"readystack/drupal:11.4.11-CE-ubuntu24.04-r2","image_manifest_digest":"sha256:750301160d1fd55bdaacc55dd64a4b1efa06b4dba7dbabf03d02de3b2d3e1ed3","config_digest":"sha256:9a8fe3a99ddb9a70207463c52d521c1e5c8665395267b6e81bd6f06adeaabb12"},"checksummed_files":15850},"files":[{"path":"BASES.tsv","size":121,"sha256":"0da49a3ea98fcaa345080b1a4230d2c798b395f71854063c2af657eb53a8a2e0","public":"full","lines":1,"url":"/api/recipe/drupal/11.4.11-CE-ubuntu24.04-r2/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":2382704,"sha256":"561b62db09514a1d177dcc9dcd776819ca9450bf7871227de77aa3b6260d44b1","public":"account","lines":15850},{"path":"DOCKERFILE_NAME.txt","size":26,"sha256":"9aadd1ede68e016a6f163c97befc5ff2fcdc8ebd4f84b108dba63cb195fa8c84","public":"full","lines":1,"url":"/api/recipe/drupal/11.4.11-CE-ubuntu24.04-r2/files/DOCKERFILE_NAME.txt","text":"Dockerfile.offline.pinned\n"},{"path":"Dockerfile","size":6306,"sha256":"0a4e541e72a67571011f7204663061e7fcf11e74e7b7f270f1f03875047a8be9","public":"account","lines":64},{"path":"Dockerfile.offline","size":6306,"sha256":"0a4e541e72a67571011f7204663061e7fcf11e74e7b7f270f1f03875047a8be9","public":"account","lines":64},{"path":"Dockerfile.offline.pinned","size":6306,"sha256":"0a4e541e72a67571011f7204663061e7fcf11e74e7b7f270f1f03875047a8be9","public":"preview","lines":64,"preview":{"text":"# GENERATED L-009 hermetic PHP build on Ubuntu's own packages (--network=none, SBOM+SLSA-attestation-producing).\n# Pinned ubuntu:24.04; vendored app source + the deb closure (Ubuntu's PHP 8.3, its extensions, Apache, runtime debs).\nFROM ubuntu:24.04@sha256:24737cef17f4e22b1977df7d9a05e77c4e28b7da5b8911f8d8ccda136bf3573c\nENV DEBIAN_FRONTEND=noninteractive APACHE_RUN_USER=www-data APACHE_RUN_GROUP=www-data PATH=/opt/drupal/vendor/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin\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\n# Apache + PHP set up as the official php:apache image sets them up (the image this product's Debian releases\n# ran on), so the product's scaffold, post_copy_run and entrypoint behave as they did there.\nCOPY readystack-php.ini /etc/php/8.3/apache2/php.ini\nCOPY readystack-php.ini /etc/php/8.3/cli/php.ini\nCOPY readystack-mod-php.conf /etc/apache2/mods-available/php8.3.conf\nCOPY readystack-php.conf /etc/apache2/conf-available/readystack-php.conf\nCOPY apache2-foreground /usr/local/bin/apache2-foreground\nRUN chmod 0755 /usr/local/bin/apache2-foreground && \\\n    sed -ri 's/^export ([^=]+)=(.*)$/: ${\\1:=\\2}\\nexport \\1/' /etc/apache2/envvars && \\\n    a2dismod -q mpm_event && a2enmod -q mpm_prefork && a2enconf -q readystack-php && \\\n    rm -rf /var/www/html && mkdir -p /var/www/html && chown www-data:www-data /var/www/html && chmod 1777 /var/www/html && \\\n    for d in /var/lock/apache2 /var/run/apache2 /var/log/apache2 /var/run/apache2/socks; do \\","lines_shown":24,"lines_total":64}},{"path":"Dockerfile.vendor","size":2234,"sha256":"206aa2234d15be3446c0465733ea935182774c63bdf8ec8d28a987f821d554eb","public":"account","lines":22},{"path":"MANIFEST.txt","size":1304934,"sha256":"31a2c3053776e19526897d5a644f7fc6ab6d6d7ea4f42dbd3d399d3f46f8f0d5","public":"account","lines":15852},{"path":"SOURCE_DATE_EPOCH.txt","size":11,"sha256":"500c718328ab1111e96f98eb4476e7de8666d46c5e0ac0ae2db867f0d4b615cb","public":"full","lines":1,"url":"/api/recipe/drupal/11.4.11-CE-ubuntu24.04-r2/files/SOURCE_DATE_EPOCH.txt","text":"1792577930\n"},{"path":"TARGET_DIGEST.txt","size":321,"sha256":"f661620c6ad3201e8d1f7a6f86e7781547319da745e7d668108745026fb9e8bd","public":"full","lines":7,"url":"/api/recipe/drupal/11.4.11-CE-ubuntu24.04-r2/files/TARGET_DIGEST.txt","text":"image_manifest_digest=sha256:750301160d1fd55bdaacc55dd64a4b1efa06b4dba7dbabf03d02de3b2d3e1ed3\nconfig_digest=sha256:9a8fe3a99ddb9a70207463c52d521c1e5c8665395267b6e81bd6f06adeaabb12\ntag=readystack/drupal:11.4.11-CE-ubuntu24.04-r2\nprobe_port=8080\nprobe_path=/user/login\nprobe_timeout=180\nverify_secret=DRUPAL_ADMIN_PASSWORD\n"},{"path":"VERIFY_OFFLINE.sh","size":7331,"sha256":"8b036b1f9a7f7deb4dbab14ef6b7c40622d2820904e891b8845ba3580e924506","public":"account","lines":128},{"path":"apache2-foreground","size":732,"sha256":"003f1949772aed38f5bc2cc4dd3193b3277f979735fd94bb18b863169b3c260d","public":"account","lines":18},{"path":"docker-entrypoint.sh","size":473,"sha256":"14731358369d2a88fb19bca2b3a731a6ce69b48ce54879475337a2e5212cc702","public":"account","lines":14},{"path":"docs/PROVENANCE.md","size":1703,"sha256":"7e74c25beeb45f988de315048a9fef738b1ce4335b2c38d3f167ed8d945854a5","public":"account","lines":28},{"path":"docs/REBUILD.md","size":5200,"sha256":"01adebc6252f1d377d398fbdb4e35b0c189633764bf167bafcd6243f812b964b","public":"account","lines":57},{"path":"docs/VERIFY.md","size":1959,"sha256":"26156c07747df9b2c1958bbfb87985db0adf63e19cfedee0494ad42a3de28321","public":"account","lines":34},{"path":"docs/provenance/BASE_IMAGE_DIGESTS.lock","size":49,"sha256":"0633357c2a2e2cb0c58d48bc070c1e16231f94c4c547cd5c0ab1cd1e8d8a630a","public":"full","lines":2,"url":"/api/recipe/drupal/11.4.11-CE-ubuntu24.04-r2/files/docs/provenance/BASE_IMAGE_DIGESTS.lock","text":"# base images for drupal (resolve at build_kit)\n\n"},{"path":"docs/provenance/BUILD_RECIPE.json","size":4687,"sha256":"8c83cfb29744ac38b7fc3df3d14b87a71e72b4f4f38a50e67d66b3e6a3de74cf","public":"account","lines":78},{"path":"docs/provenance/CUSTODY_INPUTS.json","size":658,"sha256":"8cf66e8026e15ac778ab65ed3f89bce0d840cf547025d14844b34e3b28df18f4","public":"account","lines":17},{"path":"docs/provenance/SOURCE_FILE_MANIFEST.json","size":167,"sha256":"7b454c25b99739f80687869ca8fd28ba49b9704805308e3fd6c04313706b032f","public":"account","lines":10},{"path":"docs/provenance/SOURCE_TREE_HASH.json","size":313,"sha256":"cd3f91800c5b67baba6f9274eb6a7b2a033e857a538c6807988c4afdf0bd1e54","public":"full","lines":9,"url":"/api/recipe/drupal/11.4.11-CE-ubuntu24.04-r2/files/docs/provenance/SOURCE_TREE_HASH.json","text":"{\n  \"schema\": \"kitforge.source_tree_hash.v1\",\n  \"slug\": \"drupal\",\n  \"repo\": \"https://github.com/drupal/recommended-project\",\n  \"ref\": \"11.4.11\",\n  \"commit\": \"8a28d5d06552a136852de8a93fc597a146631536\",\n  \"tree_listing_sha256\": \"e44288fed4cc8f7380266fa9f98c765a4dba7a944569bb7116f16c55cafb83bb\",\n  \"file_count\": 3\n}"},{"path":"docs/provenance/SYSTEM_PINNING.lock","size":178,"sha256":"8ac48ab14748e15636de687ebaa8c930109a539f55a97ecdc2576b24b9b153fa","public":"account","lines":15},{"path":"docs/provenance/TOOLCHAIN.lock","size":2430,"sha256":"524e4e36c4b92c1152b25e205956683b6262989351fba5f6db27b9fd958f18be","public":"account","lines":85},{"path":"drupal-first-start.php","size":3213,"sha256":"0661712b59cfbdbca631411ca105d6499978dc7b94730cf9e8161ced20dce3f4","public":"account","lines":94},{"path":"drupal-set-password.php","size":1302,"sha256":"86074ac3974346715a9f063523a719319e45edef3c9dd0f968c8fb607ac4cc8d","public":"account","lines":39},{"path":"drupal-vhost.conf","size":947,"sha256":"58bd2ca7103ba0890ccdccd0e6cfbf059f7fd43289bdbce9c358c4aaec707669","public":"account","lines":23},{"path":"drupal.ini","size":491,"sha256":"6fcbdde4d37265d2fe05cbd1673742808583d157aedf2561f3e0eb6122ed125c","public":"account","lines":17},{"path":"readystack-mod-php.conf","size":390,"sha256":"f8eb513ee5aeec1252dd78f55dab6585ba27cad8b958b89190de7593103d2bba","public":"account","lines":9},{"path":"readystack-php.conf","size":396,"sha256":"d15053c81ce9cba0fdd7c17d7b7456c844629b12ab521b072033baee92655a93","public":"account","lines":13},{"path":"readystack-php.ini","size":281,"sha256":"a6b6e823b84e85b51b368f40de925bea7fcc1c63991e09fcff27fe5705c136ca","public":"account","lines":3},{"path":"rebuild.json","size":1213,"sha256":"f7dbdae7654ca8789ca6fc0454f11548961845b562f14970b373318971109898","public":"account","lines":36},{"path":"settings.php","size":3375,"sha256":"41d5967241152661822f8ad26301ccff203ea71c1f174b28e591f34ee9a8f799","public":"account","lines":62},{"path":"toolchain/BUILDKIT_TAG.txt","size":22,"sha256":"fcd530eeb02b063d2f047adad6eef896422a8e8d558513e5f09b2a262be32573","public":"full","lines":1,"url":"/api/recipe/drupal/11.4.11-CE-ubuntu24.04-r2/files/toolchain/BUILDKIT_TAG.txt","text":"moby/buildkit:v0.31.2\n"}],"skipped":[],"kit_adds":{"bases":{"files":5,"bytes":29771169},"docs":{"files":64,"bytes":5595832},"toolchain":{"files":1,"bytes":111529472},"vendored":{"files":15748,"bytes":102965066}},"links":{"page":"https://readystack.dev/products/drupal/recipe","signup":"https://readystack.dev/login.html?create=1&next=%2Fproducts%2Fdrupal%2Frecipe","kit":"https://readystack.dev/buy.html?product=drupal"}}