{"slug":"nginx","tag":"1.31.8-CE-ubuntu24.04-r1","current":true,"account":false,"tarball":"ReadyStack-nginx-1.31.8-CE-ubuntu24.04-r1.tar.gz","tarball_sha256":"da96641627144e185c0085f81aaafe584707081ceec8e26df86c02855c660225","generated_at":"2026-10-29T19:17:33Z","dockerfile":"Dockerfile.offline.pinned","build_script":"BUILD_OFFLINE.sh","pins":{"upstream":{"repo":"https://github.com/nginx/nginx","ref":"release-1.31.8","commit":"140aa942711868a8daeb95810bc9a81f272ada72","url":"https://github.com/nginx/nginx/tree/140aa942711868a8daeb95810bc9a81f272ada72"},"fetches":[{"kind":"git","url":"https://github.com/nginx/nginx","ref":"release-1.31.8"}],"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-c","source_date_epoch":1792592691,"source_date_epoch_utc":"2026-10-21T14:24:51Z","target":{"image":"readystack/nginx:1.31.8-CE-ubuntu24.04-r1","image_manifest_digest":"sha256:a15dcfdc9d381a8f199efba6a96fa8683d39b0dd6d4b2e81423bb023da1d102c","config_digest":"sha256:2814660efe9b3892353edad2f6eafcb9d200a598fad615819dddd50ea138ea4e"},"checksummed_files":1257},"files":[{"path":"BASES.tsv","size":121,"sha256":"0da49a3ea98fcaa345080b1a4230d2c798b395f71854063c2af657eb53a8a2e0","public":"full","lines":1,"url":"/api/recipe/nginx/1.31.8-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":152762,"sha256":"39db4bcfbe5dad28785b186a2702ceb973325ab30433ddafc22995dd2afeab69","public":"account","lines":1257},{"path":"DOCKERFILE_NAME.txt","size":26,"sha256":"9aadd1ede68e016a6f163c97befc5ff2fcdc8ebd4f84b108dba63cb195fa8c84","public":"full","lines":1,"url":"/api/recipe/nginx/1.31.8-CE-ubuntu24.04-r1/files/DOCKERFILE_NAME.txt","text":"Dockerfile.offline.pinned\n"},{"path":"Dockerfile","size":5249,"sha256":"3c79db59febf2850d73f0fbccf20e359ecf0fe26d3781a9485cc2c97721f2788","public":"account","lines":56},{"path":"Dockerfile.offline","size":5249,"sha256":"3c79db59febf2850d73f0fbccf20e359ecf0fe26d3781a9485cc2c97721f2788","public":"account","lines":56},{"path":"Dockerfile.offline.pinned","size":5249,"sha256":"3c79db59febf2850d73f0fbccf20e359ecf0fe26d3781a9485cc2c97721f2788","public":"preview","lines":56,"preview":{"text":"# GENERATED L-009 hermetic C build (--network=none, SBOM+SLSA-attestation-producing).\n# Pinned bases; vendored source (in-tree deps) + extra build debs + runtime debs from Dockerfile.vendor.\nFROM ubuntu:24.04@sha256:24737cef17f4e22b1977df7d9a05e77c4e28b7da5b8911f8d8ccda136bf3573c AS cbuild\n# dpkg-install the vendored EXTRA build debs (pkg-config/libssl-dev/...) — gcc/make are in the builder.\nRUN --mount=type=bind,source=vendored/build-debs,target=/tmp/bdebs \\\n    set --; for f in /tmp/bdebs/*.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; }; }\nWORKDIR /src\nCOPY vendored/nginx-src/ .\nARG SOURCE_DATE_EPOCH=1792592691\nENV SOURCE_DATE_EPOCH=${SOURCE_DATE_EPOCH}\nRUN ./auto/configure --prefix=/opt/nginx --sbin-path=/opt/nginx/sbin/nginx --modules-path=/opt/nginx/modules --conf-path=/etc/nginx/nginx.conf --error-log-path=stderr --http-log-path=/dev/stdout --pid-path=/tmp/nginx.pid --lock-path=/tmp/nginx.lock --http-client-body-temp-path=/tmp/client_temp --http-proxy-temp-path=/tmp/proxy_temp --http-fastcgi-temp-path=/tmp/fastcgi_temp --http-uwsgi-temp-path=/tmp/uwsgi_temp --http-scgi-temp-path=/tmp/scgi_temp --user=nginx --group=nginx --with-compat --with-file-aio --with-threads --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_flv_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_mp4_module --with-http_random_index_module --with-http_realip_module --with-http_secure_link_module --with-http_slice_module --with-http_ssl_module --with-http_stub_status_module --with-http_sub_module --with-http_v2_module --with-http_v3_module --with-mail --with-mail_ssl_module --with-stream --with-stream_realip_module --with-stream_ssl_module --with-stream_ssl_preread_module --with-pcre-jit --with-cc-opt='-O2 -fstack-protector-strong -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -fPIC' --with-ld-opt='-Wl,-z,relro -Wl,-z,now -Wl,--as-needed -pie'\nRUN make -j\"$(nproc)\"\nRUN make install\nRUN mkdir -p /opt/nginx/conf && cp conf/mime.types conf/fastcgi_params conf/fastcgi.conf conf/scgi_params conf/uwsgi_params conf/koi-utf conf/koi-win conf/win-utf /opt/nginx/conf/\nFROM ubuntu:24.04@sha256:24737cef17f4e22b1977df7d9a05e77c4e28b7da5b8911f8d8ccda136bf3573c\nENV DEBIAN_FRONTEND=noninteractive PATH=/opt/nginx/sbin:/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); \\","lines_shown":24,"lines_total":56}},{"path":"Dockerfile.vendor","size":1766,"sha256":"b22f14d2ddb7ff95e14c8602c7658c655e290d3397b40c491693cf7fa0bbaf6d","public":"account","lines":25},{"path":"MANIFEST.txt","size":67316,"sha256":"07bead3bb52f593e8638dd310090c9759139e9046598dcfef30f441499277629","public":"account","lines":1259},{"path":"SOURCE_DATE_EPOCH.txt","size":11,"sha256":"334173b871d9835e23f1e2ffce6c739ded6076779b20298d89f33b8f0d139620","public":"full","lines":1,"url":"/api/recipe/nginx/1.31.8-CE-ubuntu24.04-r1/files/SOURCE_DATE_EPOCH.txt","text":"1792592691\n"},{"path":"TARGET_DIGEST.txt","size":280,"sha256":"12feb40dfd629d776d9b6eaedd999c0840224b61f72f41834ca27892171e1581","public":"full","lines":6,"url":"/api/recipe/nginx/1.31.8-CE-ubuntu24.04-r1/files/TARGET_DIGEST.txt","text":"image_manifest_digest=sha256:a15dcfdc9d381a8f199efba6a96fa8683d39b0dd6d4b2e81423bb023da1d102c\nconfig_digest=sha256:2814660efe9b3892353edad2f6eafcb9d200a598fad615819dddd50ea138ea4e\ntag=readystack/nginx:1.31.8-CE-ubuntu24.04-r1\nprobe_port=8080\nprobe_path=/healthz\nprobe_timeout=180\n"},{"path":"VERIFY_OFFLINE.sh","size":7331,"sha256":"8b036b1f9a7f7deb4dbab14ef6b7c40622d2820904e891b8845ba3580e924506","public":"account","lines":128},{"path":"default.conf","size":635,"sha256":"c7978ad52b91fa6549a0b2c2e15aa4919f750a63a64ff857f9b4fe33bf68c8dc","public":"account","lines":23},{"path":"docs/PROVENANCE.md","size":1692,"sha256":"4780d28e5e701b9c16e06700b39b35630b30dc8f4f1e94b84526b32b91b88790","public":"account","lines":28},{"path":"docs/REBUILD.md","size":5081,"sha256":"fc39bd5108f1cfd7740fda795144dd95391166fbfac43c03a49971b00784afb0","public":"account","lines":57},{"path":"docs/VERIFY.md","size":1946,"sha256":"551d6591c95b927a8ac2e667ee825a301a891db2f72b8e244f9f597a2a3e9910","public":"account","lines":34},{"path":"docs/provenance/BASE_IMAGE_DIGESTS.lock","size":60,"sha256":"686b9f7e1b04f680b4ecf5ab855ebcd97d19809e357c19588c3b390bfaaf5c18","public":"full","lines":2,"url":"/api/recipe/nginx/1.31.8-CE-ubuntu24.04-r1/files/docs/provenance/BASE_IMAGE_DIGESTS.lock","text":"# base images for nginx (resolve at build_kit)\nubuntu:24.04\n"},{"path":"docs/provenance/BUILD_RECIPE.json","size":4167,"sha256":"7f30c7a3ae842df5da2fa089136eb15846671247e90b97e31f0d51779c916ea4","public":"account","lines":43},{"path":"docs/provenance/CUSTODY_INPUTS.json","size":649,"sha256":"ed15c19cb7985635044098de4044ea99a53887859c6b22c0fc139c429c23a0ef","public":"account","lines":17},{"path":"docs/provenance/SOURCE_FILE_MANIFEST.json","size":19993,"sha256":"290045106f136c3f2ee82664d3e359929839d6cefc92a4dd6339e14e20f13784","public":"account","lines":551},{"path":"docs/provenance/SOURCE_TREE_HASH.json","size":306,"sha256":"cf0f25330e3f5a1b74dd6b4b7ab4622a776ccd1d9780ac9c8e1057bf2d93b765","public":"full","lines":9,"url":"/api/recipe/nginx/1.31.8-CE-ubuntu24.04-r1/files/docs/provenance/SOURCE_TREE_HASH.json","text":"{\n  \"schema\": \"kitforge.source_tree_hash.v1\",\n  \"slug\": \"nginx\",\n  \"repo\": \"https://github.com/nginx/nginx\",\n  \"ref\": \"release-1.31.8\",\n  \"commit\": \"140aa942711868a8daeb95810bc9a81f272ada72\",\n  \"tree_listing_sha256\": \"30b1e300a9859801916b2aef8707f40ed7d489117582f461334f09b10c4b9190\",\n  \"file_count\": 544\n}"},{"path":"docs/provenance/SYSTEM_PINNING.lock","size":59,"sha256":"f9e98658edf947c1cbe2bae40abd2d353588c1eaa134e5949928eddf739b731c","public":"account","lines":6},{"path":"docs/provenance/TOOLCHAIN.lock","size":3206,"sha256":"2989d79a627183c9312881fc4140a1b3c61de9814143464d368e1f7f81e3ea35","public":"account","lines":62},{"path":"nginx.conf","size":910,"sha256":"9b131650f0aadd0498fdfba2d272cdfc601b024af8031d2fbe52892f44810e55","public":"account","lines":29},{"path":"rebuild.json","size":1154,"sha256":"c1ff8dee57d9d3419b79a8b1e3ecc1a8b678652b82a15020df0bc21d2c299113","public":"account","lines":33},{"path":"toolchain/BUILDKIT_TAG.txt","size":22,"sha256":"fcd530eeb02b063d2f047adad6eef896422a8e8d558513e5f09b2a262be32573","public":"full","lines":1,"url":"/api/recipe/nginx/1.31.8-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":597,"bytes":11287668},"toolchain":{"files":1,"bytes":111529472},"vendored":{"files":630,"bytes":97069979}},"links":{"page":"https://readystack.dev/products/nginx/recipe","signup":"https://readystack.dev/login.html?create=1&next=%2Fproducts%2Fnginx%2Frecipe","kit":"https://readystack.dev/buy.html?product=nginx"}}