{"slug":"moodle","tag":"v5.3.0-CE-ubuntu24.04-r4","current":true,"account":false,"tarball":"ReadyStack-moodle-v5.3.0-CE-ubuntu24.04-r4.tar.gz","tarball_sha256":"c5192d1a047b512b2423cc37ba4e4d2dd68905b5c55aaca300d48b66cdeba6a8","generated_at":"2026-10-29T19:16:05Z","dockerfile":"Dockerfile.offline.pinned","build_script":"BUILD_OFFLINE.sh","pins":{"upstream":{"repo":"https://github.com/moodle/moodle","ref":"v5.3.0","commit":"42622298fe06f9626d988d60b2bf589bd8f850e8","url":"https://github.com/moodle/moodle/tree/42622298fe06f9626d988d60b2bf589bd8f850e8"},"fetches":[{"kind":"git","url":"https://github.com/moodle/moodle","ref":"v5.3.0"}],"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":1791020085,"source_date_epoch_utc":"2026-10-03T09:34:45Z","target":{"image":"readystack/moodle:v5.3.0-CE-ubuntu24.04-r4","image_manifest_digest":"sha256:7db55b5d94598d01488b16d7a5065e7ded89f7a2b534235f4e367b0c28d67a5c","config_digest":"sha256:9824cb17950b92d543d63f4aae644425c611e6a731c7d1f04913a059a7789f07"},"checksummed_files":135344},"files":[{"path":"BASES.tsv","size":121,"sha256":"0da49a3ea98fcaa345080b1a4230d2c798b395f71854063c2af657eb53a8a2e0","public":"full","lines":1,"url":"/api/recipe/moodle/v5.3.0-CE-ubuntu24.04-r4/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":22042604,"sha256":"daa6895dc2cd128e94977731b0074bf249b4038f4b4fb557d83e33eb349d4210","public":"account","lines":135344},{"path":"DOCKERFILE_NAME.txt","size":26,"sha256":"9aadd1ede68e016a6f163c97befc5ff2fcdc8ebd4f84b108dba63cb195fa8c84","public":"full","lines":1,"url":"/api/recipe/moodle/v5.3.0-CE-ubuntu24.04-r4/files/DOCKERFILE_NAME.txt","text":"Dockerfile.offline.pinned\n"},{"path":"Dockerfile","size":5184,"sha256":"354810aa5fe925cceaa08ca2d82833564aff27b0daf837ec65f138eb1b39580c","public":"account","lines":62},{"path":"Dockerfile.offline","size":5184,"sha256":"354810aa5fe925cceaa08ca2d82833564aff27b0daf837ec65f138eb1b39580c","public":"account","lines":62},{"path":"Dockerfile.offline.pinned","size":5184,"sha256":"354810aa5fe925cceaa08ca2d82833564aff27b0daf837ec65f138eb1b39580c","public":"preview","lines":62,"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 APACHE_DOCUMENT_ROOT=/var/www/html/public\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":62}},{"path":"Dockerfile.vendor","size":1431,"sha256":"74adaa3f8d8163625cddc6a55d8de58fecc4be75a13c8fe8fef877da055d28a7","public":"account","lines":20},{"path":"MANIFEST.txt","size":12839242,"sha256":"39e18f11b52ba9abd12d6812747eb032363e67cbc46a893a4bdd7d9112fb25c0","public":"account","lines":135346},{"path":"SOURCE_DATE_EPOCH.txt","size":11,"sha256":"41fdd53fbb164f7dde3f22cc492892e353c394c71fc7948cf6946a613c86c8d7","public":"full","lines":1,"url":"/api/recipe/moodle/v5.3.0-CE-ubuntu24.04-r4/files/SOURCE_DATE_EPOCH.txt","text":"1791020085\n"},{"path":"TARGET_DIGEST.txt","size":436,"sha256":"cbf4e6a3e128ccb780c337b8e6a32432e443d1fc98179bf8200da6b231bcca84","public":"full","lines":8,"url":"/api/recipe/moodle/v5.3.0-CE-ubuntu24.04-r4/files/TARGET_DIGEST.txt","text":"image_manifest_digest=sha256:7db55b5d94598d01488b16d7a5065e7ded89f7a2b534235f4e367b0c28d67a5c\nconfig_digest=sha256:9824cb17950b92d543d63f4aae644425c611e6a731c7d1f04913a059a7789f07\ntag=readystack/moodle:v5.3.0-CE-ubuntu24.04-r4\nprobe_port=8080\nprobe_path=/login/index.php\nprobe_timeout=900\nverify_boot=skip\nverify_boot_reason=this image needs db (not part of this archive); boot it with your own services as the admin handbook describes\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":3980,"sha256":"6c39c4adc58d47ca59d9cbd7f0708cb370aef9aa3b6b442779610025665af4f6","public":"account","lines":62},{"path":"docs/PROVENANCE.md","size":1690,"sha256":"91a27309af0a20c632e64629e0b7d549744de4b85802f7169064dd5b59035373","public":"account","lines":28},{"path":"docs/REBUILD.md","size":5183,"sha256":"cc0466e7e63c67b00bc857c2a967db641ce7bc65538c957f91bfd3a06e62bdaf","public":"account","lines":59},{"path":"docs/VERIFY.md","size":1954,"sha256":"f5e9d5139a8a4daaf91a1ee806e5048ebdc479a9e490979868a9faa690ac01ca","public":"account","lines":34},{"path":"docs/provenance/BASE_IMAGE_DIGESTS.lock","size":49,"sha256":"633f640a38b5742dd3e42b73904948c3efe00a2bc72e05c68f2e9631c61afd5b","public":"full","lines":2,"url":"/api/recipe/moodle/v5.3.0-CE-ubuntu24.04-r4/files/docs/provenance/BASE_IMAGE_DIGESTS.lock","text":"# base images for moodle (resolve at build_kit)\n\n"},{"path":"docs/provenance/BUILD_RECIPE.json","size":3491,"sha256":"c8eeaa9c97f95b1da0d7efc8a56a7aa2648ab0f1aa261d21785c8e4d3c0ec612","public":"account","lines":76},{"path":"docs/provenance/CUSTODY_INPUTS.json","size":644,"sha256":"113973b91dfaaada3624dd18f017a70ce8c1535d319336922ffdfd87b6f51ba4","public":"account","lines":17},{"path":"docs/provenance/SOURCE_FILE_MANIFEST.json","size":315109,"sha256":"85454735b647c21ce91cb308b9898d708db1d8ebd67d11b6b7e5ef881e12d3a4","public":"account","lines":5007},{"path":"docs/provenance/SOURCE_TREE_HASH.json","size":303,"sha256":"4f285eb6700d958c64670de6974c618954c06d0c11d4d091d8b00e5cff2aaa25","public":"full","lines":9,"url":"/api/recipe/moodle/v5.3.0-CE-ubuntu24.04-r4/files/docs/provenance/SOURCE_TREE_HASH.json","text":"{\n  \"schema\": \"kitforge.source_tree_hash.v1\",\n  \"slug\": \"moodle\",\n  \"repo\": \"https://github.com/moodle/moodle\",\n  \"ref\": \"v5.3.0\",\n  \"commit\": \"42622298fe06f9626d988d60b2bf589bd8f850e8\",\n  \"tree_listing_sha256\": \"096a48537238e07dd94531ff70477bcaca97e3f58f53ae8baf8ad50c8a5c708f\",\n  \"file_count\": 67589\n}"},{"path":"docs/provenance/SYSTEM_PINNING.lock","size":166,"sha256":"44667b59906463e70f3c47f9a678fdc930732ec94e53d932b0fd9daa36df8a07","public":"account","lines":14},{"path":"docs/provenance/TOOLCHAIN.lock","size":2049,"sha256":"3093e775fbaf38add383af70d45ef36ac6e384ea073f441d1a4854a524f4b6fd","public":"account","lines":90},{"path":"moodle-vhost.conf","size":291,"sha256":"993730174fc9d804b3c242ca09a222b0b2409958b7fdea39d1b77dff304d21f7","public":"account","lines":10},{"path":"moodle.ini","size":513,"sha256":"0b79fbf05f80703422f6d8fa8f97906ee8939867abee60a76769da066cc8e817","public":"account","lines":12},{"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":1212,"sha256":"f669d79b2e359688b521e4521c7c6d1a2f4b4953074f7aeac1788989280cf9a2","public":"account","lines":31},{"path":"toolchain/BUILDKIT_TAG.txt","size":22,"sha256":"fcd530eeb02b063d2f047adad6eef896422a8e8d558513e5f09b2a262be32573","public":"full","lines":1,"url":"/api/recipe/moodle/v5.3.0-CE-ubuntu24.04-r4/files/toolchain/BUILDKIT_TAG.txt","text":"moby/buildkit:v0.31.2\n"}],"skipped":[],"kit_adds":{"bases":{"files":5,"bytes":29771169},"docs":{"files":67647,"bytes":468865621},"toolchain":{"files":1,"bytes":111529472},"vendored":{"files":67662,"bytes":502884830}},"links":{"page":"https://readystack.dev/products/moodle/recipe","signup":"https://readystack.dev/login.html?create=1&next=%2Fproducts%2Fmoodle%2Frecipe","kit":"https://readystack.dev/buy.html?product=moodle"}}