{"slug":"paperlessngx","tag":"v3.3.4-CE-ubuntu24.04-r4","current":true,"account":false,"tarball":"ReadyStack-paperlessngx-v3.3.4-CE-ubuntu24.04-r4.tar.gz","tarball_sha256":"6b41925afd704e4c91c33cfe04c01f589fe4e34f565c37fd144213b369f5bedf","generated_at":"2026-10-29T19:19:39Z","dockerfile":"Dockerfile.offline.pinned","build_script":"BUILD_OFFLINE.sh","pins":{"upstream":{"repo":"https://github.com/paperless-ngx/paperless-ngx","ref":"v3.3.4","commit":"558cb01a1ddc85b3753d8fcaf5f024e7456a5c82","url":"https://github.com/paperless-ngx/paperless-ngx/tree/558cb01a1ddc85b3753d8fcaf5f024e7456a5c82"},"fetches":[{"kind":"git","url":"https://github.com/paperless-ngx/paperless-ngx","ref":"v${PAPERLESS_VERSION}"},{"kind":"http","url":"https://www.python.org/ftp/python/3.12.15/Python-3.12.15.tar.xz"},{"kind":"http","url":"https://download.pytorch.org/whl/cpu"}],"bases":[{"image":"ubuntu:24.04","digest":"sha256:24737cef17f4e22b1977df7d9a05e77c4e28b7da5b8911f8d8ccda136bf3573c"}],"toolchain":{"buildkit":"moby/buildkit:v0.31.2","buildkit_image_digest":"sha256:e0e67ea9c4bb07bdef683e29f70f3b623d1eb9c82274a9ec04e6bb0511449fb0"},"build_method":"source-rebuild-python","source_date_epoch":1792706327,"source_date_epoch_utc":"2026-10-22T21:58:47Z","target":{"image":"readystack/paperlessngx:v3.3.4-CE-ubuntu24.04-r4","image_manifest_digest":"sha256:3592e6f6da0d61d05c7030522e63614dc9390867c5d439455fce62edc9d01510","config_digest":"sha256:648fb6ec219d355ce00c4d941c8655d55ca398c2cd4c2133419b6f2877d42845"},"checksummed_files":1731},"files":[{"path":"BASES.tsv","size":121,"sha256":"0da49a3ea98fcaa345080b1a4230d2c798b395f71854063c2af657eb53a8a2e0","public":"full","lines":1,"url":"/api/recipe/paperlessngx/v3.3.4-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":262940,"sha256":"4ab0f4f956e8940a1335cf5aaadec1830e2e0eea250ba17cf429cd536fce7268","public":"account","lines":1731},{"path":"DOCKERFILE_NAME.txt","size":26,"sha256":"9aadd1ede68e016a6f163c97befc5ff2fcdc8ebd4f84b108dba63cb195fa8c84","public":"full","lines":1,"url":"/api/recipe/paperlessngx/v3.3.4-CE-ubuntu24.04-r4/files/DOCKERFILE_NAME.txt","text":"Dockerfile.offline.pinned\n"},{"path":"Dockerfile","size":6819,"sha256":"d7b44e6741dfb7afbe8e4daa1b06caff12befaa98a19c5ab4a7ffe604f7c9074","public":"account","lines":65},{"path":"Dockerfile.offline","size":6819,"sha256":"d7b44e6741dfb7afbe8e4daa1b06caff12befaa98a19c5ab4a7ffe604f7c9074","public":"account","lines":65},{"path":"Dockerfile.offline.pinned","size":6819,"sha256":"d7b44e6741dfb7afbe8e4daa1b06caff12befaa98a19c5ab4a7ffe604f7c9074","public":"preview","lines":65,"preview":{"text":"# =====================================================================\n# Paperless-ngx v3.3.4 (GPL-3.0) HERMETIC OFFLINE BUILD. --network=none.\n# Reassembles the vendored built filesystem onto the PINNED public ubuntu:24.04 base.\n# =====================================================================\n# CPython 3.12.15 COMPILED HERE, offline (--network=none), from python.org's tarball (sha256 re-checked) and\n# the vendored build debs, by the same command the vendor stage ran; linked against Ubuntu's libraries.\nFROM ubuntu:24.04@sha256:24737cef17f4e22b1977df7d9a05e77c4e28b7da5b8911f8d8ccda136bf3573c AS cpython\nARG SOURCE_DATE_EPOCH=1791257664\nENV SOURCE_DATE_EPOCH=${SOURCE_DATE_EPOCH}\nCOPY vendored/paperlessngx-src/python/debs/ /tmp/cpython-debs/\nCOPY vendored/paperlessngx-src/python/Python-3.12.15.tar.xz /tmp/Python-3.12.15.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 \"c2c4321961fab0fb999d66e0cecf521c2ab3994c7992873ea99e306c1094fd5a  /tmp/Python-3.12.15.tar.xz\" | sha256sum -c - && \\\n    mkdir -p /usr/src/python && tar -xJf /tmp/Python-3.12.15.tar.xz -C /usr/src/python --strip-components=1 --no-same-owner && \\\n    rm -rf /tmp/cpython-debs /tmp/Python-3.12.15.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":65}},{"path":"Dockerfile.vendor","size":14275,"sha256":"52d374564610c8036cee9060367c99e80526611ef9829be480d2305d2241ed2d","public":"account","lines":164},{"path":"MANIFEST.txt","size":145262,"sha256":"ae05d4d23c81b2aa4e8bfc356bbd98f6d99457559230888eb06eca116b205af8","public":"account","lines":1733},{"path":"SOURCE_DATE_EPOCH.txt","size":11,"sha256":"714c15c8d72bbc18bfd2679980f92a8af0323462d8921627c82447d7cb44e703","public":"full","lines":1,"url":"/api/recipe/paperlessngx/v3.3.4-CE-ubuntu24.04-r4/files/SOURCE_DATE_EPOCH.txt","text":"1792706327\n"},{"path":"TARGET_DIGEST.txt","size":449,"sha256":"a45c2010088cda36beb90f6072ae6f323f5fd59c8dce5f6759eddc001817518a","public":"full","lines":8,"url":"/api/recipe/paperlessngx/v3.3.4-CE-ubuntu24.04-r4/files/TARGET_DIGEST.txt","text":"image_manifest_digest=sha256:3592e6f6da0d61d05c7030522e63614dc9390867c5d439455fce62edc9d01510\nconfig_digest=sha256:648fb6ec219d355ce00c4d941c8655d55ca398c2cd4c2133419b6f2877d42845\ntag=readystack/paperlessngx:v3.3.4-CE-ubuntu24.04-r4\nprobe_port=8000\nprobe_path=/accounts/login/\nprobe_timeout=900\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":7331,"sha256":"8b036b1f9a7f7deb4dbab14ef6b7c40622d2820904e891b8845ba3580e924506","public":"account","lines":128},{"path":"constraints.txt","size":6080,"sha256":"9545a58a9cc9b592088e4eab4a56fa668c876c5ad1c857ed0d66b81cb1110676","public":"account","lines":68},{"path":"docs/PROVENANCE.md","size":1728,"sha256":"7142b24d17891153b74db854ecee7dffdc73789ddaeab95d262f48ad27a63aa7","public":"account","lines":28},{"path":"docs/REBUILD.md","size":5168,"sha256":"56474c79f7fa5635e78bf00902323b3fe4d6f9f5ae6c562a81ee39a156bed499","public":"account","lines":59},{"path":"docs/VERIFY.md","size":1986,"sha256":"42066040a0a0efd8fb4181a578b7215c22bbd39c84e1ff8883647375f40f595d","public":"account","lines":34},{"path":"docs/provenance/BASE_IMAGE_DIGESTS.lock","size":55,"sha256":"d119481183e4361a21fd088f7e69d357f1aaeb9cd09c70a69f546f0ee2a62801","public":"full","lines":2,"url":"/api/recipe/paperlessngx/v3.3.4-CE-ubuntu24.04-r4/files/docs/provenance/BASE_IMAGE_DIGESTS.lock","text":"# base images for paperlessngx (resolve at build_kit)\n\n"},{"path":"docs/provenance/BUILD_RECIPE.json","size":2678,"sha256":"e34c559bd34988f57fc0ad880d81884f0a588c4e6a51160f8f3c9fcb61a5f1ed","public":"account","lines":23},{"path":"docs/provenance/CUSTODY_INPUTS.json","size":664,"sha256":"d757bf9670d093b8dec2bca9b1f7e57f4d81d4376019b34239d713147cf0bc71","public":"account","lines":17},{"path":"docs/provenance/SOURCE_FILE_MANIFEST.json","size":98759,"sha256":"4a9ab537306ae58ca8ee1c3eacfb6e2d3a1fb55ae47d88bf1553663790650118","public":"account","lines":1573},{"path":"docs/provenance/SOURCE_TREE_HASH.json","size":322,"sha256":"415b6f260a36c54073b098270164211438acdba5308e78dde1ab26aa41c7c745","public":"full","lines":9,"url":"/api/recipe/paperlessngx/v3.3.4-CE-ubuntu24.04-r4/files/docs/provenance/SOURCE_TREE_HASH.json","text":"{\n  \"schema\": \"kitforge.source_tree_hash.v1\",\n  \"slug\": \"paperlessngx\",\n  \"repo\": \"https://github.com/paperless-ngx/paperless-ngx\",\n  \"ref\": \"v3.3.4\",\n  \"commit\": \"558cb01a1ddc85b3753d8fcaf5f024e7456a5c82\",\n  \"tree_listing_sha256\": \"ec13ecda4996c16569e9957d5eb23669d7e4630e1fae8165731e034e9768425b\",\n  \"file_count\": 1566\n}"},{"path":"docs/provenance/SYSTEM_PINNING.lock","size":1,"sha256":"01ba4719c80b6fe911b091a7c05124b64eeece964e09c058ef8f9805daca546b","public":"account","lines":1},{"path":"docs/provenance/TOOLCHAIN.lock","size":1086,"sha256":"c8bd902c5ce1b804e05e666ab2e4be1b99f5aab3e1d8367b17c3cbc8f6189dfb","public":"account","lines":30},{"path":"entrypoint.sh","size":1236,"sha256":"7130bde93f13b5a438e54abfe157763814cdafb59550853aa28eed405b13c7e1","public":"account","lines":15},{"path":"rebuild.json","size":1225,"sha256":"449167864c58a910e0dbf71849ec5fbf43e2a6adc2efa89d1e3e77afc6f24e5a","public":"account","lines":31},{"path":"supervisor-paperless.conf","size":1160,"sha256":"e6398b4529f3d86166c76d211aeb2614872609cbcdc6c7e49725a7e8da31e808","public":"account","lines":47},{"path":"toolchain/BUILDKIT_TAG.txt","size":22,"sha256":"fcd530eeb02b063d2f047adad6eef896422a8e8d558513e5f09b2a262be32573","public":"full","lines":1,"url":"/api/recipe/paperlessngx/v3.3.4-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":1620,"bytes":102889441},"toolchain":{"files":1,"bytes":111529472},"vendored":{"files":80,"bytes":2284840635}},"links":{"page":"https://readystack.dev/products/paperlessngx/recipe","signup":"https://readystack.dev/login.html?create=1&next=%2Fproducts%2Fpaperlessngx%2Frecipe","kit":"https://readystack.dev/buy.html?product=paperlessngx"}}