{"slug":"posthog","tag":"master-20261022-b904ac8-CE-ubuntu24.04-r1","current":true,"account":false,"tarball":"ReadyStack-posthog-master-20261022-b904ac8-CE-ubuntu24.04-r1.tar.gz","tarball_sha256":"1ba35f999b94cd0bdf69f1f69daefdbe0101dbddbc321321071b4f967adb23e6","generated_at":"2026-10-29T19:21:25Z","dockerfile":"Dockerfile.offline.pinned","build_script":"BUILD_OFFLINE.sh","pins":{"upstream":{"repo":"https://github.com/PostHog/posthog","ref":"b904ac8008e531c8aaeaf58e523cf97cff9fba41","commit":"b904ac8008e531c8aaeaf58e523cf97cff9fba41","url":"https://github.com/PostHog/posthog/tree/b904ac8008e531c8aaeaf58e523cf97cff9fba41"},"fetches":[{"kind":"http","url":"https://github.com/PostHog/posthog.git"},{"kind":"http","url":"https://www.python.org/ftp/python/3.14.9/Python-3.14.9.tar.xz"}],"bases":[{"image":"ubuntu:24.04","digest":"sha256:68ee22004a9109b44973313b02ff7b1de250f1de0f5ecb628d73f579aaff33ac"}],"toolchain":{"buildkit":"moby/buildkit:v0.31.2","buildkit_image_digest":"sha256:e0e67ea9c4bb07bdef683e29f70f3b623d1eb9c82274a9ec04e6bb0511449fb0"},"build_method":"source-rebuild-python","source_date_epoch":1792630321,"source_date_epoch_utc":"2026-10-22T00:52:01Z","target":{"image":"readystack/posthog:master-20261022-b904ac8-CE-ubuntu24.04-r1","image_manifest_digest":"sha256:e5edff2d616054b702512e27673c159243f51576ab0275d8650d0ad1e37a3f58","config_digest":"sha256:6d378b5c136639f631e7337412e96df9bcf5bf4ecd4c648051bddef13d7ac63e"},"checksummed_files":60081},"files":[{"path":"BASES.tsv","size":121,"sha256":"abada2a5a4d6cf4b84bc6d4a17027231b40c2bfa231f0c2d997a9994571c06c9","public":"full","lines":1,"url":"/api/recipe/posthog/master-20261022-b904ac8-CE-ubuntu24.04-r1/files/BASES.tsv","text":"ubuntu:24.04@sha256:68ee22004a9109b44973313b02ff7b1de250f1de0f5ecb628d73f579aaff33ac\tbases/ubuntu_24.04_68ee22004a91.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":9975282,"sha256":"5c47d6055d461512e72e572c9f6274c612f705ed660e3f15b5c68598b5a331f8","public":"account","lines":60081},{"path":"Caddyfile","size":1458,"sha256":"41d434aaf8d77668a777ce710549c29c6e3f6d844a8d8dbb17de206e621bab49","public":"account","lines":38},{"path":"DOCKERFILE_NAME.txt","size":26,"sha256":"9aadd1ede68e016a6f163c97befc5ff2fcdc8ebd4f84b108dba63cb195fa8c84","public":"full","lines":1,"url":"/api/recipe/posthog/master-20261022-b904ac8-CE-ubuntu24.04-r1/files/DOCKERFILE_NAME.txt","text":"Dockerfile.offline.pinned\n"},{"path":"Dockerfile","size":8206,"sha256":"97b17eae05c252366730b425e210c4a4e7783c0067e358bdea64efe14762c086","public":"account","lines":65},{"path":"Dockerfile.offline","size":8206,"sha256":"97b17eae05c252366730b425e210c4a4e7783c0067e358bdea64efe14762c086","public":"account","lines":65},{"path":"Dockerfile.offline.pinned","size":8206,"sha256":"97b17eae05c252366730b425e210c4a4e7783c0067e358bdea64efe14762c086","public":"preview","lines":65,"preview":{"text":"# =====================================================================\n# PostHog (MIT; Enterprise ee/ removed) -- HERMETIC OFFLINE BUILD (docker build --network=none).\n# Reassembles the filesystem Dockerfile.vendor built from upstream's source (vendored/posthog-src/*.tar.gz)\n# onto the digest-pinned ubuntu:24.04, with CPython 3.14.9 compiled here, offline, from python.org's tarball\n# (sha256 re-checked) and the vendored build debs -- the same command the vendor stage ran.\n# =====================================================================\nFROM ubuntu:24.04@sha256:68ee22004a9109b44973313b02ff7b1de250f1de0f5ecb628d73f579aaff33ac AS cpython\nARG SOURCE_DATE_EPOCH=1792630321\nENV SOURCE_DATE_EPOCH=${SOURCE_DATE_EPOCH}\nCOPY vendored/posthog-src/python/debs/ /tmp/cpython-debs/\nCOPY vendored/posthog-src/python/Python-3.14.9.tar.xz /tmp/Python-3.14.9.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 \"e02d9ac21cebda6e46435369744a92c65cc7cd8669697694122cf97ffacd1e53  /tmp/Python-3.14.9.tar.xz\" | sha256sum -c - && \\\n    mkdir -p /usr/src/python && tar -xJf /tmp/Python-3.14.9.tar.xz -C /usr/src/python --strip-components=1 --no-same-owner && \\\n    rm -rf /tmp/cpython-debs /tmp/Python-3.14.9.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":27988,"sha256":"260b8f94d31eec2971f942390175012ccde4bd1c29a944cb131d332fe6a1ef3b","public":"account","lines":337},{"path":"MANIFEST.txt","size":5889804,"sha256":"915ef7e797a666294a4ad30e2a45bcc869c0d04fbe64d61a4529d38a019ee77c","public":"account","lines":60083},{"path":"SOURCE_DATE_EPOCH.txt","size":11,"sha256":"01b5dc803a52f8981b571f73ce7fdbe9e014a6243adf50496d78c3ba9eef5f7c","public":"full","lines":1,"url":"/api/recipe/posthog/master-20261022-b904ac8-CE-ubuntu24.04-r1/files/SOURCE_DATE_EPOCH.txt","text":"1792630321\n"},{"path":"TARGET_DIGEST.txt","size":473,"sha256":"45586a95a95df859fcac06e658915550ff6d8b6956d9b2d6a9074a3af4e0b3b0","public":"full","lines":8,"url":"/api/recipe/posthog/master-20261022-b904ac8-CE-ubuntu24.04-r1/files/TARGET_DIGEST.txt","text":"image_manifest_digest=sha256:e5edff2d616054b702512e27673c159243f51576ab0275d8650d0ad1e37a3f58\nconfig_digest=sha256:6d378b5c136639f631e7337412e96df9bcf5bf4ecd4c648051bddef13d7ac63e\ntag=readystack/posthog:master-20261022-b904ac8-CE-ubuntu24.04-r1\nprobe_port=8000\nprobe_path=/_health\nprobe_timeout=5400\nverify_boot=skip\nverify_boot_reason=this image needs db, redis, kafka, clickhouse (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":"caddy-main.go","size":392,"sha256":"4da984dde7600668063aee6c3bf9abfd1de9e0e4f75dcd2861f81a0557431823","public":"account","lines":13},{"path":"ce-compat-patch.sh","size":1261,"sha256":"23fc92ad5ff840333c0b7c2e3e377f72219275a5e7cbf43149f1806e71189f3f","public":"account","lines":21},{"path":"ce-compat/__init__.py","size":4995,"sha256":"3eb9fbea303144738c1a147ba89718d6caebc7390546f2f8ddc61dad05e68591","public":"account","lines":147},{"path":"ce-compat/apps.py","size":105,"sha256":"dd4dc999d457fa08883ba12141b65e5b80b8077ef71dfc89530ad054e17d1c61","public":"account","lines":1},{"path":"ce-compat/ce.py","size":340,"sha256":"d2a487f8cb08339e6529fe23983d184c0b5fb468ac4401d9102812fc2a05a010","public":"account","lines":9},{"path":"ce-compat/migrations/0001_squash_2026_09_07_initial.py","size":5757,"sha256":"1e51c75c753e68a91c3b58c9b181fc91bb52a4e16afbb189ebdcf57327cd4a7a","public":"account","lines":89},{"path":"ce-compat/migrations/0014_roles_memberships_and_resource_access.py","size":389,"sha256":"fbdc5e7b75219d1e2a47f0f94ddff302bce3de805c95317fa8e9a5290fd1d6e0","public":"account","lines":14},{"path":"ce-compat/migrations/0026_conversation_created_at_conversation_title_and_more.py","size":401,"sha256":"7c9ed416c5dc3cdd102ee0e9affe391d15d55651c72957ce21e7cbbd2d7e1d20","public":"account","lines":14},{"path":"ce-compat/migrations/0028_alter_conversation_type.py","size":415,"sha256":"1835580758d4155f94e6b3056e17fc2e917fadbb95e7c61d0a137b08b3dd5f61","public":"account","lines":14},{"path":"ce-compat/migrations/0037_add_conversation_approval_decisions.py","size":387,"sha256":"d61691e69d0ad42b8dca1ca1c9ac2ed40b112e4954925c0b80ee8fd733274be6","public":"account","lines":14},{"path":"ce-compat/migrations/0041_migrate_dashboards_models.py","size":399,"sha256":"3c02657dc5ff91f5c4b94795afcaacb0f0d4fb6996901b24834554809533fcda","public":"account","lines":14},{"path":"ce-compat/migrations/0046_migrate_cdp_models.py","size":389,"sha256":"a4b09dade5718c0e18fa527b6a1cfe969fad0792e0b745d2ec1157565e6ac5d7","public":"account","lines":14},{"path":"ce-compat/migrations/0047_migrate_ai_observability_models.py","size":382,"sha256":"42240ebf954dcae2466a3601b03b31ad56d4c75a4b48faebd1fb228fb26d044b","public":"account","lines":14},{"path":"ce-compat/migrations/0049_migrate_posthog_ai_models.py","size":395,"sha256":"9d16a46accfb91ced01f51d7a8d6fe5b481e7c893ba07efabb7bd9b193f83627","public":"account","lines":14},{"path":"ce-compat/migrations/0050_migrate_replay_models.py","size":389,"sha256":"9a50c67ae06b79d63e3dacf472dbcff3cffd28dcc8606fd0339529a1a07a83c2","public":"account","lines":14},{"path":"ce-compat/migrations/0059_scimprovisioneduser_unique_config.py","size":385,"sha256":"7f0999cf8ea0ab250fd8b29a9dd83535f67572dd519d4556cbc2a90d81b18b30","public":"account","lines":14},{"path":"ce-compat/migrations/0061_squash_2026_09_07_finalize_fks.py","size":1435,"sha256":"71ae00b79af4aedf1247bae2139ae8bb660dd5cf63e131452ee73f3d635c1f65","public":"account","lines":30},{"path":"ce-compat/migrations/0063_scim_provisioned_user_config_set_null.py","size":394,"sha256":"cfb91bea0b2a94ad446d5eb4cec3709410c820df28316dcb6cb0ee648540e72c","public":"account","lines":14},{"path":"ce-compat/migrations/0064_split_identity_provider_config_scopes.py","size":401,"sha256":"c2c2d8773af298187cd1b9fecf73c655e6da31731b41fb89c6507e6703ebc9d9","public":"account","lines":14},{"path":"ce-compat/migrations/__init__.py","size":0,"sha256":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","public":"account","lines":0},{"path":"ce-compat/settings.py","size":3434,"sha256":"b755d70ca855896ee980ce378ebc5b4e977f4d66ee72a27396dd6ec4536c1f24","public":"account","lines":67},{"path":"clickhouse-init.sh","size":273,"sha256":"52972f610b36031f7c637a3116109ebcbe8af1af2404a5851dceca4d1217d072","public":"account","lines":5},{"path":"clickhouse-keeper.xml","size":598,"sha256":"f24873c05829d74476b20d69154eb0cc38e2ef307210aec1921b24a0d817d5e4","public":"account","lines":11},{"path":"clickhouse-start.sh","size":887,"sha256":"3896bcc52dfa1b261250f6be48ea0fabe35d6d6c227d2cb6f165d14f4456cc4d","public":"account","lines":14},{"path":"docs/PROVENANCE.md","size":1786,"sha256":"bd5fad9c5a659098533c19573b85169cca78b1b6495c8c59199208777500b362","public":"account","lines":28},{"path":"docs/REBUILD.md","size":5312,"sha256":"44a509e1fed63ec0f49b6052082582f64aed6e9df7215387f04a0bbb3c242723","public":"account","lines":59},{"path":"docs/VERIFY.md","size":2043,"sha256":"75e0c9a2ee64f305fc700343e3008adc86db695b7a0360a4bb0b8293da6f31c0","public":"account","lines":34},{"path":"docs/provenance/BASE_IMAGE_DIGESTS.lock","size":50,"sha256":"be066fe4d52a54075f148fc84a10a8d6599d70ba0cbfb6229b32894512078827","public":"full","lines":2,"url":"/api/recipe/posthog/master-20261022-b904ac8-CE-ubuntu24.04-r1/files/docs/provenance/BASE_IMAGE_DIGESTS.lock","text":"# base images for posthog (resolve at build_kit)\n\n"},{"path":"docs/provenance/BUILD_RECIPE.json","size":2492,"sha256":"9a426df017e72830827e57346fa7ccf60fef1b4db019d8eef7022e709d8d3021","public":"account","lines":52},{"path":"docs/provenance/CUSTODY_INPUTS.json","size":697,"sha256":"b33e6f5a21e3675bb85896b688991856da353b9fb818d8eeeeb24670926e50b0","public":"account","lines":19},{"path":"docs/provenance/SOURCE_FILE_MANIFEST.json","size":277640,"sha256":"ec3c98b73a1de3fb2c499c648c44de2ccf3babe3c8638adb258de70db16f7c09","public":"account","lines":5007},{"path":"docs/provenance/SOURCE_TREE_HASH.json","size":340,"sha256":"823655809b5f6eb832c5eef62a69f50b85ef8f9824a33df5b21dd6105c72f390","public":"full","lines":9,"url":"/api/recipe/posthog/master-20261022-b904ac8-CE-ubuntu24.04-r1/files/docs/provenance/SOURCE_TREE_HASH.json","text":"{\n  \"schema\": \"kitforge.source_tree_hash.v1\",\n  \"slug\": \"posthog\",\n  \"repo\": \"https://github.com/PostHog/posthog\",\n  \"ref\": \"b904ac8008e531c8aaeaf58e523cf97cff9fba41\",\n  \"commit\": \"b904ac8008e531c8aaeaf58e523cf97cff9fba41\",\n  \"tree_listing_sha256\": \"f891353fb4511d2e73ff287c2eaf25af3d55335185787f784cf4ce68a361004b\",\n  \"file_count\": 59938\n}"},{"path":"docs/provenance/SYSTEM_PINNING.lock","size":276,"sha256":"559dab46219903d02d5f4994a860f22e2aa19c9de9593f3da9abe134d10de86d","public":"account","lines":26},{"path":"docs/provenance/TOOLCHAIN.lock","size":1729,"sha256":"3ff2af560758ef643d98a7e738fb7b16a6b95e1719f58eab23cee82378286c1b","public":"account","lines":61},{"path":"empty_mmdb.py","size":2866,"sha256":"a287fb3679b6b87329772a877d7aa8a8430606dbcde0b9450409eaa5f061ff4d","public":"account","lines":70},{"path":"npm-floors.json","size":4574,"sha256":"6f84a4a91280b990cdb22a73f9b5caffa4bba76a6331bc3b9d5ecdb9cf7919ee","public":"account","lines":69},{"path":"posthog-ce","size":9382,"sha256":"34b50c45fec3fe18cc8acd1b1b345596b3dc4d94e553d5a33198e476883ed875","public":"account","lines":142},{"path":"py-floors.txt","size":942,"sha256":"fc265bf2386e8c87d5d3908dd5f50460633a7c0521df53721c96e1cdfcfded23","public":"account","lines":45},{"path":"readystack_setup.py","size":2987,"sha256":"4149a09ef567ad158eaad2675da406b7a96d6b0e304566b23c8971104c725997","public":"account","lines":58},{"path":"rebuild.json","size":1256,"sha256":"483a01ddf5f5aaa4bdc79423d41932b7ae8323ef771769180a11de7687551a56","public":"account","lines":31},{"path":"resolve_floors.py","size":2416,"sha256":"8412a7f8e1d4c4ba571da1d01eab141da5ab3cce46c5b2dc0607890d9a0891c7","public":"account","lines":42},{"path":"toolchain/BUILDKIT_TAG.txt","size":22,"sha256":"fcd530eeb02b063d2f047adad6eef896422a8e8d558513e5f09b2a262be32573","public":"full","lines":1,"url":"/api/recipe/posthog/master-20261022-b904ac8-CE-ubuntu24.04-r1/files/toolchain/BUILDKIT_TAG.txt","text":"moby/buildkit:v0.31.2\n"}],"skipped":[],"kit_adds":{"bases":{"files":5,"bytes":29769315},"docs":{"files":59939,"bytes":800459966},"toolchain":{"files":1,"bytes":111529472},"vendored":{"files":83,"bytes":2704465653}},"links":{"page":"https://readystack.dev/products/posthog/recipe","signup":"https://readystack.dev/login.html?create=1&next=%2Fproducts%2Fposthog%2Frecipe","kit":"https://readystack.dev/buy.html?product=posthog"}}