{"slug":"mastodon","tag":"v4.7.4-CE-ubuntu24.04-r1","current":true,"account":false,"tarball":"ReadyStack-mastodon-v4.7.4-CE-ubuntu24.04-r1.tar.gz","tarball_sha256":"9eb346eb2e2638ba5547a343527ff534536552a78694fb2ebc5ce1025005c19a","generated_at":"2026-11-01T09:46:39Z","dockerfile":"Dockerfile.offline.pinned","build_script":"BUILD_OFFLINE.sh","pins":{"upstream":{"repo":"https://github.com/mastodon/mastodon","ref":"v4.7.4","commit":"d04059fc80be5cbba6b4dd5a8b94d63ffff09f2c","url":"https://github.com/mastodon/mastodon/tree/d04059fc80be5cbba6b4dd5a8b94d63ffff09f2c"},"fetches":[{"kind":"git","url":"https://github.com/mastodon/mastodon","ref":"v4.7.4"},{"kind":"http","url":"https://cache.ruby-lang.org/pub/ruby/4.0/ruby-4.0.9.tar.gz"},{"kind":"http","url":"https://cache.ruby-lang.org/pub/ruby/index.txt"},{"kind":"http","url":"https://nodejs.org/dist/v24.22.1/node-v24.22.1-linux-x64.tar.gz"},{"kind":"http","url":"https://nodejs.org/dist/v24.22.1/SHASUMS256.txt"},{"kind":"http","url":"https://github.com/libvips/libvips/releases/download/v8.18.7/vips-8.18.7.tar.xz"},{"kind":"http","url":"https://ffmpeg.org/releases/ffmpeg-9.0.2.tar.xz"}],"bases":[{"image":"ubuntu:24.04","digest":"sha256:fe81560990fae86dc4743202b2cb4d3df98d0bcf949173cecef15ce1127ef852"}],"toolchain":{"buildkit":"moby/buildkit:v0.31.2","buildkit_image_digest":"sha256:e0e67ea9c4bb07bdef683e29f70f3b623d1eb9c82274a9ec04e6bb0511449fb0"},"build_method":"source-rebuild-ruby","source_date_epoch":1793282182,"source_date_epoch_utc":"2026-10-29T13:56:22Z","target":{"image":"readystack/mastodon:v4.7.4-CE-ubuntu24.04-r1","image_manifest_digest":"sha256:426e1abb01de6f2652e23d2d2bdde2df9c24eae4ad2517520c395ba07830a02b","config_digest":"sha256:f968289c31092615813644ffcc5f177bba034cf1a0c1de6267ba954ed2450aee"},"checksummed_files":27127},"files":[{"path":"BASES.tsv","size":121,"sha256":"63822800fc2b89e7b38d1fbaaad6f0c80c9a91a0176ebe7d935c08b0cdd6b4fa","public":"full","lines":1,"url":"/api/recipe/mastodon/v4.7.4-CE-ubuntu24.04-r1/files/BASES.tsv","text":"ubuntu:24.04@sha256:fe81560990fae86dc4743202b2cb4d3df98d0bcf949173cecef15ce1127ef852\tbases/ubuntu_24.04_fe81560990fa.oci\n"},{"path":"BUILD_OFFLINE.sh","size":6756,"sha256":"6633aa31b6b40dc4a75c83de0272269acbb86e82f3bcfa7fdd202d1642a6780a","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. Your build platform runs\n#                                     the build and signs that provenance with a key the build steps cannot reach\n#                                     (see REBUILD.md). Any SLSA build level is your platform's; this archive claims\n#                                     none. The image 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":3702513,"sha256":"14d51666c673d7d4e1122e38fea9ee382a7f542dc0774f34925a943e0accd716","public":"account","lines":27127},{"path":"DOCKERFILE_NAME.txt","size":26,"sha256":"9aadd1ede68e016a6f163c97befc5ff2fcdc8ebd4f84b108dba63cb195fa8c84","public":"full","lines":1,"url":"/api/recipe/mastodon/v4.7.4-CE-ubuntu24.04-r1/files/DOCKERFILE_NAME.txt","text":"Dockerfile.offline.pinned\n"},{"path":"Dockerfile","size":8167,"sha256":"0c3daf6e2fe9c44e6d42ebd3795449cfc6b079fec9b12e85bdfec33053878a3e","public":"account","lines":79},{"path":"Dockerfile.offline","size":8167,"sha256":"0c3daf6e2fe9c44e6d42ebd3795449cfc6b079fec9b12e85bdfec33053878a3e","public":"account","lines":79},{"path":"Dockerfile.offline.pinned","size":8167,"sha256":"0c3daf6e2fe9c44e6d42ebd3795449cfc6b079fec9b12e85bdfec33053878a3e","public":"preview","lines":79,"preview":{"text":"# GENERATED L-009 hermetic Ruby build (--network=none, SBOM+SLSA-attestation-producing).\n# Compiles CRuby 4.0.9 from the vendored ruby-lang.org tarball and the native gems from vendor/cache, then\n# copies Ruby + the installed bundle onto the pinned base with only runtime debs: no compiler, headers or Node.\nFROM ubuntu:24.04@sha256:fe81560990fae86dc4743202b2cb4d3df98d0bcf949173cecef15ce1127ef852 AS rubybuild\nENV DEBIAN_FRONTEND=noninteractive LANG=C.UTF-8\nRUN --mount=type=bind,source=vendored/debs,target=/tmp/debs --mount=type=bind,source=vendored/build-debs,target=/tmp/bdebs \\\n    set --; for f in /tmp/debs/*.deb /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; }; }\nARG SOURCE_DATE_EPOCH=1793282182\nENV SOURCE_DATE_EPOCH=${SOURCE_DATE_EPOCH}\nCOPY vendored/ruby/ /tmp/ruby/\nRUN cd /tmp/ruby && echo 'c35350682ff050b79702d57ade4516e7336063f510155d19fb2fb5b3f3909511  ruby-4.0.9.tar.gz' | sha256sum -c - && \\\n    tar -xzf ruby-4.0.9.tar.gz && cd ruby-4.0.9 && \\\n    ./configure --prefix=/usr/local --enable-shared --disable-install-doc --disable-install-static-library --enable-yjit --with-jemalloc && \\\n    make -j\"$(nproc)\" && make install && \\\n    cd / && rm -rf /tmp/ruby && \\\n    find /usr/local/lib/ruby \\( -name gem_make.out -o -name mkmf.log \\) -delete && \\\n    ruby --version | grep -qF 'ruby 4.0.9'\nCOPY kitforge-ruby-gems.rb /tmp/kitforge-ruby-gems.rb\nCOPY vendored/ruby-gems/ /tmp/ruby-gems/\nRUN ruby /tmp/kitforge-ruby-gems.rb install /tmp/ruby-gems json=2.21.2 && \\","lines_shown":24,"lines_total":79}},{"path":"Dockerfile.vendor","size":10325,"sha256":"1d151bd5c50fd37c5021170967499917a8170407d1b2459c3b8e44e80ef2306e","public":"account","lines":87},{"path":"MANIFEST.txt","size":1857907,"sha256":"c16a7db1aaad5bb960e0cb5e62ff18464a225ae94bcb01a468e3a24b5602c86a","public":"account","lines":27129},{"path":"SOURCE_DATE_EPOCH.txt","size":11,"sha256":"1bd6e653621ad77dc344568d5a060d726f3d0d0a83a31a3c9ac3a4dd7c9b5741","public":"full","lines":1,"url":"/api/recipe/mastodon/v4.7.4-CE-ubuntu24.04-r1/files/SOURCE_DATE_EPOCH.txt","text":"1793282182\n"},{"path":"TARGET_DIGEST.txt","size":437,"sha256":"4c49062e7e65894c1f600dd87b6fa65323010996111acc45dcca103d481be971","public":"full","lines":8,"url":"/api/recipe/mastodon/v4.7.4-CE-ubuntu24.04-r1/files/TARGET_DIGEST.txt","text":"image_manifest_digest=sha256:426e1abb01de6f2652e23d2d2bdde2df9c24eae4ad2517520c395ba07830a02b\nconfig_digest=sha256:f968289c31092615813644ffcc5f177bba034cf1a0c1de6267ba954ed2450aee\ntag=readystack/mastodon:v4.7.4-CE-ubuntu24.04-r1\nprobe_port=3000\nprobe_path=/health\nprobe_timeout=1200\nverify_boot=skip\nverify_boot_reason=this image needs db, redis (not part of this archive); boot it with your own services as the admin handbook describes\n"},{"path":"VERIFY_OFFLINE.sh","size":10153,"sha256":"3e8184ea230cfd8f41f977e26be6bf7bd03112c396c517837ce0c7de4f7399dd","public":"account","lines":165},{"path":"docs/PROVENANCE.md","size":1703,"sha256":"c2a21d9e4f16536d40715c2d1ca2afbecbbd96292de1872b4320c0952636318f","public":"account","lines":28},{"path":"docs/REBUILD.md","size":5139,"sha256":"a50277fb9976923eb537aa19c83633bf5b463e8fe3190aeb87f0271b7d3a4714","public":"account","lines":59},{"path":"docs/VERIFY.md","size":1964,"sha256":"d8d3848b13f7311b2ffc00089e3056a2fa73da77f3f1656ef40aac48344e546e","public":"account","lines":34},{"path":"docs/provenance/BASE_IMAGE_DIGESTS.lock","size":51,"sha256":"0cfd6c80e90ef413ff8a660721e556246bda9a9b93e5b77c5002970902b4b698","public":"full","lines":2,"url":"/api/recipe/mastodon/v4.7.4-CE-ubuntu24.04-r1/files/docs/provenance/BASE_IMAGE_DIGESTS.lock","text":"# base images for mastodon (resolve at build_kit)\n\n"},{"path":"docs/provenance/BUILD_RECIPE.json","size":9233,"sha256":"d428237f350b2321df03b3ff088c94c36f5de604963001aa803f17acc6e38eed","public":"account","lines":177},{"path":"docs/provenance/CUSTODY_INPUTS.json","size":650,"sha256":"b2486b0c1e20a071631d4a135298e94be14791b25d779ad7e7af145a14e96d80","public":"account","lines":17},{"path":"docs/provenance/SOURCE_FILE_MANIFEST.json","size":267854,"sha256":"ae1d85af5508418bd1ee7e2b0b18c6b0e62231f44d4449bfb531ae4bdc052741","public":"account","lines":5007},{"path":"docs/provenance/SOURCE_TREE_HASH.json","size":308,"sha256":"844c9d7e33a99b5559a3e4153c67464e77167bfe6c25ace775ccde4659c062b4","public":"full","lines":9,"url":"/api/recipe/mastodon/v4.7.4-CE-ubuntu24.04-r1/files/docs/provenance/SOURCE_TREE_HASH.json","text":"{\n  \"schema\": \"kitforge.source_tree_hash.v1\",\n  \"slug\": \"mastodon\",\n  \"repo\": \"https://github.com/mastodon/mastodon\",\n  \"ref\": \"v4.7.4\",\n  \"commit\": \"d04059fc80be5cbba6b4dd5a8b94d63ffff09f2c\",\n  \"tree_listing_sha256\": \"66fa0a9ee21b341cf1bde47e22d905c3296233c69d950ee483bbcb7209929066\",\n  \"file_count\": 9932\n}"},{"path":"docs/provenance/SYSTEM_PINNING.lock","size":383,"sha256":"b15de43eae5ade1af1776da31fb0fbaecee58a68cef30da61174f6629d0062e2","public":"account","lines":36},{"path":"docs/provenance/TOOLCHAIN.lock","size":6867,"sha256":"045f0417f647e61ef0fed4c86039668dd193dff60a68d5ee69538f4bf6cfea3c","public":"account","lines":180},{"path":"kitforge-ruby-gems.rb","size":5570,"sha256":"7f6627293be0debc7270e65cfe3559a29d3d95791843866fe1065570a460dd09","public":"account","lines":102},{"path":"mastodon-entrypoint.sh","size":1285,"sha256":"14ebbe17d59738565cd3304ce33bfd84ee068e6a3e293932fd39fcd34199676a","public":"account","lines":21},{"path":"rebuild.json","size":1221,"sha256":"3966404a3c026377a6592eb9e0fe1ac1d2941de5cb7f06a39c3ead0f246ef870","public":"account","lines":31},{"path":"toolchain/BUILDKIT_TAG.txt","size":22,"sha256":"fcd530eeb02b063d2f047adad6eef896422a8e8d558513e5f09b2a262be32573","public":"full","lines":1,"url":"/api/recipe/mastodon/v4.7.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":9985,"bytes":92436577},"toolchain":{"files":1,"bytes":111529472},"vendored":{"files":17112,"bytes":669795523}},"links":{"page":"https://readystack.dev/products/mastodon/recipe","signup":"https://readystack.dev/login.html?create=1&next=%2Fproducts%2Fmastodon%2Frecipe","kit":"https://readystack.dev/products/mastodon#pp-kit"}}