Skip to content

feat: add Dockerfile-supabase and rework Dockerfile-multigres as layered images#2160

Open
mkindahl wants to merge 1 commit into
developfrom
feat/dockerfile-refactor
Open

feat: add Dockerfile-supabase and rework Dockerfile-multigres as layered images#2160
mkindahl wants to merge 1 commit into
developfrom
feat/dockerfile-refactor

Conversation

@mkindahl

@mkindahl mkindahl commented May 20, 2026

Copy link
Copy Markdown

Add Dockerfile-supabase and rewrite Dockerfile-multigres as a layered image

Summary

Introduces Dockerfile-supabase, a single parameterised Dockerfile that replaces the near-identical Dockerfile-15 and Dockerfile-17. Rewrites Dockerfile-multigres from a self-contained Nix-based build into a thin image layered on top of Dockerfile-supabase, reducing duplication and making the multigres image easier to keep in sync with the base.

Dockerfile-15, Dockerfile-17, and Dockerfile-orioledb-17 are unchanged and remain in the repo for the legacy build path.


Changes

Dockerfile-supabase (new)

Parameterised replacement for Dockerfile-15 and Dockerfile-17. The three-stage structure (nix-builder, gosu-builder, production) mirrors the existing files. Version-specific differences (stripping timescaledb/plv8, commenting out db_user_namespace) are gated on [ "$PG_VERSION" -ge 17 ] at build time.

docker build -f Dockerfile-supabase -t supabase-postgres:17 .
docker build -f Dockerfile-supabase --build-arg PG_VERSION=15 -t supabase-postgres:15 .

Dockerfile-multigres (rewritten)

Reduced from ~320 lines to ~125. Three stages:

  • pgbackrest-builder — Alpine + Nix daemon, builds pgBackRest from the flake and saves the store path
  • pgctld-builder — compiles pgctld from Go source, pinned to the commit that introduced --pg-initdb-sql-dirs (MUL-484)
  • productionFROM ${SUPABASE_IMAGE}, merges only the pgBackRest nix store closure (not the profile), symlinks the binary, copies the pgctld wrapper, config template, init scripts, and removes inherited wal-g files

The base image is overridable via --build-arg SUPABASE_IMAGE. Dockerfile syntax bumped from 1.2 to 1.4 (required for heredoc support in RUN).

docker build -f Dockerfile-supabase -t supabase-postgres:17 .
docker build -f Dockerfile-multigres -t multigres:17 .

# Override base
docker build -f Dockerfile-multigres \
    --build-arg SUPABASE_IMAGE=registry.example.com/supabase-postgres:17 \
    -t multigres:17 .

The variant-17 / variant-orioledb-17 final stages are replaced by a single production stage. The multigres-orioledb-17 target is removed; a multigres image layered on orioledb is not built in this PR.

docker/pgctld/pgctld-layered.sh (new wrapper script)

Installed at /usr/local/bin/pgctld (raw binary at /usr/local/bin/pgctld-bin). Injects --postgres-config-template and --pg-initdb-sql-dirs on every pgctld call so Kubernetes manifests work without extra flags.

docker/pgctld/postgresql.conf.tmpl

Removed duplicate bare include for supautils.conf (kept include_if_exists).

ansible/vars.yml

Single source of truth for which images are built and how they are tagged. Two new sections:

  • release_matrix_base — base Dockerfiles to build (Dockerfile-supabase at pg15 and pg17)
  • release_matrix_layered — layered Dockerfiles (Dockerfile-multigres, Dockerfile-orioledb-17)

Each entry carries a release_key (maps to a full version in postgres_release) and an optional tag_suffix. Tags are derived entirely at workflow runtime.

Release workflows (dockerhub-release-matrix.yml, manual-docker-release.yml)

Build flow split into two sequential phases:

  • build_base_images — builds and pushes supabase base images first
  • build_layered_images — depends on build_base_images, passes SUPABASE_IMAGE=supabase/postgres:<base_tag>_<arch> as a build arg

manual-docker-release.yml gains two new inputs:

  • imageLabel — extra label appended to the image tag for test/staging builds (e.g. a short SHA), so test images do not overwrite the production tag
  • dockerfiles — selects legacy (Dockerfile-15/17/orioledb-17) or layered (Dockerfile-supabase + Dockerfile-multigres) build path

Fixed nushell combine_results script to read matrix.tag instead of the non-existent matrix.version field.

docker-image-test.yml

  • Matrix entries for Dockerfile-15 / Dockerfile-17 replaced by Dockerfile-supabase entries with pg_version: "15"/"17"
  • multigres-17 entry gains base_dockerfile: Dockerfile-supabase, triggering an inline base build before the layered build (each CI runner has an isolated Docker daemon)
  • --target production hardcoded — all Dockerfiles use a production final stage

nix/packages/docker-image-test.nix, nix/packages/image-size-analyzer.nix

  • Both gain a --pg-version flag to pass --build-arg PG_VERSION when building Dockerfile-supabase
  • docker-image-test.nix: pgctld init and start checks now treat already initialized / already running as errors — these states are invalid for a freshly started container and indicate an environment problem
  • image-size-analyzer.nix: fixed unbound-variable bash error by using ${2:-} under set -u

Testing

CI runs docker-image-test against:

  • Dockerfile-supabase at pg15 and pg17
  • Dockerfile-multigres (multigres-17), with Dockerfile-supabase built inline as the base

Dockerfile-orioledb-17 tests are unchanged.

Fixes MUL-483

@mkindahl
mkindahl requested review from a team as code owners May 20, 2026 09:29
Comment thread Dockerfile-supabase Outdated
@mkindahl
mkindahl force-pushed the feat/dockerfile-refactor branch 3 times, most recently from 8a8de35 to 645a765 Compare May 27, 2026 06:57
@github-actions

github-actions Bot commented May 27, 2026

Copy link
Copy Markdown

PostgreSQL Extension Dependency Analysis: PR #2160

Summary

No extensions had dependencies with MAJOR version updates.

Full Analysis Results

PostgreSQL 15 Extension Dependencies

PostgreSQL 17 Extension Dependencies

OrioleDB 17 Extension Dependencies

@github-actions

github-actions Bot commented May 27, 2026

Copy link
Copy Markdown

PostgreSQL Package Dependency Analysis: PR #2160

Summary

No packages had MAJOR version updates.

Full Analysis Results

PostgreSQL 15 Dependency Changes

Extracting PostgreSQL 15 dependencies...

Package Old New Status

Runtime Closure Size

Size
Old 2479.3 MB
New 2479.3 MB
Delta +0.0 MB
Raw Dependency Closure
Old Dependencies (closure: 2479.3 MB):
     0.3 MB  /nix/store/00m5bdick5dx3d4zrpp2njwpwihwbyx2-vector-0.7.0
   107.2 MB  /nix/store/03k5gpwag7aipm25nsxnavp876w22iq1-wrappers-0.6.0
     4.2 MB  /nix/store/04kpg6rvmahpgmhz4dbzad9nm8y1rpvb-ncurses-6.5
     6.1 MB  /nix/store/09xsph5dvy733610lrgn2d4rgc5ibhig-kbd-2.9.0
    27.0 MB  /nix/store/0dbcc92avf23zmdvsw821yrhvqw12s8m-wrappers-0.3.0
     2.9 MB  /nix/store/0fd2vgzg0qlbnsvr3gyhg1wbzsg2k08w-cryptsetup-2.8.1
     6.4 MB  /nix/store/0kfbzhd8qdsxsd4qf9dkpcd3f916krvr-openssl-3.0.13
     3.1 MB  /nix/store/0lfppmdx1bqfg41wydjwl9y3wrp3rih0-pg_graphql-1.2.2
     0.1 MB  /nix/store/0ljg4yw8siyvsivyg457w2skp0bgd4xk-keyutils-1.6.3-lib
     2.1 MB  /nix/store/0pdr7jzay8f9i3zvd3p8wsarzv9f1s26-pg_graphql-1.5.4
    47.0 MB  /nix/store/0sn6rrav001q2n4znjw4v2z7db6yzmxd-wrappers-0.4.3
     0.2 MB  /nix/store/0vmif2nanhgi07807i8bjymqj664xcwd-libpsl-0.21.5
     8.8 MB  /nix/store/0vv7r6ga11vrj29plj027nl78p51s27c-timescaledb-2.9.1
     0.1 MB  /nix/store/0xjy5cr3h59n0ndlh6gxr3glbb83fc3w-pgroonga
     0.3 MB  /nix/store/0zfyfg75jpkf71bxhjb6q8kprpsp77jb-pgsodium-3.1.6
    41.5 MB  /nix/store/10pd749c2v3m35d4hk5xdfylyfr1hzqz-glibc-2.39-5
     0.1 MB  /nix/store/1199b79za82dwv1nbnjz8bpa08h8vc4l-hypopg
   104.1 MB  /nix/store/161vd1b5491ijhf1s9sykwhahdj8423i-wrappers-0.5.5
     0.2 MB  /nix/store/18lyymxzwh03jsj9q7zdq3lpa1jdnr94-pg_net-0.19.5
     0.1 MB  /nix/store/1c83g5czi5r2913g5pbcwba3a8jps2in-wal2json
     0.3 MB  /nix/store/1lv80gcbfjf70ikxp3mffbvk8mi7hlpn-pgsodium-3.1.5
     0.3 MB  /nix/store/1m2pfwirwdq1cy28v2scw57ry5aji017-kmod-31
     0.3 MB  /nix/store/1n168y3gxdn8b4jrfk5m9m71hq3xm2am-util-linux-minimal-2.41.2-mount
     0.7 MB  /nix/store/1qhz8fshzn41sk26pyvc30cpg7b837cf-gmp-with-cxx-6.3.0
     2.0 MB  /nix/store/1rd6vhxhfblbk3dddi636xjw3avs5z0p-pcre2-10.46
     0.2 MB  /nix/store/1snbg7fzx1bv5lpqxr7icn3mm6qan6pc-attr-2.5.2
     0.9 MB  /nix/store/21kidlr3lklamslvsa3pc78y3kdha61h-pgroonga-3.2.5
     1.9 MB  /nix/store/27g206wjs60cdzsvxvv6ncpcjprk8d6r-libjpeg-turbo-3.1.3
     0.1 MB  /nix/store/2a7sd83gzx6nz4qsijixh3kwq1i0jqrl-pg_repack
     0.1 MB  /nix/store/2brsh5disikvcvhgnxibg7hm5ybhww1r-receipt
     0.3 MB  /nix/store/2dsn4zffda2ivz2f5mxlwpfi8mb1w9yf-systemd-258.2-dev
     0.1 MB  /nix/store/2p2xn5jmx50856f0fvn7sd8zzz9lypfd-pg_tle
     0.4 MB  /nix/store/2p5qjk1lznfc13qwn2skc264zgh4c3xg-expat-2.7.3
     0.1 MB  /nix/store/2wqm7ivl04f10r6hxvi91w8s0mfaa3j8-hypopg-1.4.1
     8.0 MB  /nix/store/2xajxybfa64wsxpcwrndwlbyizpykn60-pg_partman-5.3.1
     0.1 MB  /nix/store/31blwigfmra9kcxqhkynddzvyggqqb3p-pgjwt-0.2.0
     0.5 MB  /nix/store/36ilshys1vqzxy98lwpg1mxl3gv2c717-libpwquality-1.4.5-lib
     0.2 MB  /nix/store/397hikj37spr81f8yypxpjgf8vs27sii-libxcrypt-4.5.2
     3.5 MB  /nix/store/3bjs7nyh11nn52zg36r7lkmaxkyac1hb-pg_jsonschema-0.2.0
     0.3 MB  /nix/store/3dj2qaaq9mvkri2kphq4gjfbscksi6fy-nghttp3-1.13.1
     1.9 MB  /nix/store/3jdf9aw58nkncyw3d3x36pb37p39k4ia-libunistring-1.1
     1.3 MB  /nix/store/3n15dmd4y0dhplwbx655w4nj1imgr5z7-libfido2-1.16.0
     0.3 MB  /nix/store/45kspcpwdz33am1szf9910dg2kakxsh5-libpsl-0.21.5
     1.4 MB  /nix/store/4c3h42lwbxr9ibm39v9j8lp5r305bhwj-gnupg-2.4.8
     0.6 MB  /nix/store/4cnn303h6rgfzy0fx0vdyf4p4qhrrhhp-pgroonga-3.0.7
     0.2 MB  /nix/store/4jw5rjjbpm0xr1sbbrzpjj2b11yabkz3-libcap-2.77-lib
     0.1 MB  /nix/store/4k2vkb5s804gz7p2aq158vgf93cz74rn-supabase_vault
     0.9 MB  /nix/store/4xsk01d4xa5mfi18jfbh521nihsfrsbf-libtiff-4.7.1
     0.5 MB  /nix/store/5486iybnvp4rf20h38vsjb2m4pq23303-ncurses-6.5-dev
     0.5 MB  /nix/store/57bsa2hj39q28rxh52aj10nvn2y29pcx-pgtap-1.3.1
     3.0 MB  /nix/store/5a11qgl1idhb9dz92b6xh5bmzf7wqkh9-pg_graphql-1.2.0
    38.4 MB  /nix/store/5kxz8gxxsjmcs4hs9d0l4vmls3n7hkg5-wrappers-0.4.1
     0.2 MB  /nix/store/5qk5vwcicmq29x11yxs8d955w7qzngcf-pg_tle-1.0.4
     0.4 MB  /nix/store/62b24z1igfh6ws654fhsgnm3fm7j1z3c-lz4-1.10.0-lib
     0.1 MB  /nix/store/6a439x4dmh12i8q57zjm2cxhcyb7i79c-http
     0.2 MB  /nix/store/6af6y3cz4sc7yx96dqgylfrv30x7whbj-wal2json-2.6
     3.6 MB  /nix/store/6dpkcrlpgy2d2wqrs27g7shifq2ylbva-pg_graphql-1.4.2
     0.3 MB  /nix/store/6jpri7g8bpbc3yka7sfk9ygrq7vzr7yp-nghttp2-1.67.1-lib
     0.2 MB  /nix/store/6li9zg9pswfcb3r3585wayv8c71jr13m-libcap-2.77-lib
    39.2 MB  /nix/store/6ls44671pngckfa3s0f6przcn6hp3b98-wrappers-0.4.2
     0.5 MB  /nix/store/6s7wypbdm0ipzh14yzk653zq8phwhraq-lz4-1.10.0
     0.1 MB  /nix/store/71kyfljgc85g9sx28vc6g232k73hi4pd-pg_hashids
     0.1 MB  /nix/store/74689daizl7drmrs9p31bh7m9rbcrld7-pgaudit-1.6.1
     0.2 MB  /nix/store/7a5g1v9v0hr8kv51dj7rfpkp886f7cps-vector-0.5.1
     2.4 MB  /nix/store/7higpz3prbd2k32qfb1fsyhrgdmiyldl-util-linux-minimal-2.41.2-lib
     0.3 MB  /nix/store/7jqlx5213a9dj5sihijh71d9vrzkwz7z-pg_repack-1.4.8
     2.3 MB  /nix/store/7nxjgw77sxr2q9bfl03ywkgqvk4figxf-pg_graphql-1.5.11
    52.2 MB  /nix/store/7p6rjylashbnkwa2sz40w7cks5spns12-wrappers-0.5.0
    21.4 MB  /nix/store/7qs87q8vs0il1gcp50d370wxj6h4bjx2-supabase-groonga-14.0.5
   101.5 MB  /nix/store/7v4cbk5hlcwzk9yjy3ac42yylncnrqsc-wrappers-0.5.4
     1.8 MB  /nix/store/843ahdalwl120986c7ilk5q1c47biyap-coreutils-9.8
     0.4 MB  /nix/store/87j9nfa1jvcdx4x7hz5byv0fs9wlqdxp-publicsuffix-list-0-unstable-2024-01-07
     0.1 MB  /nix/store/8gan48gn3zz8m25c4ywh83g9yn2hg26a-pg_cron-1.3.1
     0.5 MB  /nix/store/8ha23qaswya7ak6v1vz0xbq4k7p2i7sk-libcap-ng-0.8.5
     0.1 MB  /nix/store/8id99k3lrbqbjgwxlyy3bkdd86zggc76-pg_stat_monitor
     0.1 MB  /nix/store/8j3qzvhqa5wx3pg399ra7hg26mcchz1x-pg_partman
     0.1 MB  /nix/store/8jhaw8x0ja7rqwfsfwdzi9ld5ph28kgx-pg_net
     1.0 MB  /nix/store/8k346zbc6a05mya3j2lqd0shdinxd7s3-gnugrep-3.12
     0.4 MB  /nix/store/8m2kcfzy01mk0flya5n9n99a8g7fsli3-kexec-tools-2.0.32
     0.2 MB  /nix/store/8xzamn2zwpalzrdqvc99nxbfpxfcwqqv-pg_net-0.13.0
     4.2 MB  /nix/store/92bxysqjh9wv18ybfmsikhpdngplzfz6-systemd-minimal-libs-258.2
    10.0 MB  /nix/store/9322vpzgvmxa4px55w7ybshk1a87hal0-postgresql-15.14-lib
     0.6 MB  /nix/store/9ax7a3wx70ib233y6wm92iq16h73s0d5-audit-4.1.2-unstable-2025-09-06-lib
     0.4 MB  /nix/store/9igc4mjxby5fdrgi5rj4ziiwdqd18k5c-zstd-1.5.7-bin
     2.4 MB  /nix/store/9jjk6xi7fwy8lfzymsh9bizdr7a6ay7w-mecab-0.996
     0.3 MB  /nix/store/9lx045fb86ljiklvy6z01f8b5r9zrkc1-pgsodium-3.1.7
     0.1 MB  /nix/store/9qwnq0ahvc791hm7fgw6klvlsp62cfba-http-1.5.0
     0.1 MB  /nix/store/9sx7mqmq224hnaidbw6bai94qinq43vz-pg_net-0.7.1
     0.5 MB  /nix/store/a0b176pw5faa5l9xmvl74crz4r6al7dd-libsodium-1.0.20
     0.1 MB  /nix/store/a22wpi0bv8q2h17x7cykbfki567rciip-pgaudit-1.7.0
     0.2 MB  /nix/store/a2a0fblpfqr4x03fcj5ipiyd0ar81pwp-pg_stat_monitor-2.1
     9.7 MB  /nix/store/a7zzvrkgal6hds7w190mx265jb2n1m2h-geos-3.14.1
     0.3 MB  /nix/store/ag301vgms6h3a5l1mbmcyl22ijrd8xca-vector-0.8.0
     0.5 MB  /nix/store/ah1vs9pj8f3dx1lkfczxd3lidxj9jq70-lvm2-2.03.37-lib
     2.2 MB  /nix/store/az0zr7lywx12xf86bxvrw1ds1m584jqh-tzdata-2025b
     0.6 MB  /nix/store/b2zx8xygxfcglaw6w2b9nqbkbsf94kcb-libgeotiff-1.7.4
     0.2 MB  /nix/store/bjv5qpny841i3ml1cbrrn7pbxqb2w8i0-pg_net-0.14.0
     0.2 MB  /nix/store/bpgimnp6pcjxif29wy16sg66nsc6712l-pg_tle-1.3.0
   154.0 MB  /nix/store/br5cxgrndggrfzmysa4g0y93bvkf9vzw-postgis-3.3.2
    40.2 MB  /nix/store/bz625najk9nscafylc4968hmcp4mp2n7-icu4c-76.1
     0.3 MB  /nix/store/cjj6p2j1h2ds7ayapjzr5gxi7gdjz31k-pg_repack-1.5.2
     0.3 MB  /nix/store/ckm86lqsa8knk6gkvkibxh9lawdixzf4-libxml2-2.15.1-bin
     3.6 MB  /nix/store/cn39sz1rnz7knw17qkynw609ylnmxaj4-pg_jsonschema-0.3.1
     0.2 MB  /nix/store/cw9gjy21cd3aypixngm5684737s3x1iq-pg_net-0.7
     0.3 MB  /nix/store/cy4nk93wy37z60gi4s0809w94kicmb9s-vector-0.7.4
     0.2 MB  /nix/store/d1yb0arh6k658anwsgl8d5sks6zcqrgm-gcc-13.2.0-libgcc
     0.2 MB  /nix/store/d4920mrd5ps02hmbk4pjp0mvmhi8n1g9-pg_net-0.8.0
     0.1 MB  /nix/store/d7l1znilc6gx5a9a2yj8cc32i2zrvh5g-vector-0.4.0
     0.9 MB  /nix/store/d89wfc961hclhqfrk87w4g8whdyx6ngf-mpfr-4.2.2
     0.2 MB  /nix/store/d9yx9zhqs16ynrinkkvlajs2m36s3gv9-libossp-uuid-1.6.2
     1.2 MB  /nix/store/dlzv7s6ggdqpi2l90g9wqsj7rh26pb0r-curl-8.17.0
   113.9 MB  /nix/store/dqxqh677plafj8hvxcgxdv887am18nnz-wrappers-0.6.1
     0.2 MB  /nix/store/dvb9i3s69j29md1hpx3gpaqqds6530df-gcc-15.2.0-libgcc
     4.1 MB  /nix/store/dvblpblvkmkpqdwkk5phk4q2bl7mzdxf-tpm2-tss-4.1.3
     2.4 MB  /nix/store/dw4d8sys9ma9ac6bnrl1hck6r9ybzhm2-krb5-1.22.1
     0.4 MB  /nix/store/dwmy24cx39bl39df1i8nrj2l4wjpgvd0-libidn2-2.3.7
     2.2 MB  /nix/store/dx08qxv1z09w1hnp0iz3gfa3ggbqcr77-pg_graphql-1.4.4
     1.0 MB  /nix/store/dypwvnkgx6njpn6shlsa5b48d7f8nnn5-brotli-1.1.0-lib
     0.4 MB  /nix/store/f2xj65f17mnznzmxxqj6rr9jdn07r4vb-plpgsql_check-2.8
    47.2 MB  /nix/store/f6zsscjsw73kss0kl3d4syv379ajyyf0-plv8-3.1.10
     0.1 MB  /nix/store/f7gsymj23d0afixjfikl28wxchbpmmmi-pgjwt
     0.1 MB  /nix/store/f7r57hxq7z3l2jp0b041rbsl0bxgykcr-switch-ext-version
     2.1 MB  /nix/store/faszijz4zx1v5l495v5bb3p4k4y07av2-pg_graphql-1.5.1-mergeless
     0.3 MB  /nix/store/fckp65pll6l128j86963x0glf69jl835-pg_repack-1.5.0
     2.1 MB  /nix/store/fiqvcsh43nv1gzidam280flm7jf8cvv7-pg_graphql-1.5.6
     1.3 MB  /nix/store/fqy9nkaahib56gcy0r77qjk7n03cvnfs-zstd-1.5.7
     0.1 MB  /nix/store/fspp2b3vscnwb4l92zc4wz46d4815vsy-glibc-2.40-66-getent
     0.3 MB  /nix/store/g41q9md9rdcr3lkydi6f8zd6fza3h1q4-zstd-1.5.7-dev
     0.3 MB  /nix/store/g8wvpj8xw7csaxg5ks0xzkdhijfylv3k-libpng-apng-1.6.52
     0.2 MB  /nix/store/g94k0xrgyjx58b3200px478cn9js87hj-pgmq-1.5.1
     0.2 MB  /nix/store/ghi7p4h1vrwx4a4v3l0aja4jvssyrylq-libcbor-0.13.0
    13.7 MB  /nix/store/gi3sb46ppz45hllqbav6bsf0a7facyrg-pgrouting-3.4.1
     0.2 MB  /nix/store/gnlar6cvw3zmvqpjiwv1fll7d7lqc0bv-util-linux-minimal-2.41.2-swap
     0.1 MB  /nix/store/gsr5jcmjwf5xpg0c8nss4mvbni4nnaxw-qrencode-4.1.1
     0.6 MB  /nix/store/gysam7z6ak3fvw6vxsi6aapvln8y4lgc-xxHash-0.8.3
     0.1 MB  /nix/store/h0k7f17mqw15q4glyvs1mv33pca7m0v0-index_advisor-0.2.0
     0.3 MB  /nix/store/h1pm1n7vm8a5ykhznrpx7hj9ypfrgvh4-msgpack-c-6.1.0
     9.9 MB  /nix/store/h4qhxh7vwmxgy6w05g0xsf6r1bfi9vga-gcc-15.2.0-lib
     0.1 MB  /nix/store/h5nmwnilsxgar003yb2iacf1bqirhyqx-pg_stat_monitor-1.0
     3.7 MB  /nix/store/h84cj9a22cnlc8cnjf94rsgd9jcbn6kv-db-4.8.30
     0.1 MB  /nix/store/haxp81c080mm9ih6cn9q82rjy1ccmv38-rum
    39.1 MB  /nix/store/hfvij74k1g635qrgqajdsfb2krn8fj2f-icu4c-75.1
     0.8 MB  /nix/store/hhp7l11f5i65w6rwn5fqw4q4bi5n1amp-postgresql-and-plugins-15.14
     0.4 MB  /nix/store/hm27y1hbsa2k3xqmas2ax6gc9b2m0cmv-libssh2-1.11.0
     0.2 MB  /nix/store/hw1wsjysvvkbg9gyg0hqygfzm75gaj52-pg_cron-1.5.2
     9.0 MB  /nix/store/i578g2ws943hl9crhapvy35l6j662xpj-gcc-13.2.0-lib
     0.2 MB  /nix/store/i7z3jfgmj4dbsjxia92ng74dhb958nlp-pg_graphql
     0.7 MB  /nix/store/icbnhxgjixbn20dmn33jyxajmf24fd2l-pgtap-1.3.3
     0.4 MB  /nix/store/igsi8y7q3klpi3c4g1ldfv4mlwfiqx0b-plpgsql_check-2.7
     2.3 MB  /nix/store/iv5577wa0826bn53iqr83bqcmj803bv2-pg_graphql-1.5.9
     0.9 MB  /nix/store/ivpqr1z0akvdjghh30n4jwigf7d7x65i-lerc-4.0.0
     0.3 MB  /nix/store/iwa7i46bbw0mnq7k7bfsrq5zcc781ab9-libedit-20251016-3.1
     0.2 MB  /nix/store/iyxa48rmi0pvy89cvjrpp61i42wkj4qj-libtasn1-4.20.0
     0.6 MB  /nix/store/j0l6xc8kfzfbhym8fnz4pjwgx6jwh39g-libdeflate-1.25
     2.1 MB  /nix/store/j2yk5rfy2ypsrm8qd5xckm5ikia5imp7-pg_graphql-1.5.7
     0.2 MB  /nix/store/jdkxgqihxqxsr4k2sclpnd7s86q1qz97-pgsodium-3.0.4
   101.4 MB  /nix/store/jds5gz4cdrjh0jg8hn10f1l7zj6hhfmg-wrappers-0.5.3
     0.1 MB  /nix/store/jiqlyzpkq2idq9rd4vd9j02b264pg6wm-bzip2-1.0.8
     3.5 MB  /nix/store/jjlds4xk8r6d79gq19pma3f2d0l7c07b-krb5-1.22.1-lib
     0.8 MB  /nix/store/jpz9kf5na20507i3iww35ar9zlwv42qj-krb5-1.22.1-dev
     0.4 MB  /nix/store/jqvri7lc9w4x9i72wmdimlcfh83358sa-libidn2-2.3.8
     3.1 MB  /nix/store/js3xsm649ghc28r1hvrmrwjjghgrs8s5-glibc-2.40-66-bin
     0.3 MB  /nix/store/jvnqrf0wbx8gnzw6mimzbhzg43pk1h84-plpgsql_check-2.2
     0.4 MB  /nix/store/k074vgrqp86mcgd7np0bw2r3i0b0skj8-libssh2-1.11.1
     9.4 MB  /nix/store/k0wfscy8mjfzkhrzm4r6yy8bxs3v4s5w-openssl-3.6.0
     0.1 MB  /nix/store/k12hr62b910v01376q7ac1kqkhhg30zg-pg_net-0.1
     0.9 MB  /nix/store/kawf0kmzaj3lvjf8hv2bdc6c3chgm0ay-cracklib-2.10.3
     4.1 MB  /nix/store/kg79jrqc5cpf4y8xdq4skxfhwnwkv4nq-sqlite-3.51.1
     0.3 MB  /nix/store/kl39qpw93b7wm4bqyhsnl71vrgz6mp6k-libseccomp-2.6.0-lib
     0.1 MB  /nix/store/km3wfavn8mbc327vpxyxl283g1iprpij-switch_timescaledb_loader
     0.1 MB  /nix/store/kn4grpnk3d4h277217lkry4hyvy7xizp-index_advisor
     0.2 MB  /nix/store/knc094z13rjn803zlwl0bhv39qx81di9-pg_net-0.11.0
    47.1 MB  /nix/store/kpm3dhmad0y35vzbwsr6yjfqp1z4pbl6-plv8-3.1.4
     1.3 MB  /nix/store/kv68n8lzzg5fp7dclrz75ak15hv2pcfd-libtpms-0.10.1
     0.2 MB  /nix/store/l6i35y2hlmdz0hvz690h3k4ilq9ahhzy-zlib-1.3.1
     0.2 MB  /nix/store/lhl78g2n79qlbswy8134sx49rzdr5f25-pg_net-0.20.4
     0.3 MB  /nix/store/lkwzjy8dw5z2bj1ij2920qzpl96d75y9-pg_repack-1.5.1
    53.1 MB  /nix/store/lzfs6hbqms9gm3zgqzp46nfa6h79fgp5-mecab-ipadic-2.7.0-20070801
     0.1 MB  /nix/store/lzkba0gdw8sv63smwpf4fd0i3jbcigz5-find-xml-catalogs-hook
     2.2 MB  /nix/store/m0h60l7is9alkrivf0b75dc6zy4s0q6c-libbpf-1.6.2
     0.1 MB  /nix/store/mbb76ijw62506if9caayivz1mc0p3qr0-readline-8.3p1-dev
     0.1 MB  /nix/store/mbgxmacfnn88980nfh0z3wsm2kc7rz1h-plan_filter-0.1
     0.9 MB  /nix/store/mbmd8w5jiq6sfcs81zadj365fb3sha7w-libgpg-error-1.55
    72.4 MB  /nix/store/mca2vsmjqmsvijdzqx1akz3lv9419ain-systemd-258.2
     0.7 MB  /nix/store/mcbrid72x46miha3jmym9l1dxzijknb4-giflib-5.2.2
     0.2 MB  /nix/store/mglbi4dy4kpx7v1dcgf6iincp5x38hsc-lz4-1.10.0-dev
     0.2 MB  /nix/store/mp5sbl0p29v81ss4qqqwprff4nsqmxhd-vector-0.6.0
     0.1 MB  /nix/store/mpa6hjyjr1gmjh1v5m25lqc3f5qydxnw-dns-root-data-2025-04-14
    15.9 MB  /nix/store/mrcx18lcjf77z0l557g1sm46kvrfjx3v-proj-9.7.1
   106.1 MB  /nix/store/mvr0051q63nb9c5m515k2nvpydfcll0v-wrappers-0.5.7
     1.1 MB  /nix/store/mxvqrp4jj6zklxc1i32ra8iapnzynyzc-zstd-1.5.5
     6.6 MB  /nix/store/n2vnr7ycfk6midbzxcwd28qj3bgb50cz-icu4c-75.1-dev
     0.4 MB  /nix/store/na0myil14n0pm6v62xi84rwqz626hzj0-pgsodium-3.1.8
    47.2 MB  /nix/store/nhif8qj2p69fs97nsk5yy8if31ib3jpl-plv8-3.1.5
    24.0 MB  /nix/store/nwkn0xg8gif120nxdwpb19wz0a2sj4mg-sfcgal-2.2.0
     0.1 MB  /nix/store/nz5gmfk8c9wx43igra8b2z20p439fchm-pgtap
     0.1 MB  /nix/store/p0nbl3dlg1nia66vmhj90d05jb9mjqa8-pg_hashids-1.3.0-cd0e1b31d52b394a0df64079406a14a4f7387cd6
     0.5 MB  /nix/store/p17klc3qq4nl9ihfwqfpi8cnqvcf92xz-libxml2-2.15.1-dev
     4.5 MB  /nix/store/p711vqjvd78jz7q6ryzdp5jnnnb48s6j-linux-pam-1.7.1
     0.1 MB  /nix/store/pa13b29ylzim154a5dyp8z52awm2cna2-plv8
     0.9 MB  /nix/store/pdazhhg4l69vz5szllijlpm1ph9i93kq-nettle-3.10.2
     0.1 MB  /nix/store/pknmf91sx9ysc5igw7l84kv5y45fy5s6-overlayfs-on-package
     0.1 MB  /nix/store/psbbmgc2fgvxnn5zh4iz5snkk75qlffr-pgsodium
     0.1 MB  /nix/store/psbmliw54aaxwax8k75xpjrgmzad09sg-pg_net-0.2
     0.1 MB  /nix/store/pv50jbq0cpf8hzz2078vbzia5l9xbknh-npth-1.8
   105.5 MB  /nix/store/pvcv1kbg9kpw8crw06p72hdsn93p8ckz-wrappers-0.5.6
     0.1 MB  /nix/store/pxxvfah9m529qraa4wlryxn182iv7xyx-pg_cron
     2.3 MB  /nix/store/pzqq7d1nnx8xkvccmgl51cf1aqim3x59-openssl-3.6.0-dev
     4.1 MB  /nix/store/q1lr86rzsxxbbqdz8m6bcv94saaz8wlv-bash-5.3p3
     2.9 MB  /nix/store/q2ky2b9i91fsfs28x2vzdfkx1im42j1z-pg_graphql-1.1.0
     3.6 MB  /nix/store/q36009ll4v7ay3xv4na856w715nfrbn8-bash-5.2p26
     0.2 MB  /nix/store/q3xmwl10qhyagvisqxi7vdhxmhf9hw1q-acl-2.3.2
     0.2 MB  /nix/store/qb1aldsdrapflf26anbrjjf0pl3jx4nf-libassuan-3.0.2
     0.1 MB  /nix/store/qcc3aw9bpyg5n0wf5x9rwcmihxkpkhmf-hypopg-1.3.1
     0.6 MB  /nix/store/qk1l20qwamrc7avi2fk0759dfjdx4ipf-rum-1.3
     0.1 MB  /nix/store/qsqizsdlygh5k7d7ywwx5rg9ypidfhc7-safeupdate-1.4
     0.1 MB  /nix/store/qw2d0aw0jq9halvid5dpnjsgig2gbv5x-protobuf-c-1.5.2-lib
     1.0 MB  /nix/store/r0ba9cj4vknh9lnbrz349sa7ghjilfp0-curl-8.6.0
     1.1 MB  /nix/store/r507xylzsr9fz3qskyfwvl1sng0rwpkm-libarchive-3.8.4-lib
     3.5 MB  /nix/store/r6hng8gs4r5pzsx43zhb7lv4vq6ir2v7-gnutls-3.8.11
     0.1 MB  /nix/store/r897l1zbxydivl1al7m0f5a4ygrybhhk-safeupdate
     0.2 MB  /nix/store/rcl1advdc495n3kdwv3pi80avkfjqqv9-pg_cron-1.6.4
     0.4 MB  /nix/store/rdqd4midykxxyjf5p9iv1qrnzbhazqnb-pgtap-1.2.0
     0.4 MB  /nix/store/rq56abvj404p0zc314w2mwgrrnkl11lg-publicsuffix-list-0-unstable-2025-11-14
     0.1 MB  /nix/store/rrp604j821hb8di1fmma4fdkk4wvi4qw-pg_net-0.6
     0.2 MB  /nix/store/s2qm7a3q47mykijyzjzpjyrr9kh943vr-kmod-31-lib
     0.7 MB  /nix/store/s48kpwzasghzwp1skd4mdrn5m52h54m7-gmp-with-cxx-6.3.0
    11.1 MB  /nix/store/s81xv8x99hw4dy4p1gw9wil7qgx4nvvg-postgresql-and-plugins-15.14
     0.1 MB  /nix/store/s8qpkx1fzxdwqhsb86cha84nzqbj3lxl-pgaudit
     4.4 MB  /nix/store/s8wi3pwc2gw1a0468zpamsvfcl2gbigd-elfutils-0.194
     0.6 MB  /nix/store/sbbffcm8ad1linmjywplw55n26baj2mz-readline-8.3p1
     0.2 MB  /nix/store/sf699257mxqa316sg33j3w2wjcwr701z-util-linux-minimal-2.41.2-login
     1.7 MB  /nix/store/sl9cd2h0iklmmnwq5f3q5bsdmzppzj7g-libwebp-1.6.0
     1.4 MB  /nix/store/snvrlxnzmc3y4xwzpmq1jdqwkzxkb67c-openssl-3.6.0-bin
     0.1 MB  /nix/store/sp3gv1jpzxjpxh0i10al7n0z6c5238zq-pgrouting
     0.1 MB  /nix/store/sp6y1lgdmlnpl5qakh56m8bavmv9wyj0-supabase_vault-0.3.1
     0.6 MB  /nix/store/spb76sir6p4ra4ys91m5kf6ccslyzwj4-ngtcp2-1.18.0
    11.7 MB  /nix/store/sskzi968j1q5k3rn8xcjhrgi53wad8n8-timescaledb-2.16.1
     0.2 MB  /nix/store/swr87bhkn6rxwyry7kh71kpc8hm8a47b-pg_net-0.10.0
     3.4 MB  /nix/store/szp01n8zj6r4dzqis3mhi53dz6lrh08v-pg_graphql-1.2.3
     0.1 MB  /nix/store/v23nzdl7n2f19w8dac0ff0w220qf6aj5-http-1.6.1
     3.6 MB  /nix/store/v30arqr8k11qa3pnqx8cw5m2r30b2v5v-pg_graphql-1.4.1
     3.0 MB  /nix/store/vawd4kk3lfqf4430hlcm077b5r2pd74a-gnutar-1.35
     2.7 MB  /nix/store/vaz0prypndg3y6zxmdcpabinwg9dmmq9-libkrb5-1.21.2
     0.3 MB  /nix/store/vghc1hx1p84z5n0zs2m4pwb9vy8aqzrx-postgis
     1.2 MB  /nix/store/vjzhdc08d8qkfrw89qrlkm8grpwkl3ln-brotli-1.2.0-lib
     0.1 MB  /nix/store/vl9m2k11dmilfd33pycxrwghv238c3q2-postgis-switch-extra-steps
     2.9 MB  /nix/store/vly5qxyrn1c9n6pz4va26v4yglglbm9f-pg_graphql-1.0.2
     0.1 MB  /nix/store/vmp550ljxxrzhh21zwch4v1ymgz8hgy9-pgmq-1.4.4
     0.2 MB  /nix/store/vpj7nxx7l4qkaqh91fwxk2d5jvi5i6v3-zlib-1.3.1-dev
     0.2 MB  /nix/store/vsdisjpwkmhvdawpb2j3yfffx8mnc339-pg_net-0.20.3
    25.8 MB  /nix/store/vsw66hvjnd01z8ygkdxvqcrkn1pzb66b-postgresql-15.14
     0.4 MB  /nix/store/vw4dcj2ingb65q0xg2fdqjjzynx1w23q-json-c-0.18
     0.2 MB  /nix/store/w1m88yrmmrg2zvw2030asp4rbaiq84iz-pg_tle-1.0.1
    16.8 MB  /nix/store/w344znmz4py9xqdradpmmy949w4vnda8-boost-1.87.0
     1.2 MB  /nix/store/w4gfg1899mfj46nw0mn1ybys4hd4h5xw-unbound-1.24.2-lib
     0.9 MB  /nix/store/w54lmld8cnjwvk5nvr9xc280rmz7vi9x-xz-5.8.1
    49.1 MB  /nix/store/w62qpjwrmg9ba5hyr8cyl37i16kzcm6w-wrappers-0.4.6
     0.1 MB  /nix/store/w87qnf81rfgxlam0d962rg3an2dpc8fn-plpgsql_check
     1.6 MB  /nix/store/wfk1mrpj1r5f7iyihjnh0jjixr900z7y-libxml2-2.15.1
    94.6 MB  /nix/store/wg340np1j8q0md0313iip51kvvrfni85-mecab-naist-jdic-0.6.3b-20111013
     8.0 MB  /nix/store/wgl866pjxivl8lzd4wyf5g4pa84a7d4x-wrappers
    41.7 MB  /nix/store/wjxpaix0cdpww0bldvzsq2d1bjc6g62b-glibc-2.40-66
     2.1 MB  /nix/store/wriimxdpr2b0ki61mzzl3v0q4p7p4dir-pg_graphql-1.5.1
     0.3 MB  /nix/store/wsg75l5h74gaamnp2my4yqpvkiv42q5w-nghttp2-1.60.0-lib
     0.2 MB  /nix/store/ww8z06wpbmmynqg3g5f74chd7xgfgnpm-xgcc-15.2.0-libgcc
     0.2 MB  /nix/store/wyv7lylgxlxr63vnnf7way52wi8p0bpf-pg_net-0.20.0
     0.1 MB  /nix/store/x1shdaxfan553bylb3jymmr1vrf73sfd-vector
     0.1 MB  /nix/store/x3c5lqlq23fi879rx0xw0mf7hx91q39l-timescaledb
     0.2 MB  /nix/store/x6vk48m697jal2blaqv3d0swlh7nwqdj-libffi-3.5.2
     0.7 MB  /nix/store/x7srw2qr9fwhhxq3asy647wmsqdgjg9d-libapparmor-4.1.2
     1.1 MB  /nix/store/x95bzii77hcvji341w8vq46qak00hiys-libevent-2.1.12
     0.1 MB  /nix/store/xabwkqk9k262k21qlq39xbhvczgc7d3b-pgmq
     0.1 MB  /nix/store/xb05lp39wrlg0zgz4bvirdf819pk899a-pgaudit-1.7.1
     3.7 MB  /nix/store/xgvmfq0wwbqhj70aw0f2payglf6f5l3m-pg_jsonschema-0.3.3
    48.7 MB  /nix/store/xi2xzkz1wvm3ld6pjxn0v0ahd8l4rppy-wrappers-0.4.5
     5.9 MB  /nix/store/xi5rzbwbiim9a5b9z58m5lgf71h0yn6j-p11-kit-0.25.10
     0.3 MB  /nix/store/xlxkm8l1sfck3bn43c6rlkxh5mf14qvq-pcsclite-2.3.0-lib
     0.1 MB  /nix/store/xwiij0cjf04wd1yv6vfd38zmyrckizdq-getent-glibc-2.40-66
     0.1 MB  /nix/store/xy2m68xz863pmai272cx7lnbpimbya1i-pg_jsonschema
     0.1 MB  /nix/store/y15a3dm5fxw4h8mx93cxv95wa3xg1sxm-supautils
   129.4 MB  /nix/store/y182xw6ad3jfzc12444vzl6c8agi0qwa-kytea-0.4.7
     2.4 MB  /nix/store/y7qg7xfrvfh3145c8an9ckig2lx31lq1-pg_graphql-1.6.1
     0.2 MB  /nix/store/yavi60qz9ls7mjf87mkhad621l9p2d4l-xgcc-13.2.0-libgcc
     0.1 MB  /nix/store/ygajbmax036bd0m296ywkaxyjg8ky2sf-pg_hashids-1.2.1
     0.4 MB  /nix/store/yik170dbp3ciq3mnslav0c36jjbp1acv-vector-0.8.2
     0.1 MB  /nix/store/yjy87nzj4251555bnhkgm8afaf46c63l-plan_filter
    32.0 MB  /nix/store/ykax2y8i2a16gjac7qhybxmfflxwbiq7-gdal-3.8.5
     0.3 MB  /nix/store/yl0kaid1ws2b5rjp2n8ak2ck3x95r47w-pg_tle-1.4.0
     0.2 MB  /nix/store/ymav8nb29vsdryddi435xcig3pk7i00q-zlib-1.3.1
     0.2 MB  /nix/store/ymxnhjiw4c727rv2zsl4frhymkr3wdzj-pg_cron-1.4.2
     0.3 MB  /nix/store/ywcq3n887napm0r2m7z9grb7zxgf5ila-libmicrohttpd-1.0.2
   119.8 MB  /nix/store/yyhprjipcqv6y041h7g0p6hmzm9rjzbp-wrappers-0.6.2
     1.4 MB  /nix/store/z00f3blsymr76c6h330qgpxx55k44vfi-libgcrypt-1.11.2-lib
     0.2 MB  /nix/store/z1xkc5j75sbgf5lx1y2bgvq4wkpqsxzl-vector-0.6.2
     0.1 MB  /nix/store/z8q1jx7mkyjpk963pbix5lrbgckijzpz-supabase_vault-0.2.8
     2.1 MB  /nix/store/zdi7czwxlblahcz17bkkskxksh559a67-pg_graphql-1.5.0
     0.7 MB  /nix/store/zdis0d8iacya0izy3vi7jmhjz67y8cf6-ncurses-6.5-man
     2.2 MB  /nix/store/zm99a79bffnw4cmpwc7a5cwwn8kwc5cv-libunistring-1.4.1
    48.1 MB  /nix/store/zpfkc0xkygq13znn242caf6ff4jfrayr-wrappers-0.4.4
     0.1 MB  /nix/store/zyps6ggmhj68fysh3c5q7s10sv5baf5l-keyutils-1.6.3-lib

New Dependencies (closure: 2479.3 MB):
     0.3 MB  /nix/store/00m5bdick5dx3d4zrpp2njwpwihwbyx2-vector-0.7.0
   107.2 MB  /nix/store/03k5gpwag7aipm25nsxnavp876w22iq1-wrappers-0.6.0
     4.2 MB  /nix/store/04kpg6rvmahpgmhz4dbzad9nm8y1rpvb-ncurses-6.5
     6.1 MB  /nix/store/09xsph5dvy733610lrgn2d4rgc5ibhig-kbd-2.9.0
    27.0 MB  /nix/store/0dbcc92avf23zmdvsw821yrhvqw12s8m-wrappers-0.3.0
     2.9 MB  /nix/store/0fd2vgzg0qlbnsvr3gyhg1wbzsg2k08w-cryptsetup-2.8.1
     6.4 MB  /nix/store/0kfbzhd8qdsxsd4qf9dkpcd3f916krvr-openssl-3.0.13
     3.1 MB  /nix/store/0lfppmdx1bqfg41wydjwl9y3wrp3rih0-pg_graphql-1.2.2
     0.1 MB  /nix/store/0ljg4yw8siyvsivyg457w2skp0bgd4xk-keyutils-1.6.3-lib
     2.1 MB  /nix/store/0pdr7jzay8f9i3zvd3p8wsarzv9f1s26-pg_graphql-1.5.4
    47.0 MB  /nix/store/0sn6rrav001q2n4znjw4v2z7db6yzmxd-wrappers-0.4.3
     0.2 MB  /nix/store/0vmif2nanhgi07807i8bjymqj664xcwd-libpsl-0.21.5
     8.8 MB  /nix/store/0vv7r6ga11vrj29plj027nl78p51s27c-timescaledb-2.9.1
     0.1 MB  /nix/store/0xjy5cr3h59n0ndlh6gxr3glbb83fc3w-pgroonga
     0.3 MB  /nix/store/0zfyfg75jpkf71bxhjb6q8kprpsp77jb-pgsodium-3.1.6
    41.5 MB  /nix/store/10pd749c2v3m35d4hk5xdfylyfr1hzqz-glibc-2.39-5
     0.1 MB  /nix/store/1199b79za82dwv1nbnjz8bpa08h8vc4l-hypopg
   104.1 MB  /nix/store/161vd1b5491ijhf1s9sykwhahdj8423i-wrappers-0.5.5
     0.2 MB  /nix/store/18lyymxzwh03jsj9q7zdq3lpa1jdnr94-pg_net-0.19.5
     0.1 MB  /nix/store/1c83g5czi5r2913g5pbcwba3a8jps2in-wal2json
     0.3 MB  /nix/store/1lv80gcbfjf70ikxp3mffbvk8mi7hlpn-pgsodium-3.1.5
     0.3 MB  /nix/store/1m2pfwirwdq1cy28v2scw57ry5aji017-kmod-31
     0.3 MB  /nix/store/1n168y3gxdn8b4jrfk5m9m71hq3xm2am-util-linux-minimal-2.41.2-mount
     0.7 MB  /nix/store/1qhz8fshzn41sk26pyvc30cpg7b837cf-gmp-with-cxx-6.3.0
     2.0 MB  /nix/store/1rd6vhxhfblbk3dddi636xjw3avs5z0p-pcre2-10.46
     0.2 MB  /nix/store/1snbg7fzx1bv5lpqxr7icn3mm6qan6pc-attr-2.5.2
     0.9 MB  /nix/store/21kidlr3lklamslvsa3pc78y3kdha61h-pgroonga-3.2.5
     1.9 MB  /nix/store/27g206wjs60cdzsvxvv6ncpcjprk8d6r-libjpeg-turbo-3.1.3
     0.1 MB  /nix/store/2a7sd83gzx6nz4qsijixh3kwq1i0jqrl-pg_repack
     0.1 MB  /nix/store/2brsh5disikvcvhgnxibg7hm5ybhww1r-receipt
     0.3 MB  /nix/store/2dsn4zffda2ivz2f5mxlwpfi8mb1w9yf-systemd-258.2-dev
     0.1 MB  /nix/store/2p2xn5jmx50856f0fvn7sd8zzz9lypfd-pg_tle
     0.4 MB  /nix/store/2p5qjk1lznfc13qwn2skc264zgh4c3xg-expat-2.7.3
     0.1 MB  /nix/store/2wqm7ivl04f10r6hxvi91w8s0mfaa3j8-hypopg-1.4.1
     8.0 MB  /nix/store/2xajxybfa64wsxpcwrndwlbyizpykn60-pg_partman-5.3.1
     0.1 MB  /nix/store/31blwigfmra9kcxqhkynddzvyggqqb3p-pgjwt-0.2.0
     0.5 MB  /nix/store/36ilshys1vqzxy98lwpg1mxl3gv2c717-libpwquality-1.4.5-lib
     0.2 MB  /nix/store/397hikj37spr81f8yypxpjgf8vs27sii-libxcrypt-4.5.2
     3.5 MB  /nix/store/3bjs7nyh11nn52zg36r7lkmaxkyac1hb-pg_jsonschema-0.2.0
     0.3 MB  /nix/store/3dj2qaaq9mvkri2kphq4gjfbscksi6fy-nghttp3-1.13.1
     1.9 MB  /nix/store/3jdf9aw58nkncyw3d3x36pb37p39k4ia-libunistring-1.1
     1.3 MB  /nix/store/3n15dmd4y0dhplwbx655w4nj1imgr5z7-libfido2-1.16.0
     0.3 MB  /nix/store/45kspcpwdz33am1szf9910dg2kakxsh5-libpsl-0.21.5
     1.4 MB  /nix/store/4c3h42lwbxr9ibm39v9j8lp5r305bhwj-gnupg-2.4.8
     0.6 MB  /nix/store/4cnn303h6rgfzy0fx0vdyf4p4qhrrhhp-pgroonga-3.0.7
     0.2 MB  /nix/store/4jw5rjjbpm0xr1sbbrzpjj2b11yabkz3-libcap-2.77-lib
     0.1 MB  /nix/store/4k2vkb5s804gz7p2aq158vgf93cz74rn-supabase_vault
     0.9 MB  /nix/store/4xsk01d4xa5mfi18jfbh521nihsfrsbf-libtiff-4.7.1
     0.5 MB  /nix/store/5486iybnvp4rf20h38vsjb2m4pq23303-ncurses-6.5-dev
     0.5 MB  /nix/store/57bsa2hj39q28rxh52aj10nvn2y29pcx-pgtap-1.3.1
     3.0 MB  /nix/store/5a11qgl1idhb9dz92b6xh5bmzf7wqkh9-pg_graphql-1.2.0
    38.4 MB  /nix/store/5kxz8gxxsjmcs4hs9d0l4vmls3n7hkg5-wrappers-0.4.1
     0.2 MB  /nix/store/5qk5vwcicmq29x11yxs8d955w7qzngcf-pg_tle-1.0.4
     0.4 MB  /nix/store/62b24z1igfh6ws654fhsgnm3fm7j1z3c-lz4-1.10.0-lib
     0.1 MB  /nix/store/6a439x4dmh12i8q57zjm2cxhcyb7i79c-http
     0.2 MB  /nix/store/6af6y3cz4sc7yx96dqgylfrv30x7whbj-wal2json-2.6
     3.6 MB  /nix/store/6dpkcrlpgy2d2wqrs27g7shifq2ylbva-pg_graphql-1.4.2
     0.3 MB  /nix/store/6jpri7g8bpbc3yka7sfk9ygrq7vzr7yp-nghttp2-1.67.1-lib
     0.2 MB  /nix/store/6li9zg9pswfcb3r3585wayv8c71jr13m-libcap-2.77-lib
    39.2 MB  /nix/store/6ls44671pngckfa3s0f6przcn6hp3b98-wrappers-0.4.2
     0.5 MB  /nix/store/6s7wypbdm0ipzh14yzk653zq8phwhraq-lz4-1.10.0
     0.1 MB  /nix/store/71kyfljgc85g9sx28vc6g232k73hi4pd-pg_hashids
     0.1 MB  /nix/store/74689daizl7drmrs9p31bh7m9rbcrld7-pgaudit-1.6.1
     0.2 MB  /nix/store/7a5g1v9v0hr8kv51dj7rfpkp886f7cps-vector-0.5.1
     2.4 MB  /nix/store/7higpz3prbd2k32qfb1fsyhrgdmiyldl-util-linux-minimal-2.41.2-lib
     0.3 MB  /nix/store/7jqlx5213a9dj5sihijh71d9vrzkwz7z-pg_repack-1.4.8
     2.3 MB  /nix/store/7nxjgw77sxr2q9bfl03ywkgqvk4figxf-pg_graphql-1.5.11
    52.2 MB  /nix/store/7p6rjylashbnkwa2sz40w7cks5spns12-wrappers-0.5.0
    21.4 MB  /nix/store/7qs87q8vs0il1gcp50d370wxj6h4bjx2-supabase-groonga-14.0.5
   101.5 MB  /nix/store/7v4cbk5hlcwzk9yjy3ac42yylncnrqsc-wrappers-0.5.4
     1.8 MB  /nix/store/843ahdalwl120986c7ilk5q1c47biyap-coreutils-9.8
     0.4 MB  /nix/store/87j9nfa1jvcdx4x7hz5byv0fs9wlqdxp-publicsuffix-list-0-unstable-2024-01-07
     0.1 MB  /nix/store/8gan48gn3zz8m25c4ywh83g9yn2hg26a-pg_cron-1.3.1
     0.5 MB  /nix/store/8ha23qaswya7ak6v1vz0xbq4k7p2i7sk-libcap-ng-0.8.5
     0.1 MB  /nix/store/8id99k3lrbqbjgwxlyy3bkdd86zggc76-pg_stat_monitor
     0.1 MB  /nix/store/8j3qzvhqa5wx3pg399ra7hg26mcchz1x-pg_partman
     0.1 MB  /nix/store/8jhaw8x0ja7rqwfsfwdzi9ld5ph28kgx-pg_net
     1.0 MB  /nix/store/8k346zbc6a05mya3j2lqd0shdinxd7s3-gnugrep-3.12
     0.4 MB  /nix/store/8m2kcfzy01mk0flya5n9n99a8g7fsli3-kexec-tools-2.0.32
     0.2 MB  /nix/store/8xzamn2zwpalzrdqvc99nxbfpxfcwqqv-pg_net-0.13.0
     4.2 MB  /nix/store/92bxysqjh9wv18ybfmsikhpdngplzfz6-systemd-minimal-libs-258.2
    10.0 MB  /nix/store/9322vpzgvmxa4px55w7ybshk1a87hal0-postgresql-15.14-lib
     0.6 MB  /nix/store/9ax7a3wx70ib233y6wm92iq16h73s0d5-audit-4.1.2-unstable-2025-09-06-lib
     0.4 MB  /nix/store/9igc4mjxby5fdrgi5rj4ziiwdqd18k5c-zstd-1.5.7-bin
     2.4 MB  /nix/store/9jjk6xi7fwy8lfzymsh9bizdr7a6ay7w-mecab-0.996
     0.3 MB  /nix/store/9lx045fb86ljiklvy6z01f8b5r9zrkc1-pgsodium-3.1.7
     0.1 MB  /nix/store/9qwnq0ahvc791hm7fgw6klvlsp62cfba-http-1.5.0
     0.1 MB  /nix/store/9sx7mqmq224hnaidbw6bai94qinq43vz-pg_net-0.7.1
     0.5 MB  /nix/store/a0b176pw5faa5l9xmvl74crz4r6al7dd-libsodium-1.0.20
     0.1 MB  /nix/store/a22wpi0bv8q2h17x7cykbfki567rciip-pgaudit-1.7.0
     0.2 MB  /nix/store/a2a0fblpfqr4x03fcj5ipiyd0ar81pwp-pg_stat_monitor-2.1
     9.7 MB  /nix/store/a7zzvrkgal6hds7w190mx265jb2n1m2h-geos-3.14.1
     0.3 MB  /nix/store/ag301vgms6h3a5l1mbmcyl22ijrd8xca-vector-0.8.0
     0.5 MB  /nix/store/ah1vs9pj8f3dx1lkfczxd3lidxj9jq70-lvm2-2.03.37-lib
     2.2 MB  /nix/store/az0zr7lywx12xf86bxvrw1ds1m584jqh-tzdata-2025b
     0.6 MB  /nix/store/b2zx8xygxfcglaw6w2b9nqbkbsf94kcb-libgeotiff-1.7.4
     0.2 MB  /nix/store/bjv5qpny841i3ml1cbrrn7pbxqb2w8i0-pg_net-0.14.0
     0.2 MB  /nix/store/bpgimnp6pcjxif29wy16sg66nsc6712l-pg_tle-1.3.0
   154.0 MB  /nix/store/br5cxgrndggrfzmysa4g0y93bvkf9vzw-postgis-3.3.2
    40.2 MB  /nix/store/bz625najk9nscafylc4968hmcp4mp2n7-icu4c-76.1
     0.3 MB  /nix/store/cjj6p2j1h2ds7ayapjzr5gxi7gdjz31k-pg_repack-1.5.2
     0.3 MB  /nix/store/ckm86lqsa8knk6gkvkibxh9lawdixzf4-libxml2-2.15.1-bin
     3.6 MB  /nix/store/cn39sz1rnz7knw17qkynw609ylnmxaj4-pg_jsonschema-0.3.1
     0.2 MB  /nix/store/cw9gjy21cd3aypixngm5684737s3x1iq-pg_net-0.7
     0.3 MB  /nix/store/cy4nk93wy37z60gi4s0809w94kicmb9s-vector-0.7.4
     0.2 MB  /nix/store/d1yb0arh6k658anwsgl8d5sks6zcqrgm-gcc-13.2.0-libgcc
     0.2 MB  /nix/store/d4920mrd5ps02hmbk4pjp0mvmhi8n1g9-pg_net-0.8.0
     0.1 MB  /nix/store/d7l1znilc6gx5a9a2yj8cc32i2zrvh5g-vector-0.4.0
     0.9 MB  /nix/store/d89wfc961hclhqfrk87w4g8whdyx6ngf-mpfr-4.2.2
     0.2 MB  /nix/store/d9yx9zhqs16ynrinkkvlajs2m36s3gv9-libossp-uuid-1.6.2
     1.2 MB  /nix/store/dlzv7s6ggdqpi2l90g9wqsj7rh26pb0r-curl-8.17.0
   113.9 MB  /nix/store/dqxqh677plafj8hvxcgxdv887am18nnz-wrappers-0.6.1
     0.2 MB  /nix/store/dvb9i3s69j29md1hpx3gpaqqds6530df-gcc-15.2.0-libgcc
     4.1 MB  /nix/store/dvblpblvkmkpqdwkk5phk4q2bl7mzdxf-tpm2-tss-4.1.3
     2.4 MB  /nix/store/dw4d8sys9ma9ac6bnrl1hck6r9ybzhm2-krb5-1.22.1
     0.4 MB  /nix/store/dwmy24cx39bl39df1i8nrj2l4wjpgvd0-libidn2-2.3.7
     2.2 MB  /nix/store/dx08qxv1z09w1hnp0iz3gfa3ggbqcr77-pg_graphql-1.4.4
     1.0 MB  /nix/store/dypwvnkgx6njpn6shlsa5b48d7f8nnn5-brotli-1.1.0-lib
     0.4 MB  /nix/store/f2xj65f17mnznzmxxqj6rr9jdn07r4vb-plpgsql_check-2.8
    47.2 MB  /nix/store/f6zsscjsw73kss0kl3d4syv379ajyyf0-plv8-3.1.10
     0.1 MB  /nix/store/f7gsymj23d0afixjfikl28wxchbpmmmi-pgjwt
     0.1 MB  /nix/store/f7r57hxq7z3l2jp0b041rbsl0bxgykcr-switch-ext-version
     2.1 MB  /nix/store/faszijz4zx1v5l495v5bb3p4k4y07av2-pg_graphql-1.5.1-mergeless
     0.3 MB  /nix/store/fckp65pll6l128j86963x0glf69jl835-pg_repack-1.5.0
     2.1 MB  /nix/store/fiqvcsh43nv1gzidam280flm7jf8cvv7-pg_graphql-1.5.6
     1.3 MB  /nix/store/fqy9nkaahib56gcy0r77qjk7n03cvnfs-zstd-1.5.7
     0.1 MB  /nix/store/fspp2b3vscnwb4l92zc4wz46d4815vsy-glibc-2.40-66-getent
     0.3 MB  /nix/store/g41q9md9rdcr3lkydi6f8zd6fza3h1q4-zstd-1.5.7-dev
     0.3 MB  /nix/store/g8wvpj8xw7csaxg5ks0xzkdhijfylv3k-libpng-apng-1.6.52
     0.2 MB  /nix/store/g94k0xrgyjx58b3200px478cn9js87hj-pgmq-1.5.1
     0.2 MB  /nix/store/ghi7p4h1vrwx4a4v3l0aja4jvssyrylq-libcbor-0.13.0
    13.7 MB  /nix/store/gi3sb46ppz45hllqbav6bsf0a7facyrg-pgrouting-3.4.1
     0.2 MB  /nix/store/gnlar6cvw3zmvqpjiwv1fll7d7lqc0bv-util-linux-minimal-2.41.2-swap
     0.1 MB  /nix/store/gsr5jcmjwf5xpg0c8nss4mvbni4nnaxw-qrencode-4.1.1
     0.6 MB  /nix/store/gysam7z6ak3fvw6vxsi6aapvln8y4lgc-xxHash-0.8.3
     0.1 MB  /nix/store/h0k7f17mqw15q4glyvs1mv33pca7m0v0-index_advisor-0.2.0
     0.3 MB  /nix/store/h1pm1n7vm8a5ykhznrpx7hj9ypfrgvh4-msgpack-c-6.1.0
     9.9 MB  /nix/store/h4qhxh7vwmxgy6w05g0xsf6r1bfi9vga-gcc-15.2.0-lib
     0.1 MB  /nix/store/h5nmwnilsxgar003yb2iacf1bqirhyqx-pg_stat_monitor-1.0
     3.7 MB  /nix/store/h84cj9a22cnlc8cnjf94rsgd9jcbn6kv-db-4.8.30
     0.1 MB  /nix/store/haxp81c080mm9ih6cn9q82rjy1ccmv38-rum
    39.1 MB  /nix/store/hfvij74k1g635qrgqajdsfb2krn8fj2f-icu4c-75.1
     0.8 MB  /nix/store/hhp7l11f5i65w6rwn5fqw4q4bi5n1amp-postgresql-and-plugins-15.14
     0.4 MB  /nix/store/hm27y1hbsa2k3xqmas2ax6gc9b2m0cmv-libssh2-1.11.0
     0.2 MB  /nix/store/hw1wsjysvvkbg9gyg0hqygfzm75gaj52-pg_cron-1.5.2
     9.0 MB  /nix/store/i578g2ws943hl9crhapvy35l6j662xpj-gcc-13.2.0-lib
     0.2 MB  /nix/store/i7z3jfgmj4dbsjxia92ng74dhb958nlp-pg_graphql
     0.7 MB  /nix/store/icbnhxgjixbn20dmn33jyxajmf24fd2l-pgtap-1.3.3
     0.4 MB  /nix/store/igsi8y7q3klpi3c4g1ldfv4mlwfiqx0b-plpgsql_check-2.7
     2.3 MB  /nix/store/iv5577wa0826bn53iqr83bqcmj803bv2-pg_graphql-1.5.9
     0.9 MB  /nix/store/ivpqr1z0akvdjghh30n4jwigf7d7x65i-lerc-4.0.0
     0.3 MB  /nix/store/iwa7i46bbw0mnq7k7bfsrq5zcc781ab9-libedit-20251016-3.1
     0.2 MB  /nix/store/iyxa48rmi0pvy89cvjrpp61i42wkj4qj-libtasn1-4.20.0
     0.6 MB  /nix/store/j0l6xc8kfzfbhym8fnz4pjwgx6jwh39g-libdeflate-1.25
     2.1 MB  /nix/store/j2yk5rfy2ypsrm8qd5xckm5ikia5imp7-pg_graphql-1.5.7
     0.2 MB  /nix/store/jdkxgqihxqxsr4k2sclpnd7s86q1qz97-pgsodium-3.0.4
   101.4 MB  /nix/store/jds5gz4cdrjh0jg8hn10f1l7zj6hhfmg-wrappers-0.5.3
     0.1 MB  /nix/store/jiqlyzpkq2idq9rd4vd9j02b264pg6wm-bzip2-1.0.8
     3.5 MB  /nix/store/jjlds4xk8r6d79gq19pma3f2d0l7c07b-krb5-1.22.1-lib
     0.8 MB  /nix/store/jpz9kf5na20507i3iww35ar9zlwv42qj-krb5-1.22.1-dev
     0.4 MB  /nix/store/jqvri7lc9w4x9i72wmdimlcfh83358sa-libidn2-2.3.8
     3.1 MB  /nix/store/js3xsm649ghc28r1hvrmrwjjghgrs8s5-glibc-2.40-66-bin
     0.3 MB  /nix/store/jvnqrf0wbx8gnzw6mimzbhzg43pk1h84-plpgsql_check-2.2
     0.4 MB  /nix/store/k074vgrqp86mcgd7np0bw2r3i0b0skj8-libssh2-1.11.1
     9.4 MB  /nix/store/k0wfscy8mjfzkhrzm4r6yy8bxs3v4s5w-openssl-3.6.0
     0.1 MB  /nix/store/k12hr62b910v01376q7ac1kqkhhg30zg-pg_net-0.1
     0.9 MB  /nix/store/kawf0kmzaj3lvjf8hv2bdc6c3chgm0ay-cracklib-2.10.3
     4.1 MB  /nix/store/kg79jrqc5cpf4y8xdq4skxfhwnwkv4nq-sqlite-3.51.1
     0.3 MB  /nix/store/kl39qpw93b7wm4bqyhsnl71vrgz6mp6k-libseccomp-2.6.0-lib
     0.1 MB  /nix/store/km3wfavn8mbc327vpxyxl283g1iprpij-switch_timescaledb_loader
     0.1 MB  /nix/store/kn4grpnk3d4h277217lkry4hyvy7xizp-index_advisor
     0.2 MB  /nix/store/knc094z13rjn803zlwl0bhv39qx81di9-pg_net-0.11.0
    47.1 MB  /nix/store/kpm3dhmad0y35vzbwsr6yjfqp1z4pbl6-plv8-3.1.4
     1.3 MB  /nix/store/kv68n8lzzg5fp7dclrz75ak15hv2pcfd-libtpms-0.10.1
     0.2 MB  /nix/store/l6i35y2hlmdz0hvz690h3k4ilq9ahhzy-zlib-1.3.1
     0.2 MB  /nix/store/lhl78g2n79qlbswy8134sx49rzdr5f25-pg_net-0.20.4
     0.3 MB  /nix/store/lkwzjy8dw5z2bj1ij2920qzpl96d75y9-pg_repack-1.5.1
    53.1 MB  /nix/store/lzfs6hbqms9gm3zgqzp46nfa6h79fgp5-mecab-ipadic-2.7.0-20070801
     0.1 MB  /nix/store/lzkba0gdw8sv63smwpf4fd0i3jbcigz5-find-xml-catalogs-hook
     2.2 MB  /nix/store/m0h60l7is9alkrivf0b75dc6zy4s0q6c-libbpf-1.6.2
     0.1 MB  /nix/store/mbb76ijw62506if9caayivz1mc0p3qr0-readline-8.3p1-dev
     0.1 MB  /nix/store/mbgxmacfnn88980nfh0z3wsm2kc7rz1h-plan_filter-0.1
     0.9 MB  /nix/store/mbmd8w5jiq6sfcs81zadj365fb3sha7w-libgpg-error-1.55
    72.4 MB  /nix/store/mca2vsmjqmsvijdzqx1akz3lv9419ain-systemd-258.2
     0.7 MB  /nix/store/mcbrid72x46miha3jmym9l1dxzijknb4-giflib-5.2.2
     0.2 MB  /nix/store/mglbi4dy4kpx7v1dcgf6iincp5x38hsc-lz4-1.10.0-dev
     0.2 MB  /nix/store/mp5sbl0p29v81ss4qqqwprff4nsqmxhd-vector-0.6.0
     0.1 MB  /nix/store/mpa6hjyjr1gmjh1v5m25lqc3f5qydxnw-dns-root-data-2025-04-14
    15.9 MB  /nix/store/mrcx18lcjf77z0l557g1sm46kvrfjx3v-proj-9.7.1
   106.1 MB  /nix/store/mvr0051q63nb9c5m515k2nvpydfcll0v-wrappers-0.5.7
     1.1 MB  /nix/store/mxvqrp4jj6zklxc1i32ra8iapnzynyzc-zstd-1.5.5
     6.6 MB  /nix/store/n2vnr7ycfk6midbzxcwd28qj3bgb50cz-icu4c-75.1-dev
     0.4 MB  /nix/store/na0myil14n0pm6v62xi84rwqz626hzj0-pgsodium-3.1.8
    47.2 MB  /nix/store/nhif8qj2p69fs97nsk5yy8if31ib3jpl-plv8-3.1.5
    24.0 MB  /nix/store/nwkn0xg8gif120nxdwpb19wz0a2sj4mg-sfcgal-2.2.0
     0.1 MB  /nix/store/nz5gmfk8c9wx43igra8b2z20p439fchm-pgtap
     0.1 MB  /nix/store/p0nbl3dlg1nia66vmhj90d05jb9mjqa8-pg_hashids-1.3.0-cd0e1b31d52b394a0df64079406a14a4f7387cd6
     0.5 MB  /nix/store/p17klc3qq4nl9ihfwqfpi8cnqvcf92xz-libxml2-2.15.1-dev
     4.5 MB  /nix/store/p711vqjvd78jz7q6ryzdp5jnnnb48s6j-linux-pam-1.7.1
     0.1 MB  /nix/store/pa13b29ylzim154a5dyp8z52awm2cna2-plv8
     0.9 MB  /nix/store/pdazhhg4l69vz5szllijlpm1ph9i93kq-nettle-3.10.2
     0.1 MB  /nix/store/pknmf91sx9ysc5igw7l84kv5y45fy5s6-overlayfs-on-package
     0.1 MB  /nix/store/psbbmgc2fgvxnn5zh4iz5snkk75qlffr-pgsodium
     0.1 MB  /nix/store/psbmliw54aaxwax8k75xpjrgmzad09sg-pg_net-0.2
     0.1 MB  /nix/store/pv50jbq0cpf8hzz2078vbzia5l9xbknh-npth-1.8
   105.5 MB  /nix/store/pvcv1kbg9kpw8crw06p72hdsn93p8ckz-wrappers-0.5.6
     0.1 MB  /nix/store/pxxvfah9m529qraa4wlryxn182iv7xyx-pg_cron
     2.3 MB  /nix/store/pzqq7d1nnx8xkvccmgl51cf1aqim3x59-openssl-3.6.0-dev
     4.1 MB  /nix/store/q1lr86rzsxxbbqdz8m6bcv94saaz8wlv-bash-5.3p3
     2.9 MB  /nix/store/q2ky2b9i91fsfs28x2vzdfkx1im42j1z-pg_graphql-1.1.0
     3.6 MB  /nix/store/q36009ll4v7ay3xv4na856w715nfrbn8-bash-5.2p26
     0.2 MB  /nix/store/q3xmwl10qhyagvisqxi7vdhxmhf9hw1q-acl-2.3.2
     0.2 MB  /nix/store/qb1aldsdrapflf26anbrjjf0pl3jx4nf-libassuan-3.0.2
     0.1 MB  /nix/store/qcc3aw9bpyg5n0wf5x9rwcmihxkpkhmf-hypopg-1.3.1
     0.6 MB  /nix/store/qk1l20qwamrc7avi2fk0759dfjdx4ipf-rum-1.3
     0.1 MB  /nix/store/qsqizsdlygh5k7d7ywwx5rg9ypidfhc7-safeupdate-1.4
     0.1 MB  /nix/store/qw2d0aw0jq9halvid5dpnjsgig2gbv5x-protobuf-c-1.5.2-lib
     1.0 MB  /nix/store/r0ba9cj4vknh9lnbrz349sa7ghjilfp0-curl-8.6.0
     1.1 MB  /nix/store/r507xylzsr9fz3qskyfwvl1sng0rwpkm-libarchive-3.8.4-lib
     3.5 MB  /nix/store/r6hng8gs4r5pzsx43zhb7lv4vq6ir2v7-gnutls-3.8.11
     0.1 MB  /nix/store/r897l1zbxydivl1al7m0f5a4ygrybhhk-safeupdate
     0.2 MB  /nix/store/rcl1advdc495n3kdwv3pi80avkfjqqv9-pg_cron-1.6.4
     0.4 MB  /nix/store/rdqd4midykxxyjf5p9iv1qrnzbhazqnb-pgtap-1.2.0
     0.4 MB  /nix/store/rq56abvj404p0zc314w2mwgrrnkl11lg-publicsuffix-list-0-unstable-2025-11-14
     0.1 MB  /nix/store/rrp604j821hb8di1fmma4fdkk4wvi4qw-pg_net-0.6
     0.2 MB  /nix/store/s2qm7a3q47mykijyzjzpjyrr9kh943vr-kmod-31-lib
     0.7 MB  /nix/store/s48kpwzasghzwp1skd4mdrn5m52h54m7-gmp-with-cxx-6.3.0
    11.1 MB  /nix/store/s81xv8x99hw4dy4p1gw9wil7qgx4nvvg-postgresql-and-plugins-15.14
     0.1 MB  /nix/store/s8qpkx1fzxdwqhsb86cha84nzqbj3lxl-pgaudit
     4.4 MB  /nix/store/s8wi3pwc2gw1a0468zpamsvfcl2gbigd-elfutils-0.194
     0.6 MB  /nix/store/sbbffcm8ad1linmjywplw55n26baj2mz-readline-8.3p1
     0.2 MB  /nix/store/sf699257mxqa316sg33j3w2wjcwr701z-util-linux-minimal-2.41.2-login
     1.7 MB  /nix/store/sl9cd2h0iklmmnwq5f3q5bsdmzppzj7g-libwebp-1.6.0
     1.4 MB  /nix/store/snvrlxnzmc3y4xwzpmq1jdqwkzxkb67c-openssl-3.6.0-bin
     0.1 MB  /nix/store/sp3gv1jpzxjpxh0i10al7n0z6c5238zq-pgrouting
     0.1 MB  /nix/store/sp6y1lgdmlnpl5qakh56m8bavmv9wyj0-supabase_vault-0.3.1
     0.6 MB  /nix/store/spb76sir6p4ra4ys91m5kf6ccslyzwj4-ngtcp2-1.18.0
    11.7 MB  /nix/store/sskzi968j1q5k3rn8xcjhrgi53wad8n8-timescaledb-2.16.1
     0.2 MB  /nix/store/swr87bhkn6rxwyry7kh71kpc8hm8a47b-pg_net-0.10.0
     3.4 MB  /nix/store/szp01n8zj6r4dzqis3mhi53dz6lrh08v-pg_graphql-1.2.3
     0.1 MB  /nix/store/v23nzdl7n2f19w8dac0ff0w220qf6aj5-http-1.6.1
     3.6 MB  /nix/store/v30arqr8k11qa3pnqx8cw5m2r30b2v5v-pg_graphql-1.4.1
     3.0 MB  /nix/store/vawd4kk3lfqf4430hlcm077b5r2pd74a-gnutar-1.35
     2.7 MB  /nix/store/vaz0prypndg3y6zxmdcpabinwg9dmmq9-libkrb5-1.21.2
     0.3 MB  /nix/store/vghc1hx1p84z5n0zs2m4pwb9vy8aqzrx-postgis
     1.2 MB  /nix/store/vjzhdc08d8qkfrw89qrlkm8grpwkl3ln-brotli-1.2.0-lib
     0.1 MB  /nix/store/vl9m2k11dmilfd33pycxrwghv238c3q2-postgis-switch-extra-steps
     2.9 MB  /nix/store/vly5qxyrn1c9n6pz4va26v4yglglbm9f-pg_graphql-1.0.2
     0.1 MB  /nix/store/vmp550ljxxrzhh21zwch4v1ymgz8hgy9-pgmq-1.4.4
     0.2 MB  /nix/store/vpj7nxx7l4qkaqh91fwxk2d5jvi5i6v3-zlib-1.3.1-dev
     0.2 MB  /nix/store/vsdisjpwkmhvdawpb2j3yfffx8mnc339-pg_net-0.20.3
    25.8 MB  /nix/store/vsw66hvjnd01z8ygkdxvqcrkn1pzb66b-postgresql-15.14
     0.4 MB  /nix/store/vw4dcj2ingb65q0xg2fdqjjzynx1w23q-json-c-0.18
     0.2 MB  /nix/store/w1m88yrmmrg2zvw2030asp4rbaiq84iz-pg_tle-1.0.1
    16.8 MB  /nix/store/w344znmz4py9xqdradpmmy949w4vnda8-boost-1.87.0
     1.2 MB  /nix/store/w4gfg1899mfj46nw0mn1ybys4hd4h5xw-unbound-1.24.2-lib
     0.9 MB  /nix/store/w54lmld8cnjwvk5nvr9xc280rmz7vi9x-xz-5.8.1
    49.1 MB  /nix/store/w62qpjwrmg9ba5hyr8cyl37i16kzcm6w-wrappers-0.4.6
     0.1 MB  /nix/store/w87qnf81rfgxlam0d962rg3an2dpc8fn-plpgsql_check
     1.6 MB  /nix/store/wfk1mrpj1r5f7iyihjnh0jjixr900z7y-libxml2-2.15.1
    94.6 MB  /nix/store/wg340np1j8q0md0313iip51kvvrfni85-mecab-naist-jdic-0.6.3b-20111013
     8.0 MB  /nix/store/wgl866pjxivl8lzd4wyf5g4pa84a7d4x-wrappers
    41.7 MB  /nix/store/wjxpaix0cdpww0bldvzsq2d1bjc6g62b-glibc-2.40-66
     2.1 MB  /nix/store/wriimxdpr2b0ki61mzzl3v0q4p7p4dir-pg_graphql-1.5.1
     0.3 MB  /nix/store/wsg75l5h74gaamnp2my4yqpvkiv42q5w-nghttp2-1.60.0-lib
     0.2 MB  /nix/store/ww8z06wpbmmynqg3g5f74chd7xgfgnpm-xgcc-15.2.0-libgcc
     0.2 MB  /nix/store/wyv7lylgxlxr63vnnf7way52wi8p0bpf-pg_net-0.20.0
     0.1 MB  /nix/store/x1shdaxfan553bylb3jymmr1vrf73sfd-vector
     0.1 MB  /nix/store/x3c5lqlq23fi879rx0xw0mf7hx91q39l-timescaledb
     0.2 MB  /nix/store/x6vk48m697jal2blaqv3d0swlh7nwqdj-libffi-3.5.2
     0.7 MB  /nix/store/x7srw2qr9fwhhxq3asy647wmsqdgjg9d-libapparmor-4.1.2
     1.1 MB  /nix/store/x95bzii77hcvji341w8vq46qak00hiys-libevent-2.1.12
     0.1 MB  /nix/store/xabwkqk9k262k21qlq39xbhvczgc7d3b-pgmq
     0.1 MB  /nix/store/xb05lp39wrlg0zgz4bvirdf819pk899a-pgaudit-1.7.1
     3.7 MB  /nix/store/xgvmfq0wwbqhj70aw0f2payglf6f5l3m-pg_jsonschema-0.3.3
    48.7 MB  /nix/store/xi2xzkz1wvm3ld6pjxn0v0ahd8l4rppy-wrappers-0.4.5
     5.9 MB  /nix/store/xi5rzbwbiim9a5b9z58m5lgf71h0yn6j-p11-kit-0.25.10
     0.3 MB  /nix/store/xlxkm8l1sfck3bn43c6rlkxh5mf14qvq-pcsclite-2.3.0-lib
     0.1 MB  /nix/store/xwiij0cjf04wd1yv6vfd38zmyrckizdq-getent-glibc-2.40-66
     0.1 MB  /nix/store/xy2m68xz863pmai272cx7lnbpimbya1i-pg_jsonschema
     0.1 MB  /nix/store/y15a3dm5fxw4h8mx93cxv95wa3xg1sxm-supautils
   129.4 MB  /nix/store/y182xw6ad3jfzc12444vzl6c8agi0qwa-kytea-0.4.7
     2.4 MB  /nix/store/y7qg7xfrvfh3145c8an9ckig2lx31lq1-pg_graphql-1.6.1
     0.2 MB  /nix/store/yavi60qz9ls7mjf87mkhad621l9p2d4l-xgcc-13.2.0-libgcc
     0.1 MB  /nix/store/ygajbmax036bd0m296ywkaxyjg8ky2sf-pg_hashids-1.2.1
     0.4 MB  /nix/store/yik170dbp3ciq3mnslav0c36jjbp1acv-vector-0.8.2
     0.1 MB  /nix/store/yjy87nzj4251555bnhkgm8afaf46c63l-plan_filter
    32.0 MB  /nix/store/ykax2y8i2a16gjac7qhybxmfflxwbiq7-gdal-3.8.5
     0.3 MB  /nix/store/yl0kaid1ws2b5rjp2n8ak2ck3x95r47w-pg_tle-1.4.0
     0.2 MB  /nix/store/ymav8nb29vsdryddi435xcig3pk7i00q-zlib-1.3.1
     0.2 MB  /nix/store/ymxnhjiw4c727rv2zsl4frhymkr3wdzj-pg_cron-1.4.2
     0.3 MB  /nix/store/ywcq3n887napm0r2m7z9grb7zxgf5ila-libmicrohttpd-1.0.2
   119.8 MB  /nix/store/yyhprjipcqv6y041h7g0p6hmzm9rjzbp-wrappers-0.6.2
     1.4 MB  /nix/store/z00f3blsymr76c6h330qgpxx55k44vfi-libgcrypt-1.11.2-lib
     0.2 MB  /nix/store/z1xkc5j75sbgf5lx1y2bgvq4wkpqsxzl-vector-0.6.2
     0.1 MB  /nix/store/z8q1jx7mkyjpk963pbix5lrbgckijzpz-supabase_vault-0.2.8
     2.1 MB  /nix/store/zdi7czwxlblahcz17bkkskxksh559a67-pg_graphql-1.5.0
     0.7 MB  /nix/store/zdis0d8iacya0izy3vi7jmhjz67y8cf6-ncurses-6.5-man
     2.2 MB  /nix/store/zm99a79bffnw4cmpwc7a5cwwn8kwc5cv-libunistring-1.4.1
    48.1 MB  /nix/store/zpfkc0xkygq13znn242caf6ff4jfrayr-wrappers-0.4.4
     0.1 MB  /nix/store/zyps6ggmhj68fysh3c5q7s10sv5baf5l-keyutils-1.6.3-lib

PostgreSQL 17 Dependency Changes

Extracting PostgreSQL 17 dependencies...

Package Old New Status

Runtime Closure Size

Size
Old 2206.6 MB
New 2206.6 MB
Delta +0.0 MB
Raw Dependency Closure
Old Dependencies (closure: 2206.6 MB):
     0.2 MB  /nix/store/04jcv2frdfa6nlphwp39flrsrjrn0nw3-pg_net-0.20.4
     4.2 MB  /nix/store/04kpg6rvmahpgmhz4dbzad9nm8y1rpvb-ncurses-6.5
     0.1 MB  /nix/store/08izg82f0fl71sdaaaf0l2zr01vwq0dd-pgrouting
     6.1 MB  /nix/store/09xsph5dvy733610lrgn2d4rgc5ibhig-kbd-2.9.0
     2.9 MB  /nix/store/0fd2vgzg0qlbnsvr3gyhg1wbzsg2k08w-cryptsetup-2.8.1
    59.5 MB  /nix/store/0gfsfmgbyy35akc4waha0cq3gf6xan1r-perl-5.42.0
     6.4 MB  /nix/store/0kfbzhd8qdsxsd4qf9dkpcd3f916krvr-openssl-3.0.13
     0.1 MB  /nix/store/0ljg4yw8siyvsivyg457w2skp0bgd4xk-keyutils-1.6.3-lib
     0.2 MB  /nix/store/0vmif2nanhgi07807i8bjymqj664xcwd-libpsl-0.21.5
    41.5 MB  /nix/store/10pd749c2v3m35d4hk5xdfylyfr1hzqz-glibc-2.39-5
     0.5 MB  /nix/store/15vsq4jac260cmngwz4k7hjg41niz0y1-rum-1.3
     0.2 MB  /nix/store/1g0adrdq8i4hlsq4yfndwv4xqhaaxl8r-pg_cron-1.6.4
     0.1 MB  /nix/store/1in5qfnpa78ziqh1c1kqrcci2241rs91-supabase_vault
     0.3 MB  /nix/store/1m2pfwirwdq1cy28v2scw57ry5aji017-kmod-31
     0.3 MB  /nix/store/1n168y3gxdn8b4jrfk5m9m71hq3xm2am-util-linux-minimal-2.41.2-mount
     0.7 MB  /nix/store/1qhz8fshzn41sk26pyvc30cpg7b837cf-gmp-with-cxx-6.3.0
     2.0 MB  /nix/store/1rd6vhxhfblbk3dddi636xjw3avs5z0p-pcre2-10.46
     0.2 MB  /nix/store/1snbg7fzx1bv5lpqxr7icn3mm6qan6pc-attr-2.5.2
     0.3 MB  /nix/store/1x42ica3rv9bvfvfabp8d4h19shwjfkl-pg_tle-1.4.0
     0.1 MB  /nix/store/24av8nlqsnmmkjb49lhl5d8kjv399kz4-http-1.6.1
     1.9 MB  /nix/store/27g206wjs60cdzsvxvv6ncpcjprk8d6r-libjpeg-turbo-3.1.3
     0.3 MB  /nix/store/2dsn4zffda2ivz2f5mxlwpfi8mb1w9yf-systemd-258.2-dev
     0.4 MB  /nix/store/2p5qjk1lznfc13qwn2skc264zgh4c3xg-expat-2.7.3
     0.1 MB  /nix/store/30gwlrinmvi0jzkr7vphdi3jd2bkhjs8-index_advisor
     0.1 MB  /nix/store/31blwigfmra9kcxqhkynddzvyggqqb3p-pgjwt-0.2.0
     0.5 MB  /nix/store/36ilshys1vqzxy98lwpg1mxl3gv2c717-libpwquality-1.4.5-lib
     0.2 MB  /nix/store/397hikj37spr81f8yypxpjgf8vs27sii-libxcrypt-4.5.2
     0.3 MB  /nix/store/3dj2qaaq9mvkri2kphq4gjfbscksi6fy-nghttp3-1.13.1
     0.2 MB  /nix/store/3fhbqhb2payx783q38l6hwj5b33239f5-pg_net-0.13.0
     1.9 MB  /nix/store/3jdf9aw58nkncyw3d3x36pb37p39k4ia-libunistring-1.1
     0.1 MB  /nix/store/3jv55sswr5179d91hhyz95hmvyq3ygiz-pg_hashids-1.2.1
   106.1 MB  /nix/store/3l14bh137svpp0ghgq7h18fv05xki0h8-wrappers-0.5.7
     1.3 MB  /nix/store/3n15dmd4y0dhplwbx655w4nj1imgr5z7-libfido2-1.16.0
     0.8 MB  /nix/store/3sha37yhasigf2hq0ikqd86ir33n6srq-postgresql-and-plugins-17.6
     0.1 MB  /nix/store/3ya1dkaflp9i1q13j90l08qv82yjpknr-supabase_vault-0.2.8
   171.3 MB  /nix/store/40q4672xb38803aqjq0grm446mrkxy6k-postgis-3.3.7
     0.2 MB  /nix/store/44kgn62507cjmdq94yzxd8p63wf0f75m-wal2json-2.6
     0.3 MB  /nix/store/45kspcpwdz33am1szf9910dg2kakxsh5-libpsl-0.21.5
     1.4 MB  /nix/store/4c3h42lwbxr9ibm39v9j8lp5r305bhwj-gnupg-2.4.8
     0.2 MB  /nix/store/4fsi110fj5h5jb2f8gg5idh3ysqmdvdb-pg_net-0.11.0
     0.2 MB  /nix/store/4jw5rjjbpm0xr1sbbrzpjj2b11yabkz3-libcap-2.77-lib
     0.9 MB  /nix/store/4xsk01d4xa5mfi18jfbh521nihsfrsbf-libtiff-4.7.1
     0.1 MB  /nix/store/4yj8rffqwigkxqjackcgvlw36y870vn1-pgaudit
     0.5 MB  /nix/store/5486iybnvp4rf20h38vsjb2m4pq23303-ncurses-6.5-dev
     2.4 MB  /nix/store/5alkfgiswbd3i8k1b99dfcl36hfycisn-pg_graphql-1.6.1
   107.2 MB  /nix/store/5jfkq09q7hrnr46r5vmjcc8635wicsvg-wrappers-0.6.0
     0.3 MB  /nix/store/5k326m108dfzv703gc5nvrvya3qjid5a-pgsodium-3.1.5
     0.4 MB  /nix/store/62b24z1igfh6ws654fhsgnm3fm7j1z3c-lz4-1.10.0-lib
     0.3 MB  /nix/store/6jpri7g8bpbc3yka7sfk9ygrq7vzr7yp-nghttp2-1.67.1-lib
     0.2 MB  /nix/store/6li9zg9pswfcb3r3585wayv8c71jr13m-libcap-2.77-lib
     0.5 MB  /nix/store/6s7wypbdm0ipzh14yzk653zq8phwhraq-lz4-1.10.0
     0.3 MB  /nix/store/6w47n734jkag70f8cyjgjdqwc30yx1m0-vector-0.7.4
    12.2 MB  /nix/store/6wszyg94x9gk0zzvy24kivnf838ql0lf-postgresql-and-plugins-17.6
     0.3 MB  /nix/store/76vxs143v7awbmimnyj4hra1vrzrmgk3-pgsodium-3.1.6
     2.4 MB  /nix/store/7higpz3prbd2k32qfb1fsyhrgdmiyldl-util-linux-minimal-2.41.2-lib
     0.9 MB  /nix/store/7lgmnnx0454sx00f1pd4l02df4lx6cas-pgroonga-3.2.5
    21.4 MB  /nix/store/7qs87q8vs0il1gcp50d370wxj6h4bjx2-supabase-groonga-14.0.5
     0.2 MB  /nix/store/822kwilqnwwybd0xj3kmnx2acwnwhmh0-pgmq-1.5.1
     1.8 MB  /nix/store/843ahdalwl120986c7ilk5q1c47biyap-coreutils-9.8
     0.4 MB  /nix/store/87j9nfa1jvcdx4x7hz5byv0fs9wlqdxp-publicsuffix-list-0-unstable-2024-01-07
     0.5 MB  /nix/store/8ha23qaswya7ak6v1vz0xbq4k7p2i7sk-libcap-ng-0.8.5
     1.0 MB  /nix/store/8k346zbc6a05mya3j2lqd0shdinxd7s3-gnugrep-3.12
     0.4 MB  /nix/store/8m2kcfzy01mk0flya5n9n99a8g7fsli3-kexec-tools-2.0.32
     0.3 MB  /nix/store/8qg3sk56y302ydwcqnj1m8l7smri02lq-pg_repack-1.4.8
     0.2 MB  /nix/store/8w47fsy9p0n1pfj3qgjqlq88kn9z2gd0-pg_tle-1.0.4
     4.2 MB  /nix/store/92bxysqjh9wv18ybfmsikhpdngplzfz6-systemd-minimal-libs-258.2
     0.6 MB  /nix/store/9ax7a3wx70ib233y6wm92iq16h73s0d5-audit-4.1.2-unstable-2025-09-06-lib
     0.4 MB  /nix/store/9igc4mjxby5fdrgi5rj4ziiwdqd18k5c-zstd-1.5.7-bin
     2.4 MB  /nix/store/9jjk6xi7fwy8lfzymsh9bizdr7a6ay7w-mecab-0.996
     0.5 MB  /nix/store/a0b176pw5faa5l9xmvl74crz4r6al7dd-libsodium-1.0.20
     0.1 MB  /nix/store/a0dcvgicrsbkxm96pf6iq1pbnyxam3yd-pg_net
     0.1 MB  /nix/store/a69qna6xih2qr37m79852jg81dswjcqx-pg_repack
     9.7 MB  /nix/store/a7zzvrkgal6hds7w190mx265jb2n1m2h-geos-3.14.1
     0.4 MB  /nix/store/af0lgwz54rd6zjn9ydgw9462lk8lzyl9-pgsodium-3.1.8
     0.5 MB  /nix/store/aflxg7bhgx0axp1cfv3iwc745n969j50-libxslt-1.1.45
     0.5 MB  /nix/store/ah1vs9pj8f3dx1lkfczxd3lidxj9jq70-lvm2-2.03.37-lib
     0.1 MB  /nix/store/anv1yda87j2vxgnijkhmh9j6z3zkg4af-index_advisor-0.2.0
     2.3 MB  /nix/store/aq9ij7snmmd9l0wmmzh4b570gb48w4mi-pg_graphql-1.5.9
     2.2 MB  /nix/store/az0zr7lywx12xf86bxvrw1ds1m584jqh-tzdata-2025b
     0.6 MB  /nix/store/b2zx8xygxfcglaw6w2b9nqbkbsf94kcb-libgeotiff-1.7.4
     0.3 MB  /nix/store/bsv4acif0g1y1g0qwggvydgb61l52926-pgsodium-3.1.7
    40.2 MB  /nix/store/bz625najk9nscafylc4968hmcp4mp2n7-icu4c-76.1
     0.1 MB  /nix/store/cdwaqir504b0m2bsxmy48z82l8z372x4-supautils
     0.3 MB  /nix/store/ckm86lqsa8knk6gkvkibxh9lawdixzf4-libxml2-2.15.1-bin
     0.1 MB  /nix/store/czbz2kbgh30h9zyl3i80w3hcb8x26b3w-hypopg
     0.2 MB  /nix/store/d1yb0arh6k658anwsgl8d5sks6zcqrgm-gcc-13.2.0-libgcc
     0.9 MB  /nix/store/d89wfc961hclhqfrk87w4g8whdyx6ngf-mpfr-4.2.2
     0.2 MB  /nix/store/d9yx9zhqs16ynrinkkvlajs2m36s3gv9-libossp-uuid-1.6.2
     0.1 MB  /nix/store/dhlfmidk7shn3qrkwn76sqgy7k4wy7gq-pgsodium
     1.2 MB  /nix/store/dlzv7s6ggdqpi2l90g9wqsj7rh26pb0r-curl-8.17.0
     0.2 MB  /nix/store/dvb9i3s69j29md1hpx3gpaqqds6530df-gcc-15.2.0-libgcc
     4.1 MB  /nix/store/dvblpblvkmkpqdwkk5phk4q2bl7mzdxf-tpm2-tss-4.1.3
     2.4 MB  /nix/store/dw4d8sys9ma9ac6bnrl1hck6r9ybzhm2-krb5-1.22.1
     0.4 MB  /nix/store/dwmy24cx39bl39df1i8nrj2l4wjpgvd0-libidn2-2.3.7
     0.3 MB  /nix/store/dyczlsy117b0vcakydbjilw4x5ff5h96-pg_repack-1.5.1
     1.0 MB  /nix/store/dypwvnkgx6njpn6shlsa5b48d7f8nnn5-brotli-1.1.0-lib
     0.1 MB  /nix/store/f7gsymj23d0afixjfikl28wxchbpmmmi-pgjwt
     0.1 MB  /nix/store/f7r57hxq7z3l2jp0b041rbsl0bxgykcr-switch-ext-version
     0.3 MB  /nix/store/ffnvkz5h2qh5gd07mnkppz39s2irgg4i-pg_repack-1.5.0
     1.3 MB  /nix/store/fqy9nkaahib56gcy0r77qjk7n03cvnfs-zstd-1.5.7
     0.1 MB  /nix/store/fspp2b3vscnwb4l92zc4wz46d4815vsy-glibc-2.40-66-getent
   119.8 MB  /nix/store/fxnsz3mpf542yxcihm9q3rfkcb3wgzb4-wrappers-0.6.2
     0.3 MB  /nix/store/g41q9md9rdcr3lkydi6f8zd6fza3h1q4-zstd-1.5.7-dev
     0.3 MB  /nix/store/g8wvpj8xw7csaxg5ks0xzkdhijfylv3k-libpng-apng-1.6.52
   113.9 MB  /nix/store/gbq7c6gnk5qjz1422ygq4fwja2incxz1-wrappers-0.6.1
     0.2 MB  /nix/store/ghi7p4h1vrwx4a4v3l0aja4jvssyrylq-libcbor-0.13.0
     0.1 MB  /nix/store/gj3sp0k4j1hcbnsl7lw4mclmdfc1j2gd-pg_graphql
     0.2 MB  /nix/store/gnlar6cvw3zmvqpjiwv1fll7d7lqc0bv-util-linux-minimal-2.41.2-swap
     0.1 MB  /nix/store/gsr5jcmjwf5xpg0c8nss4mvbni4nnaxw-qrencode-4.1.1
     0.6 MB  /nix/store/gysam7z6ak3fvw6vxsi6aapvln8y4lgc-xxHash-0.8.3
     0.3 MB  /nix/store/h1pm1n7vm8a5ykhznrpx7hj9ypfrgvh4-msgpack-c-6.1.0
     9.9 MB  /nix/store/h4qhxh7vwmxgy6w05g0xsf6r1bfi9vga-gcc-15.2.0-lib
     3.7 MB  /nix/store/h84cj9a22cnlc8cnjf94rsgd9jcbn6kv-db-4.8.30
    39.1 MB  /nix/store/hfvij74k1g635qrgqajdsfb2krn8fj2f-icu4c-75.1
     0.4 MB  /nix/store/hgxrpsf08cjb3q8bhy5aly090nb30574-vector-0.8.2
     0.4 MB  /nix/store/hm27y1hbsa2k3xqmas2ax6gc9b2m0cmv-libssh2-1.11.0
     0.1 MB  /nix/store/hmdfb1lfnqpz6vbn8p1gn03fbw23b9j9-pgtap
    49.1 MB  /nix/store/hniycmm4gwr24yf2jp1ak8b4i251r2vm-wrappers-0.4.6
     0.3 MB  /nix/store/hrnfbh0w6asq1zq98x7g8yhja05g1zcw-postgis
     0.5 MB  /nix/store/hvnibl0y2v8r7ws51mb08x49wiarczll-pgtap-1.3.1
     0.1 MB  /nix/store/hx4mf0xvx02hzihap1h47xic0ghjlgmm-pgaudit-17.0
     9.0 MB  /nix/store/i578g2ws943hl9crhapvy35l6j662xpj-gcc-13.2.0-lib
     2.3 MB  /nix/store/i5c414lbj2rlnrxgv9md2fywqp8s5kn0-pg_graphql-1.5.11
     0.1 MB  /nix/store/igl3la2nsjgyn4ss16am0k00vcn1zf9r-receipt
     8.0 MB  /nix/store/iv1fqzrgyw4p5j7p3lja3bfgjdrazqpz-pg_partman-5.3.1
     0.9 MB  /nix/store/ivpqr1z0akvdjghh30n4jwigf7d7x65i-lerc-4.0.0
     0.3 MB  /nix/store/iwa7i46bbw0mnq7k7bfsrq5zcc781ab9-libedit-20251016-3.1
     0.1 MB  /nix/store/iyalzzlr5qhbjydg6p5nw4j0m1jh9l8s-libxslt-1.1.45-bin
     0.2 MB  /nix/store/iyxa48rmi0pvy89cvjrpp61i42wkj4qj-libtasn1-4.20.0
     0.6 MB  /nix/store/j0l6xc8kfzfbhym8fnz4pjwgx6jwh39g-libdeflate-1.25
     0.2 MB  /nix/store/j6rk4jdh38jpp639kqj0b72fg1pwpr51-pg_net-0.20.0
     0.1 MB  /nix/store/jaril3b15j30x2ha888qk9jhnydgzsiq-pg_jsonschema
     0.1 MB  /nix/store/jbbvm6g2qrlmxwhjshbk4sv5h54jdbx0-safeupdate-1.4
     0.1 MB  /nix/store/jiqlyzpkq2idq9rd4vd9j02b264pg6wm-bzip2-1.0.8
     3.5 MB  /nix/store/jjlds4xk8r6d79gq19pma3f2d0l7c07b-krb5-1.22.1-lib
     0.8 MB  /nix/store/jpz9kf5na20507i3iww35ar9zlwv42qj-krb5-1.22.1-dev
     0.4 MB  /nix/store/jqvri7lc9w4x9i72wmdimlcfh83358sa-libidn2-2.3.8
     3.1 MB  /nix/store/js3xsm649ghc28r1hvrmrwjjghgrs8s5-glibc-2.40-66-bin
     0.1 MB  /nix/store/jvqwfqhinv4glii47fjscj2i0sfxhy9q-plpgsql_check
     0.4 MB  /nix/store/k074vgrqp86mcgd7np0bw2r3i0b0skj8-libssh2-1.11.1
     9.4 MB  /nix/store/k0wfscy8mjfzkhrzm4r6yy8bxs3v4s5w-openssl-3.6.0
     0.3 MB  /nix/store/k9rbngvf2mr5wjksv8k0gyr817al2n2k-pg_repack-1.5.2
     0.1 MB  /nix/store/kajr21iphzdrlab0rlydvxz81wzs82l8-pg_hashids
     0.9 MB  /nix/store/kawf0kmzaj3lvjf8hv2bdc6c3chgm0ay-cracklib-2.10.3
     0.1 MB  /nix/store/kfkqn5rbzbm79h5xs7v8z78is42w73cr-pg_cron
     4.1 MB  /nix/store/kg79jrqc5cpf4y8xdq4skxfhwnwkv4nq-sqlite-3.51.1
     9.7 MB  /nix/store/kgq3d4l0q4yr2n9j1a2595mgfrhrhxin-postgresql-17.6-lib
     0.1 MB  /nix/store/kj1v7szq9avgl06rjccgjqbfqh72fkcf-safeupdate
     0.3 MB  /nix/store/kl39qpw93b7wm4bqyhsnl71vrgz6mp6k-libseccomp-2.6.0-lib
     1.3 MB  /nix/store/kv68n8lzzg5fp7dclrz75ak15hv2pcfd-libtpms-0.10.1
     0.1 MB  /nix/store/l0n6mivzmpyrk3mla7n1xvwwq02jz9f4-vector
     0.2 MB  /nix/store/l6i35y2hlmdz0hvz690h3k4ilq9ahhzy-zlib-1.3.1
     0.7 MB  /nix/store/l9z72935i7gybwhhbvik6639jbb0yff3-pgtap-1.3.3
     0.2 MB  /nix/store/ldn3jg2pz9acw50yr1p7qf9g3ci09h3s-pg_net-0.19.5
   104.1 MB  /nix/store/lj2qmwb1f6s23i99p5r04g7jz0pwby33-wrappers-0.5.5
   105.5 MB  /nix/store/lkb4d1ahif1ap2fhva7r6vz9jddzzkqn-wrappers-0.5.6
    48.1 MB  /nix/store/lx1wsfnfbyf5yvd3917j4q7ni433xppk-wrappers-0.4.4
    53.1 MB  /nix/store/lzfs6hbqms9gm3zgqzp46nfa6h79fgp5-mecab-ipadic-2.7.0-20070801
     0.1 MB  /nix/store/lzkba0gdw8sv63smwpf4fd0i3jbcigz5-find-xml-catalogs-hook
     2.2 MB  /nix/store/m0h60l7is9alkrivf0b75dc6zy4s0q6c-libbpf-1.6.2
     0.2 MB  /nix/store/m1ci1b93s6nysgwia4k049zm76m5h2df-pg_tle-1.3.0
     1.5 MB  /nix/store/m9j8ybi4ll8lbf261hj5rwkck7ik17fk-flex-2.6.4
     0.1 MB  /nix/store/mbb76ijw62506if9caayivz1mc0p3qr0-readline-8.3p1-dev
     0.9 MB  /nix/store/mbmd8w5jiq6sfcs81zadj365fb3sha7w-libgpg-error-1.55
    72.4 MB  /nix/store/mca2vsmjqmsvijdzqx1akz3lv9419ain-systemd-258.2
     0.7 MB  /nix/store/mcbrid72x46miha3jmym9l1dxzijknb4-giflib-5.2.2
     0.2 MB  /nix/store/mglbi4dy4kpx7v1dcgf6iincp5x38hsc-lz4-1.10.0-dev
     0.1 MB  /nix/store/mpa6hjyjr1gmjh1v5m25lqc3f5qydxnw-dns-root-data-2025-04-14
    15.9 MB  /nix/store/mrcx18lcjf77z0l557g1sm46kvrfjx3v-proj-9.7.1
     1.1 MB  /nix/store/mxvqrp4jj6zklxc1i32ra8iapnzynyzc-zstd-1.5.5
     7.8 MB  /nix/store/n2m66vxpkrdpxsmjmnmf73sd6kn2lfda-wrappers
     6.6 MB  /nix/store/n2vnr7ycfk6midbzxcwd28qj3bgb50cz-icu4c-75.1-dev
    48.7 MB  /nix/store/ns98zg5mab04a7d14qyq0bpxbsw6x9fq-wrappers-0.4.5
     3.5 MB  /nix/store/nvsv3nacw4mlyaw57b49k4fdjyfhnryv-bison-3.8.2
     0.1 MB  /nix/store/nw6xfq2zxz51imazqrdq30ic0f88by37-pg_tle
    24.0 MB  /nix/store/nwkn0xg8gif120nxdwpb19wz0a2sj4mg-sfcgal-2.2.0
     3.7 MB  /nix/store/nyknb3pqc2agf6nbcrrsp1yfrccd41sc-pg_jsonschema-0.3.3
     0.5 MB  /nix/store/p17klc3qq4nl9ihfwqfpi8cnqvcf92xz-libxml2-2.15.1-dev
     4.5 MB  /nix/store/p711vqjvd78jz7q6ryzdp5jnnnb48s6j-linux-pam-1.7.1
     0.3 MB  /nix/store/p7j2a2gd8nyw43p0i26ad65zcpa20pcn-vector-0.7.0
     0.9 MB  /nix/store/pdazhhg4l69vz5szllijlpm1ph9i93kq-nettle-3.10.2
     0.1 MB  /nix/store/pknmf91sx9ysc5igw7l84kv5y45fy5s6-overlayfs-on-package
     0.1 MB  /nix/store/pv50jbq0cpf8hzz2078vbzia5l9xbknh-npth-1.8
     2.3 MB  /nix/store/pzqq7d1nnx8xkvccmgl51cf1aqim3x59-openssl-3.6.0-dev
     4.1 MB  /nix/store/q1lr86rzsxxbbqdz8m6bcv94saaz8wlv-bash-5.3p3
     0.2 MB  /nix/store/q351245xgapjqk27v3fanj9ddq91xpax-vector-0.5.1
     3.6 MB  /nix/store/q36009ll4v7ay3xv4na856w715nfrbn8-bash-5.2p26
     0.2 MB  /nix/store/q3xmwl10qhyagvisqxi7vdhxmhf9hw1q-acl-2.3.2
     0.2 MB  /nix/store/qb1aldsdrapflf26anbrjjf0pl3jx4nf-libassuan-3.0.2
     0.4 MB  /nix/store/qi7x1h0ch66wxjz2sdkmpqx9drjd30lf-plpgsql_check-2.7
     0.1 MB  /nix/store/qw2d0aw0jq9halvid5dpnjsgig2gbv5x-protobuf-c-1.5.2-lib
     1.0 MB  /nix/store/r0ba9cj4vknh9lnbrz349sa7ghjilfp0-curl-8.6.0
     0.2 MB  /nix/store/r13c6ad1s5nsxvh6ihx2lvhbqkihnq52-vector-0.6.0
     1.1 MB  /nix/store/r507xylzsr9fz3qskyfwvl1sng0rwpkm-libarchive-3.8.4-lib
     3.5 MB  /nix/store/r6hng8gs4r5pzsx43zhb7lv4vq6ir2v7-gnutls-3.8.11
     0.1 MB  /nix/store/rda6wspk84lmfz61rmjiss47149n6hpq-http
     0.4 MB  /nix/store/rq56abvj404p0zc314w2mwgrrnkl11lg-publicsuffix-list-0-unstable-2025-11-14
     0.2 MB  /nix/store/rzvzc4pzh3i2a9yl5729dmgnwfm90ip3-vector-0.6.2
     0.2 MB  /nix/store/s2qm7a3q47mykijyzjzpjyrr9kh943vr-kmod-31-lib
     0.2 MB  /nix/store/s2r5yc0i2g0m6npmpibcs23jwj8i4ly8-pg_stat_monitor-2.1
     0.7 MB  /nix/store/s48kpwzasghzwp1skd4mdrn5m52h54m7-gmp-with-cxx-6.3.0
     4.4 MB  /nix/store/s8wi3pwc2gw1a0468zpamsvfcl2gbigd-elfutils-0.194
     0.6 MB  /nix/store/sbbffcm8ad1linmjywplw55n26baj2mz-readline-8.3p1
     0.2 MB  /nix/store/sf699257mxqa316sg33j3w2wjcwr701z-util-linux-minimal-2.41.2-login
     1.7 MB  /nix/store/sl9cd2h0iklmmnwq5f3q5bsdmzppzj7g-libwebp-1.6.0
     1.4 MB  /nix/store/snvrlxnzmc3y4xwzpmq1jdqwkzxkb67c-openssl-3.6.0-bin
     0.6 MB  /nix/store/spb76sir6p4ra4ys91m5kf6ccslyzwj4-ngtcp2-1.18.0
     1.2 MB  /nix/store/sqjwi1576l9fyzqn5s5s8bc6v73fsaal-gnum4-1.4.20
     0.1 MB  /nix/store/sws4sb9j3gbp6yfy0mic9fp6w1fv9hgj-pgroonga
     0.1 MB  /nix/store/v9pw8mjzzyg1yby2micbziv570nsszh9-rum
     3.0 MB  /nix/store/vawd4kk3lfqf4430hlcm077b5r2pd74a-gnutar-1.35
     2.7 MB  /nix/store/vaz0prypndg3y6zxmdcpabinwg9dmmq9-libkrb5-1.21.2
     1.2 MB  /nix/store/vjzhdc08d8qkfrw89qrlkm8grpwkl3ln-brotli-1.2.0-lib
     0.1 MB  /nix/store/vl9m2k11dmilfd33pycxrwghv238c3q2-postgis-switch-extra-steps
     0.2 MB  /nix/store/vpj7nxx7l4qkaqh91fwxk2d5jvi5i6v3-zlib-1.3.1-dev
    13.7 MB  /nix/store/vq8i7s691m4gz2dbf0pxcvzdhacq4rhz-pgrouting-3.4.1
     0.1 MB  /nix/store/vsvvxrca39js2a4prv62axrjflp1xrsy-plan_filter-0.1
     0.4 MB  /nix/store/vw4dcj2ingb65q0xg2fdqjjzynx1w23q-json-c-0.18
    16.8 MB  /nix/store/w344znmz4py9xqdradpmmy949w4vnda8-boost-1.87.0
     1.2 MB  /nix/store/w4gfg1899mfj46nw0mn1ybys4hd4h5xw-unbound-1.24.2-lib
     0.3 MB  /nix/store/w52nx55rjmwmmffj05i53xdqs8i4rcyk-vector-0.8.0
     0.9 MB  /nix/store/w54lmld8cnjwvk5nvr9xc280rmz7vi9x-xz-5.8.1
     1.6 MB  /nix/store/wfk1mrpj1r5f7iyihjnh0jjixr900z7y-libxml2-2.15.1
    94.6 MB  /nix/store/wg340np1j8q0md0313iip51kvvrfni85-mecab-naist-jdic-0.6.3b-20111013
     0.4 MB  /nix/store/whfw0m8978id10wxrssb0qf5a8h60z6i-plpgsql_check-2.8
    41.7 MB  /nix/store/wjxpaix0cdpww0bldvzsq2d1bjc6g62b-glibc-2.40-66
    52.2 MB  /nix/store/wnpr3ivisc5pyi34j47j6j91hmv5yyii-wrappers-0.5.0
    29.4 MB  /nix/store/wpw9pwh4pwlikws4smn9arr1ymazwf0g-postgresql-17.6
     0.3 MB  /nix/store/wsg75l5h74gaamnp2my4yqpvkiv42q5w-nghttp2-1.60.0-lib
     0.2 MB  /nix/store/ww8z06wpbmmynqg3g5f74chd7xgfgnpm-xgcc-15.2.0-libgcc
     0.2 MB  /nix/store/wxv36yvbmdislxdj57643yn3bdsp1qzy-pg_net-0.20.3
     0.2 MB  /nix/store/x6vk48m697jal2blaqv3d0swlh7nwqdj-libffi-3.5.2
     0.7 MB  /nix/store/x7srw2qr9fwhhxq3asy647wmsqdgjg9d-libapparmor-4.1.2
     1.1 MB  /nix/store/x95bzii77hcvji341w8vq46qak00hiys-libevent-2.1.12
     5.9 MB  /nix/store/xi5rzbwbiim9a5b9z58m5lgf71h0yn6j-p11-kit-0.25.10
     0.3 MB  /nix/store/xlxkm8l1sfck3bn43c6rlkxh5mf14qvq-pcsclite-2.3.0-lib
     0.1 MB  /nix/store/xwiij0cjf04wd1yv6vfd38zmyrckizdq-getent-glibc-2.40-66
   101.5 MB  /nix/store/xzimmxh0ba962ns8hp3pqsklmikfcxjv-wrappers-0.5.4
   129.4 MB  /nix/store/y182xw6ad3jfzc12444vzl6c8agi0qwa-kytea-0.4.7
     0.1 MB  /nix/store/y44x4zsjyhhl8c90xw4ca2yh3zihb7l8-wal2json
     0.1 MB  /nix/store/y904darkh82m6pmpjr47346f19xr7f82-supabase_vault-0.3.1
     0.2 MB  /nix/store/yavi60qz9ls7mjf87mkhad621l9p2d4l-xgcc-13.2.0-libgcc
     0.1 MB  /nix/store/yfpgmqjdly95vcc3b99jwmxc6sy4ap8s-pg_hashids-1.3.0-cd0e1b31d52b394a0df64079406a14a4f7387cd6
   101.4 MB  /nix/store/yjjblr561970bfqf1ivqpxbsrggfs9gl-wrappers-0.5.3
     0.2 MB  /nix/store/ymav8nb29vsdryddi435xcig3pk7i00q-zlib-1.3.1
     0.1 MB  /nix/store/ymx0vr21lr448p24bjww9i2kkp2530fj-pg_partman
     0.3 MB  /nix/store/ywcq3n887napm0r2m7z9grb7zxgf5ila-libmicrohttpd-1.0.2
     0.2 MB  /nix/store/yzkhz8rf3dprxq4q2plscs9pxxwp45ms-pgsodium-3.0.4
     0.1 MB  /nix/store/yzwnjy7kaxgnw9k1vwnmnzsnww36lld1-pg_stat_monitor
     1.4 MB  /nix/store/z00f3blsymr76c6h330qgpxx55k44vfi-libgcrypt-1.11.2-lib
     0.2 MB  /nix/store/z2320501hq8agbhi1mhhsyynyacx25bx-libxslt-1.1.45-dev
     0.1 MB  /nix/store/z24bji14i32kjlkv8qqmzs24va1glrkx-pgmq
     0.1 MB  /nix/store/z29dc8s7qrlr4jgkxw12xs8ph0vgx2f0-hypopg-1.4.1
     0.1 MB  /nix/store/zd2fh925wfhbnj1gl3ga1ihv9ahagq8x-pgaudit-17.1
     0.7 MB  /nix/store/zdis0d8iacya0izy3vi7jmhjz67y8cf6-ncurses-6.5-man
    32.0 MB  /nix/store/zfx1x3nlbrq4dh5wk6ivb1h1akxvkk7l-gdal-3.8.5
     2.2 MB  /nix/store/zm99a79bffnw4cmpwc7a5cwwn8kwc5cv-libunistring-1.4.1
     0.2 MB  /nix/store/zwid5cwjv2krpy0cxkr5x3hh4f30dd46-pg_net-0.14.0
     0.1 MB  /nix/store/zwjas74wd72shn8g3nln6b90pc42rrjl-plan_filter
     0.1 MB  /nix/store/zyps6ggmhj68fysh3c5q7s10sv5baf5l-keyutils-1.6.3-lib

New Dependencies (closure: 2206.6 MB):
     0.2 MB  /nix/store/04jcv2frdfa6nlphwp39flrsrjrn0nw3-pg_net-0.20.4
     4.2 MB  /nix/store/04kpg6rvmahpgmhz4dbzad9nm8y1rpvb-ncurses-6.5
     0.1 MB  /nix/store/08izg82f0fl71sdaaaf0l2zr01vwq0dd-pgrouting
     6.1 MB  /nix/store/09xsph5dvy733610lrgn2d4rgc5ibhig-kbd-2.9.0
     2.9 MB  /nix/store/0fd2vgzg0qlbnsvr3gyhg1wbzsg2k08w-cryptsetup-2.8.1
    59.5 MB  /nix/store/0gfsfmgbyy35akc4waha0cq3gf6xan1r-perl-5.42.0
     6.4 MB  /nix/store/0kfbzhd8qdsxsd4qf9dkpcd3f916krvr-openssl-3.0.13
     0.1 MB  /nix/store/0ljg4yw8siyvsivyg457w2skp0bgd4xk-keyutils-1.6.3-lib
     0.2 MB  /nix/store/0vmif2nanhgi07807i8bjymqj664xcwd-libpsl-0.21.5
    41.5 MB  /nix/store/10pd749c2v3m35d4hk5xdfylyfr1hzqz-glibc-2.39-5
     0.5 MB  /nix/store/15vsq4jac260cmngwz4k7hjg41niz0y1-rum-1.3
     0.2 MB  /nix/store/1g0adrdq8i4hlsq4yfndwv4xqhaaxl8r-pg_cron-1.6.4
     0.1 MB  /nix/store/1in5qfnpa78ziqh1c1kqrcci2241rs91-supabase_vault
     0.3 MB  /nix/store/1m2pfwirwdq1cy28v2scw57ry5aji017-kmod-31
     0.3 MB  /nix/store/1n168y3gxdn8b4jrfk5m9m71hq3xm2am-util-linux-minimal-2.41.2-mount
     0.7 MB  /nix/store/1qhz8fshzn41sk26pyvc30cpg7b837cf-gmp-with-cxx-6.3.0
     2.0 MB  /nix/store/1rd6vhxhfblbk3dddi636xjw3avs5z0p-pcre2-10.46
     0.2 MB  /nix/store/1snbg7fzx1bv5lpqxr7icn3mm6qan6pc-attr-2.5.2
     0.3 MB  /nix/store/1x42ica3rv9bvfvfabp8d4h19shwjfkl-pg_tle-1.4.0
     0.1 MB  /nix/store/24av8nlqsnmmkjb49lhl5d8kjv399kz4-http-1.6.1
     1.9 MB  /nix/store/27g206wjs60cdzsvxvv6ncpcjprk8d6r-libjpeg-turbo-3.1.3
     0.3 MB  /nix/store/2dsn4zffda2ivz2f5mxlwpfi8mb1w9yf-systemd-258.2-dev
     0.4 MB  /nix/store/2p5qjk1lznfc13qwn2skc264zgh4c3xg-expat-2.7.3
     0.1 MB  /nix/store/30gwlrinmvi0jzkr7vphdi3jd2bkhjs8-index_advisor
     0.1 MB  /nix/store/31blwigfmra9kcxqhkynddzvyggqqb3p-pgjwt-0.2.0
     0.5 MB  /nix/store/36ilshys1vqzxy...*[Comment body truncated]*

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Previous code sent Postgres output to stdout and this was mixed with pgctld output.

This patch changes that and now only pgctld output is written to stdout. This means that we need to capture the log output by reading the file or mounting a volume where we can read the data.

I am unsure how logs are collected, so we might either send all output to stdout again (which will mix pgctld and postgres output), or send one of them to stdout (depending on how the log collectors operate) and require the other to be read explicitly.

@mmlb

mmlb commented May 27, 2026

Copy link
Copy Markdown
Collaborator

This looks pretty good to me, I've got some follow ups that I think make sense but better to get this PR in and do so later (mostly minor nits, but I suspect we can drop all the Dockerfiles-* and have just the one multi-stage Dockerfile and use --target for multigres vs plain, this way we don't need to worry about remembering to build base before multigres)

@mmlb

mmlb commented May 27, 2026

Copy link
Copy Markdown
Collaborator

@mkindahl I tried restarting the failed CI builds and noticed that the failures are real issues in Dockerfile-supabase (for example syntax should be 1.4 not 1.3 because the heredoc syntax was in 1.3-labs and graduated in 1.4, maybe some other issues too).

I tried fixing it and then I ended up trying out putting everything all into one Dockerfile and fell down the rabbit hole here. It's not too bad IMO. I'm going to drop it into here so you can take a quick look if nothing stands out I can throw it into this PR. This one Dockerfile can be used to build PG15, PG17, PG17-orioledb, PG17-multigres, PG17-orioledb-multigres and there's no issue with running 2 commands for multigres.

Unfortunately I think that means some of your changes need to backed off since we'd want to make use of --target again.

Dockerfile
# syntax=docker/dockerfile:1.4
# 1.4: minimum version for heredoc support in RUN (used for nix config below)
# Supabase PostgreSQL image with Nix extensions — parameterised by major version.
#
# Build (defaults to PostgreSQL 17):
#   docker build --build-arg=PG_VERSION=17 --target=postgres -t supabase-postgres:17 .
#
# Build for a different PostgreSQL version:
#   docker build --build-arg=PG_VERSION=15 --target=postgres -t supabase-postgres:15 .
#
# Build for Multigres:
#   docker build --build-arg=PG_VERSION=17 --target=multigres -t supabase-multigres:17 .

# Put all ARGs up top for better discoverability
# Use non-versioned `ARG THE_ARG` in the layer that uses it to get the ref to this one
ARG ALPINE_VERSION=3.23
ARG GOSU_VERSION=1.19
ARG PGCTLD_REV=1e3bad798972600778ee27eb08ab7d34cc8be8e9 # Pinned to the commit that introduced --pg-initdb-sql-dirs (MUL-484)
ARG PG_VERSION=17
ARG VARIANT

###################################
#         Postgres + Exts         #
###################################
FROM alpine:${ALPINE_VERSION} AS pg
ARG PG_VERSION
ARG VARIANT

RUN <<EOF
case $PG_VERSION:$VARIANT in
 15: | 17:) ;;
 17:orioledb) VARIANT=$VARIANT-;;
 15:orioledb) echo "OrioleDB not supported on PG17" >&2 && exit 1;;
 17:*) echo "Unknown VARIANT ($VARIANT) only orioledb supported" >&2 && exit 1;;
 *) echo "Unknown PG_VERSION ($PG_VERSION) only 15,17 supported" >&2 && exit 1;;
esac
EOF

# Install dependencies for nix installer (coreutils for GNU cp, sudo for installer)
RUN apk add --no-cache \
    bash \
    coreutils \
    curl \
    shadow \
    sudo \
    xz

# Create nix config
RUN cat >/tmp/extra-nix.conf <<EOF
extra-experimental-features = nix-command flakes
extra-substituters = https://nix-postgres-artifacts.s3.amazonaws.com
extra-trusted-public-keys = nix-postgres-artifacts:dGZlQOvKcNEjvT7QEAJbcV6b6uk7VF/hWMjhYleiaLI=
EOF
RUN curl -L https://releases.nixos.org/nix/nix-2.34.6/install | sh -s -- --daemon --no-channel-add --yes --nix-extra-conf-file /tmp/extra-nix.conf
ENV PATH="$PATH:/nix/var/nix/profiles/default/bin"
RUN nix --version

WORKDIR /nixpg
COPY . .

# Build PostgreSQL with extensions
RUN attr=psql_$VARIANT${PG_VERSION}_slim/bin && \
    echo Building $attr && \
    nix profile add path:.#$attr

# Build groonga and copy plugins
RUN nix profile add path:.#supabase-groonga && \
    mkdir -p /tmp/groonga-plugins && \
    cp -r /nix/var/nix/profiles/default/lib/groonga/plugins /tmp/groonga-plugins/

RUN nix store gc && nix store optimise

################################################
#                      Gosu                    #
################################################
FROM golang:1.26-alpine${ALPINE_VERSION} AS gosu
ARG GOSU_VERSION

RUN apk add --no-cache curl git
# Build gosu from source
RUN git clone --depth 1 --branch "${GOSU_VERSION}" https://github.com/tianon/gosu.git /gosu && \
    cd /gosu && \
    CGO_ENABLED=0 go build -ldflags="-s -w" -o /usr/local/bin/gosu . && \
    chmod +x /usr/local/bin/gosu && \
    /usr/local/bin/gosu --version

#########################################
#            Production Image           #
#########################################
FROM alpine:${ALPINE_VERSION} AS postgres
ARG ALPINE_VERSION
ARG PG_VERSION

# Install minimal runtime dependencies
RUN apk add --no-cache \
    bash \
    curl \
    shadow \
    su-exec \
    tzdata \
    musl-locales \
    musl-locales-lang \
    && rm -rf /var/cache/apk/*

# Create postgres user/group
RUN addgroup -S postgres && \
    adduser -S -G postgres -h /var/lib/postgresql -s /bin/bash postgres && \
    addgroup -S wal-g && \
    adduser -S -G wal-g -s /bin/bash wal-g && \
    adduser postgres wal-g

# Copy Nix store and profiles from builder (profile already created by nix profile install)
COPY --from=pg /nix /nix

# Copy groonga plugins
COPY --from=pg /tmp/groonga-plugins/plugins /usr/lib/groonga/plugins

# Copy gosu
COPY --from=gosu /usr/local/bin/gosu /usr/local/bin/gosu

# Setup PostgreSQL directories
RUN mkdir -p /usr/lib/postgresql/bin \
    /usr/lib/postgresql/share/postgresql \
    /usr/share/postgresql \
    /var/lib/postgresql/data \
    /var/run/postgresql \
    && chown -R postgres:postgres /usr/lib/postgresql \
    && chown -R postgres:postgres /var/lib/postgresql \
    && chown -R postgres:postgres /usr/share/postgresql \
    && chown -R postgres:postgres /var/run/postgresql

# Create symbolic links for binaries
RUN for f in /nix/var/nix/profiles/default/bin/*; do \
        ln -sf "$f" /usr/lib/postgresql/bin/ 2>/dev/null || true; \
        ln -sf "$f" /usr/bin/ 2>/dev/null || true; \
    done

# Create symbolic links for PostgreSQL shares
RUN ln -sf /nix/var/nix/profiles/default/share/postgresql/* /usr/lib/postgresql/share/postgresql/ 2>/dev/null || true && \
    ln -sf /nix/var/nix/profiles/default/share/postgresql/* /usr/share/postgresql/ 2>/dev/null || true && \
    ln -sf /usr/lib/postgresql/share/postgresql/timezonesets /usr/share/postgresql/timezonesets 2>/dev/null || true

# Set permissions
RUN chown -R postgres:postgres /usr/lib/postgresql && \
    chown -R postgres:postgres /usr/share/postgresql

# Setup configs
COPY --chown=postgres:postgres ansible/files/postgresql_config/postgresql.conf.j2 /etc/postgresql/postgresql.conf
COPY --chown=postgres:postgres ansible/files/postgresql_config/pg_hba.conf.j2 /etc/postgresql/pg_hba.conf
COPY --chown=postgres:postgres ansible/files/postgresql_config/pg_ident.conf.j2 /etc/postgresql/pg_ident.conf
COPY --chown=postgres:postgres ansible/files/postgresql_config/conf.d /etc/postgresql/postgresql.conf.d
COPY --chown=postgres:postgres ansible/files/postgresql_config/postgresql-stdout-log.conf /etc/postgresql/logging.conf
COPY --chown=postgres:postgres ansible/files/postgresql_config/supautils.conf.j2 /etc/postgresql-custom/supautils.conf
COPY --chown=postgres:postgres ansible/files/postgresql_extension_custom_scripts /etc/postgresql-custom/extension-custom-scripts
COPY --chown=postgres:postgres ansible/files/pgsodium_getkey_urandom.sh.j2 /usr/lib/postgresql/bin/pgsodium_getkey.sh
COPY --chown=postgres:postgres ansible/files/postgresql_config/custom_walg.conf /etc/postgresql-custom/wal-g.conf
COPY --chown=postgres:postgres ansible/files/postgresql_config/custom_read_replica.conf /etc/postgresql-custom/read-replica.conf
COPY --chown=postgres:postgres ansible/files/walg_helper_scripts/wal_fetch.sh /home/postgres/wal_fetch.sh
COPY ansible/files/walg_helper_scripts/wal_change_ownership.sh /root/wal_change_ownership.sh

# Configure PostgreSQL settings
RUN sed -i \
    -e "s|#unix_socket_directories = '/tmp'|unix_socket_directories = '/var/run/postgresql'|g" \
    -e "s|#session_preload_libraries = ''|session_preload_libraries = 'supautils'|g" \
    -e "s|#include = '/etc/postgresql-custom/supautils.conf'|include = '/etc/postgresql-custom/supautils.conf'|g" \
    -e "s|#include = '/etc/postgresql-custom/wal-g.conf'|include = '/etc/postgresql-custom/wal-g.conf'|g" /etc/postgresql/postgresql.conf && \
    echo "pgsodium.getkey_script= '/usr/lib/postgresql/bin/pgsodium_getkey.sh'" >> /etc/postgresql/postgresql.conf && \
    echo "vault.getkey_script= '/usr/lib/postgresql/bin/pgsodium_getkey.sh'" >> /etc/postgresql/postgresql.conf && \
    chown -R postgres:postgres /etc/postgresql-custom && \
    ln -s /etc/postgresql/postgresql.conf.d /etc/postgresql-custom/conf.d

# pg17+ does not ship timescaledb or plv8; db_user_namespace was removed in pg17.
# Applied conditionally so the same Dockerfile works for pg15 (where these are valid).
RUN if [[ "${PG_VERSION#*-}" -ge 17 ]]; then \
        sed -i 's/ timescaledb,//g; s/ plv8,//g' /etc/postgresql/postgresql.conf && \
        sed -i 's/db_user_namespace = off/#db_user_namespace = off/g' /etc/postgresql/postgresql.conf && \
        sed -i 's/ timescaledb,//g; s/ plv8,//g' /etc/postgresql-custom/supautils.conf; \
    fi

# OrioleDB stuff if building it
RUN [[ "$VARIANT-" != orioledb ]] && exit 0; \
    sed -i 's/\(shared_preload_libraries.*\)'\''\(.*\)$/\1, orioledb'\''\2/' "/etc/postgresql/postgresql.conf" && \
    echo "default_table_access_method = 'orioledb'" >> "/etc/postgresql/postgresql.conf" && \
    sed -i 's/ postgis,//g; s/ pgrouting,//g' "/etc/postgresql-custom/supautils.conf" && \
    echo "CREATE EXTENSION orioledb;" > /docker-entrypoint-initdb.d/init-scripts/00-pre-init.sql && \
    chown postgres:postgres /docker-entrypoint-initdb.d/init-scripts/00-pre-init.sql && \
    true

# Include schema migrations
COPY migrations/db /docker-entrypoint-initdb.d/
COPY ansible/files/pgbouncer_config/pgbouncer_auth_schema.sql /docker-entrypoint-initdb.d/init-scripts/00-schema.sql
COPY ansible/files/stat_extension.sql /docker-entrypoint-initdb.d/migrations/00-extension.sql

ADD --chmod=0755 \
    https://raw.githubusercontent.com/docker-library/postgres/6edb0a8c4def40c371514b34aef9037ec82d9110/${PG_VERSION}/alpine${ALPINE_VERSION}/docker-entrypoint.sh \
    /usr/local/bin/docker-entrypoint.sh

# Setup pgsodium key script
RUN mkdir -p /usr/share/postgresql/extension/ && \
    ln -s /usr/lib/postgresql/bin/pgsodium_getkey.sh /usr/share/postgresql/extension/pgsodium_getkey && \
    chmod +x /usr/lib/postgresql/bin/pgsodium_getkey.sh

# Environment variables
ENV PATH="/nix/var/nix/profiles/default/bin:/usr/lib/postgresql/bin:${PATH}"
ENV PGDATA=/var/lib/postgresql/data
ENV POSTGRES_HOST=/var/run/postgresql
ENV POSTGRES_USER=supabase_admin
ENV POSTGRES_DB=postgres
ENV POSTGRES_INITDB_ARGS="--allow-group-access --locale-provider=icu --encoding=UTF-8 --icu-locale=en_US.UTF-8"
ENV LANG=en_US.UTF-8
ENV LANGUAGE=en_US:en
ENV LC_ALL=en_US.UTF-8
ENV GRN_PLUGINS_DIR=/usr/lib/groonga/plugins
# Point to minimal glibc locales included in slim Nix package for initdb locale support
ENV LOCALE_ARCHIVE=/nix/var/nix/profiles/default/lib/locale/locale-archive

# Marks the container unhealthy after 10 failed pg_isready probes, which blocks
# dependent services in Docker Compose (depends_on: condition: service_healthy).
# Kubernetes ignores Docker HEALTHCHECK entirely — use readinessProbe in the Pod spec.
HEALTHCHECK --interval=2s --timeout=2s --retries=10 CMD pg_isready -U postgres -h localhost

# SIGINT triggers PostgreSQL smart shutdown: waits for active sessions to finish
# before stopping. This avoids interrupting in-flight transactions but can delay
# pod termination if long-running queries are active.
# Consider SIGTERM (fast shutdown) to disconnect clients immediately, which
# respects Kubernetes terminationGracePeriodSeconds more predictably.
STOPSIGNAL SIGINT
EXPOSE 5432

# No USER directive: the entrypoint starts as root to fix volume ownership and
# set up permissions, then drops to the postgres user via gosu before exec'ing
# the postgres process. This follows the standard official PostgreSQL image pattern.
ENTRYPOINT ["docker-entrypoint.sh"]
CMD ["postgres", "-D", "/etc/postgresql"]

##################################################
##                     pgctld                   ##
##################################################
FROM golang:1.25-alpine${ALPINE_VERSION} AS pgctld
ARG PGCTLD_REV

RUN apk add --no-cache git

RUN git clone https://github.com/multigres/multigres.git /multigres && \
    cd /multigres && \
    git checkout ${PGCTLD_REV} && \
    # Copy pico CSS assets before build (mirrors pgctld.nix preBuild step)
    cp external/pico/pico.* go/common/web/templates/css/ 2>/dev/null || true && \
    CGO_ENABLED=0 go build -ldflags="-s -w" -o /usr/local/bin/pgctld ./go/cmd/pgctld


##########################
##       MULTIGRES      ##
##########################
FROM postgres AS multigres

RUN if [ "$(postgres --version | awk -F. '{print $1}')" != 'postgres (PostgreSQL) 17' ]; then \
      echo "Multigres only supports PG17, got -->$(postgres --version)<--" >&2; \
      exit 1; \
    fi

# Install pgbackrest (available in Alpine community repo)
RUN apk add --no-cache pgbackrest

# Copy pgctld binary; keep it separate so the wrapper script can reference it cleanly
COPY --from=pgctld /usr/local/bin/pgctld /usr/local/bin/pgctld-bin

# pgctld config template — /etc/pgctld is a mount point in k8s so use a custom dir
COPY docker/pgctld/postgresql.conf.tmpl /etc/pgctld-custom/postgresql.conf.tmpl

# Wrapper: injects --postgres-config-template on every pgctld call so unmodified
# k8s manifests and local provisioner commands work without extra flags
COPY --chmod=0755 docker/pgctld/pgctld /usr/local/bin/pgctld

# /etc/postgresql/postgresql.conf is not modified here: pgctld renders its own
# config from postgresql.conf.tmpl and passes it directly to PostgreSQL, so the
# supabase base config (including wal-g and data_directory settings) is never loaded.

# wal-g is not used in Multigres (pgbackrest handles backups); remove inherited files.
RUN rm -f \
    /etc/postgresql-custom/wal-g.conf \
    /home/postgres/wal_fetch.sh \
    /root/wal_change_ownership.sh

# No HEALTHCHECK defined here: inherits the probe from the supabase base image.
# Kubernetes ignores Docker HEALTHCHECK entirely — use readinessProbe in the Pod spec.
# STOPSIGNAL inherited from supabase base image (SIGINT — smart shutdown).
USER postgres

# pgctld is the cluster lifecycle manager for Multigres: it handles initdb,
# config templating, replication setup, and coordinated restarts. Running it
# as PID 1 ensures it receives stop signals directly and can shut down
# PostgreSQL cleanly before the container exits.
ENTRYPOINT ["/usr/local/bin/pgctld"]

##########################################
##                USELESS               ##
##########################################
FROM scratch
RUN echo "You have tried to build this image without specifying --target" >&2 && \
    echo "Either postgres or multigres is required" >&2 && \
    echo "P.S.: You can specify PG version with --build-arg=PG_VERSION=15|17" >&2 && \
    echo "P.P.S: You can build orioledb varian with --build-arg=VARIANT=orioledb" >&2 && \
    exit 1
diff Dockerfile-supabase Dockerfile
--- Dockerfile-supabase	2026-05-27 19:26:43.324333422 -0400
+++ Dockerfile	2026-05-27 19:31:23.248698133 -0400
@@ -1,21 +1,43 @@
-# syntax=docker/dockerfile:1.3
-# 1.3: minimum version for heredoc support in RUN (used for nix config below)
+# syntax=docker/dockerfile:1.4
+# 1.4: minimum version for heredoc support in RUN (used for nix config below)
 # Supabase PostgreSQL image with Nix extensions — parameterised by major version.
 #
 # Build (defaults to PostgreSQL 17):
-#   docker build -f Dockerfile-supabase -t supabase-postgres:17 .
+#   docker build --target=postgres -t supabase-postgres:17 .
 #
 # Build for a different PostgreSQL version:
-#   docker build -f Dockerfile-supabase --build-arg PG_VERSION=15 -t supabase-postgres:15 .
+#   docker build --build-arg=PG_VERSION=15 --target=postgres -t supabase-postgres:15 .
+#
+# Build for OrioleDB:
+#   docker build --build-arg=PG_VERSION=17 --build-arg=VARIANT=orioledb --target=postgres -t supabase-orioledb:17 .
+#
+# Build for Multigres:
+#   docker build --build-arg=PG_VERSION=17 --target=multigres -t supabase-multigres:17 .
 
+# Put all ARGs up top for better discoverability
+# Use non-versioned `ARG THE_ARG` in the layer that uses it to get the ref to this one
+ARG ALPINE_VERSION=3.23
+ARG GOSU_VERSION=1.19
+ARG PGCTLD_REV=1e3bad798972600778ee27eb08ab7d34cc8be8e9 # Pinned to the commit that introduced --pg-initdb-sql-dirs (MUL-484)
 ARG PG_VERSION=17
+ARG VARIANT
 
-####################
-# Stage 1: Nix builder
-####################
-FROM alpine:3.23 AS nix-builder
-
+###################################
+#         Postgres + Exts         #
+###################################
+FROM alpine:${ALPINE_VERSION} AS pg
 ARG PG_VERSION
+ARG VARIANT
+
+RUN <<EOF
+case $PG_VERSION:$VARIANT in
+ 15: | 17:) ;;
+ 17:orioledb) VARIANT=$VARIANT-;;
+ 15:orioledb) echo "OrioleDB not supported on PG17" >&2 && exit 1;;
+ 17:*) echo "Unknown VARIANT ($VARIANT) only orioledb supported" >&2 && exit 1;;
+ *) echo "Unknown PG_VERSION ($PG_VERSION) only 15,17 supported" >&2 && exit 1;;
+esac
+EOF
 
 # Install dependencies for nix installer (coreutils for GNU cp, sudo for installer)
 RUN apk add --no-cache \
@@ -26,63 +48,50 @@
     sudo \
     xz
 
-# Create users (Alpine syntax)
-RUN addgroup -S postgres && \
-    adduser -S -h /var/lib/postgresql -s /bin/bash -G postgres postgres && \
-    addgroup -S wal-g && \
-    adduser -S -s /bin/bash -G wal-g wal-g
-
 # Create nix config
-RUN cat <<EOF > /tmp/extra-nix.conf
+RUN cat >/tmp/extra-nix.conf <<EOF
 extra-experimental-features = nix-command flakes
 extra-substituters = https://nix-postgres-artifacts.s3.amazonaws.com
 extra-trusted-public-keys = nix-postgres-artifacts:dGZlQOvKcNEjvT7QEAJbcV6b6uk7VF/hWMjhYleiaLI=
 EOF
 RUN curl -L https://releases.nixos.org/nix/nix-2.34.6/install | sh -s -- --daemon --no-channel-add --yes --nix-extra-conf-file /tmp/extra-nix.conf
-ENV PATH="${PATH}:/nix/var/nix/profiles/default/bin"
+ENV PATH="$PATH:/nix/var/nix/profiles/default/bin"
 RUN nix --version
 
 WORKDIR /nixpg
 COPY . .
 
 # Build PostgreSQL with extensions
-RUN nix profile add path:.#psql_${PG_VERSION}_slim/bin
-
-RUN nix store gc
+RUN attr=psql_$VARIANT${PG_VERSION}_slim/bin && \
+    echo Building $attr && \
+    nix profile add path:.#$attr
 
 # Build groonga and copy plugins
 RUN nix profile add path:.#supabase-groonga && \
     mkdir -p /tmp/groonga-plugins && \
     cp -r /nix/var/nix/profiles/default/lib/groonga/plugins /tmp/groonga-plugins/
 
-RUN nix store gc
+RUN nix store gc && nix store optimise
 
-####################
-# Stage 2: Gosu builder
-####################
-FROM alpine:3.23 AS gosu-builder
-
-ARG TARGETARCH
-ARG GOSU_VERSION=1.19
-ARG GO_VERSION=1.26.1
+################################################
+#                      Gosu                    #
+################################################
+FROM golang:1.26-alpine${ALPINE_VERSION} AS gosu
+ARG GOSU_VERSION
 
 RUN apk add --no-cache curl git
-
-# Install Go
-RUN curl -fsSL "https://go.dev/dl/go${GO_VERSION}.linux-${TARGETARCH}.tar.gz" | tar -C /usr/local -xz
-ENV PATH="/usr/local/go/bin:${PATH}"
-
 # Build gosu from source
 RUN git clone --depth 1 --branch "${GOSU_VERSION}" https://github.com/tianon/gosu.git /gosu && \
     cd /gosu && \
     CGO_ENABLED=0 go build -ldflags="-s -w" -o /usr/local/bin/gosu . && \
-    chmod +x /usr/local/bin/gosu
-
-####################
-# Stage 3: Final production image
-####################
-FROM alpine:3.23 AS production
+    chmod +x /usr/local/bin/gosu && \
+    /usr/local/bin/gosu --version
 
+#########################################
+#            Production Image           #
+#########################################
+FROM alpine:${ALPINE_VERSION} AS postgres
+ARG ALPINE_VERSION
 ARG PG_VERSION
 
 # Install minimal runtime dependencies
@@ -104,13 +113,13 @@
     adduser postgres wal-g
 
 # Copy Nix store and profiles from builder (profile already created by nix profile install)
-COPY --from=nix-builder /nix /nix
+COPY --from=pg /nix /nix
 
 # Copy groonga plugins
-COPY --from=nix-builder /tmp/groonga-plugins/plugins /usr/lib/groonga/plugins
+COPY --from=pg /tmp/groonga-plugins/plugins /usr/lib/groonga/plugins
 
 # Copy gosu
-COPY --from=gosu-builder /usr/local/bin/gosu /usr/local/bin/gosu
+COPY --from=gosu /usr/local/bin/gosu /usr/local/bin/gosu
 
 # Setup PostgreSQL directories
 RUN mkdir -p /usr/lib/postgresql/bin \
@@ -165,20 +174,28 @@
 
 # pg17+ does not ship timescaledb or plv8; db_user_namespace was removed in pg17.
 # Applied conditionally so the same Dockerfile works for pg15 (where these are valid).
-RUN if [ "${PG_VERSION}" -ge 17 ]; then \
+RUN if [ "$PG_VERSION" -ge 17 ]; then \
         sed -i 's/ timescaledb,//g; s/ plv8,//g' /etc/postgresql/postgresql.conf && \
         sed -i 's/db_user_namespace = off/#db_user_namespace = off/g' /etc/postgresql/postgresql.conf && \
         sed -i 's/ timescaledb,//g; s/ plv8,//g' /etc/postgresql-custom/supautils.conf; \
     fi
 
+# OrioleDB stuff if building it
+RUN [[ "$VARIANT-" != orioledb ]] && exit 0; \
+    sed -i 's/\(shared_preload_libraries.*\)'\''\(.*\)$/\1, orioledb'\''\2/' "/etc/postgresql/postgresql.conf" && \
+    echo "default_table_access_method = 'orioledb'" >> "/etc/postgresql/postgresql.conf" && \
+    sed -i 's/ postgis,//g; s/ pgrouting,//g' "/etc/postgresql-custom/supautils.conf" && \
+    echo "CREATE EXTENSION orioledb;" > /docker-entrypoint-initdb.d/init-scripts/00-pre-init.sql && \
+    chown postgres:postgres /docker-entrypoint-initdb.d/init-scripts/00-pre-init.sql && \
+    true
+
 # Include schema migrations
 COPY migrations/db /docker-entrypoint-initdb.d/
 COPY ansible/files/pgbouncer_config/pgbouncer_auth_schema.sql /docker-entrypoint-initdb.d/init-scripts/00-schema.sql
 COPY ansible/files/stat_extension.sql /docker-entrypoint-initdb.d/migrations/00-extension.sql
 
-# Add entrypoint script from the official postgres Docker library (version-matched)
 ADD --chmod=0755 \
-    https://raw.githubusercontent.com/docker-library/postgres/6edb0a8c4def40c371514b34aef9037ec82d9110/${PG_VERSION}/alpine3.23/docker-entrypoint.sh \
+    https://raw.githubusercontent.com/docker-library/postgres/6edb0a8c4def40c371514b34aef9037ec82d9110/${PG_VERSION}/alpine${ALPINE_VERSION}/docker-entrypoint.sh \
     /usr/local/bin/docker-entrypoint.sh
 
 # Setup pgsodium key script
@@ -218,3 +235,73 @@
 # the postgres process. This follows the standard official PostgreSQL image pattern.
 ENTRYPOINT ["docker-entrypoint.sh"]
 CMD ["postgres", "-D", "/etc/postgresql"]
+
+##################################################
+##                     pgctld                   ##
+##################################################
+FROM golang:1.25-alpine${ALPINE_VERSION} AS pgctld
+ARG PGCTLD_REV
+
+RUN apk add --no-cache git
+
+RUN git clone https://github.com/multigres/multigres.git /multigres && \
+    cd /multigres && \
+    git checkout ${PGCTLD_REV} && \
+    # Copy pico CSS assets before build (mirrors pgctld.nix preBuild step)
+    cp external/pico/pico.* go/common/web/templates/css/ 2>/dev/null || true && \
+    CGO_ENABLED=0 go build -ldflags="-s -w" -o /usr/local/bin/pgctld ./go/cmd/pgctld
+
+
+##########################
+##       MULTIGRES      ##
+##########################
+FROM postgres AS multigres
+
+RUN if [ "$(postgres --version | awk -F. '{print $1}')" != 'postgres (PostgreSQL) 17' ]; then \
+      echo "Multigres only supports PG17, got -->$(postgres --version)<--" >&2; \
+      exit 1; \
+    fi
+
+# Install pgbackrest (available in Alpine community repo)
+RUN apk add --no-cache pgbackrest
+
+# Copy pgctld binary; keep it separate so the wrapper script can reference it cleanly
+COPY --from=pgctld /usr/local/bin/pgctld /usr/local/bin/pgctld-bin
+
+# pgctld config template — /etc/pgctld is a mount point in k8s so use a custom dir
+COPY docker/pgctld/postgresql.conf.tmpl /etc/pgctld-custom/postgresql.conf.tmpl
+
+# Wrapper: injects --postgres-config-template on every pgctld call so unmodified
+# k8s manifests and local provisioner commands work without extra flags
+COPY --chmod=0755 docker/pgctld/pgctld /usr/local/bin/pgctld
+
+# /etc/postgresql/postgresql.conf is not modified here: pgctld renders its own
+# config from postgresql.conf.tmpl and passes it directly to PostgreSQL, so the
+# supabase base config (including wal-g and data_directory settings) is never loaded.
+
+# wal-g is not used in Multigres (pgbackrest handles backups); remove inherited files.
+RUN rm -f \
+    /etc/postgresql-custom/wal-g.conf \
+    /home/postgres/wal_fetch.sh \
+    /root/wal_change_ownership.sh
+
+# No HEALTHCHECK defined here: inherits the probe from the supabase base image.
+# Kubernetes ignores Docker HEALTHCHECK entirely — use readinessProbe in the Pod spec.
+# STOPSIGNAL inherited from supabase base image (SIGINT — smart shutdown).
+USER postgres
+
+# pgctld is the cluster lifecycle manager for Multigres: it handles initdb,
+# config templating, replication setup, and coordinated restarts. Running it
+# as PID 1 ensures it receives stop signals directly and can shut down
+# PostgreSQL cleanly before the container exits.
+ENTRYPOINT ["/usr/local/bin/pgctld"]
+
+##########################################
+##                USELESS               ##
+##########################################
+FROM scratch
+RUN echo "You have tried to build this image without specifying --target" >&2 && \
+    echo "Either postgres or multigres is required" >&2 && \
+    echo "P.S.: You can specify PG version with --build-arg=PG_VERSION=15|17" >&2 && \
+    echo "P.P.S: You can build orioledb varian with --build-arg=VARIANT=orioledb" >&2 && \
+    exit 1

@mkindahl

Copy link
Copy Markdown
Author

This looks pretty good to me, I've got some follow ups that I think make sense but better to get this PR in and do so later (mostly minor nits, but I suspect we can drop all the Dockerfiles-* and have just the one multi-stage Dockerfile and use --target for multigres vs plain, this way we don't need to worry about remembering to build base before multigres)

Ah. The main reason for separating this into its own Dockerfile was precisely to have a more streamlined workflow. If a single Dockerfile is created for all the different images, it means we have a monolith that is hard to maintain (in my opinion, of course.)

My thinking was that if we have a good "base", then other projects should be able to build on top of that, even if they are not in the same repo, and having a separate Dockerfile for Multigres creates a good example for how this could be done.

@mkindahl

Copy link
Copy Markdown
Author

@mkindahl I tried restarting the failed CI builds and noticed that the failures are real issues in Dockerfile-supabase (for example syntax should be 1.4 not 1.3 because the heredoc syntax was in 1.3-labs and graduated in 1.4, maybe some other issues too).

Thanks for testing this. I'll update the version.

I tried fixing it and then I ended up trying out putting everything all into one Dockerfile and fell down the rabbit hole here. It's not too bad IMO. I'm going to drop it into here so you can take a quick look if nothing stands out I can throw it into this PR.

Thanks! I'll take a look at it.

This one Dockerfile can be used to build PG15, PG17, PG17-orioledb, PG17-multigres, PG17-orioledb-multigres and there's no issue with running 2 commands for multigres.

Unfortunately I think that means some of your changes need to backed off since we'd want to make use of --target again.

My main concern was the duplication of code in all the files. Even if we end up with a single Dockerfile with multiple targets, it is a significant improvement.

@mkindahl
mkindahl force-pushed the feat/dockerfile-refactor branch 4 times, most recently from fa9529d to c6eeada Compare May 28, 2026 13:24
@mmlb

mmlb commented May 28, 2026

Copy link
Copy Markdown
Collaborator

This one Dockerfile can be used to build PG15, PG17, PG17-orioledb, PG17-multigres, PG17-orioledb-multigres and there's no issue with running 2 commands for multigres.
Unfortunately I think that means some of your changes need to backed off since we'd want to make use of --target again.

My main concern was the duplication of code in all the files. Even if we end up with a single Dockerfile with multiple targets, it is a significant improvement.

Yeah I'd drop all the other Dockerfiles since they would now be unnecessary. I'd be concerned about the monolithic Dockerfile being hard to maintain but both orioledb and multigres were pretty tiny additions and not as bad as I would have thought. I suspect building the images with nix might not be terrible either (after other cleanups) I'd also expect it to be faster overall since nix's caching is better than docker's.

@mkindahl

Copy link
Copy Markdown
Author

@mkindahl I tried restarting the failed CI builds and noticed that the failures are real issues in Dockerfile-supabase (for example syntax should be 1.4 not 1.3 because the heredoc syntax was in 1.3-labs and graduated in 1.4, maybe some other issues too).

Thanks for testing this. I'll update the version.

I updated the version and ensured that all tests pass (I hope, some are still running).

The current changes does not include the single Dockerfile that you proposed: I just wanted to ensure that we have covered everything else before we discuss which approach to take.

@mmlb

mmlb commented May 29, 2026

Copy link
Copy Markdown
Collaborator

@mkindahl I tried restarting the failed CI builds and noticed that the failures are real issues in Dockerfile-supabase (for example syntax should be 1.4 not 1.3 because the heredoc syntax was in 1.3-labs and graduated in 1.4, maybe some other issues too).

Thanks for testing this. I'll update the version.

I updated the version and ensured that all tests pass (I hope, some are still running).

The current changes does not include the single Dockerfile that you proposed: I just wanted to ensure that we have covered everything else before we discuss which approach to take.

I like the one dockerfile-for-everything approach because it really isn't too much extra effort. Multigres add 2 stages, pgctl build and final creation. Not too much to separate out into its own file especially considering that orioledb makes a lot of sense to keep in main Dockerfile, so multigres will odd-build-out.

Keeping it all in one file also makes for simpler build in CI IMO. I think we can remove a bunch of the code by having 3 build steps (static or introspecting vars.yml), one each for pg15, pg17, orioledb. Multigres builds took ~30s on my machine on top its base. Thats likely much less time than getting a new CI VM, checking out code, fetching base image... So we'd have a build for each pg, then if version >15 we also build multigres. That should cut down on the matrix generation code and base/layered/suffix stuff too.

bench Note I clean between each run because otherwise pgctld is cached and the orioledb flavored multigres finishes in 5s :D
./bench.sh
+ docker system prune -af --volumes
+ docker pull alpine:3.23@sha256:5b10f432ef3da1b8d4c7eb6c487f2f5a8f096bc91145e68878dd4a5019afde11
+ docker pull golang:1.25-alpine3.23@sha256:8d22e29d960bc50cd025d93d5b7c7d220b1ee9aa7a239b3c8f55a57e987e8d45
+ docker pull golang:1.26-alpine3.23@sha256:91eda9776261207ea25fd06b5b7fed8d397dd2c0a283e77f2ab6e91bfa71079d
+ PG_VERSION=15
+ docker build --build-arg=PG_VERSION=15 --target=postgres -t supabase-15 .
+ tee pg-15.log.swp

real    1m41.767s
user    0m0.697s
sys     0m0.411s
+ docker system prune -af --volumes
+ docker pull alpine:3.23@sha256:5b10f432ef3da1b8d4c7eb6c487f2f5a8f096bc91145e68878dd4a5019afde11
+ docker pull golang:1.25-alpine3.23@sha256:8d22e29d960bc50cd025d93d5b7c7d220b1ee9aa7a239b3c8f55a57e987e8d45
+ docker pull golang:1.26-alpine3.23@sha256:91eda9776261207ea25fd06b5b7fed8d397dd2c0a283e77f2ab6e91bfa71079d
+ PG_VERSION=17
+ docker build --build-arg=PG_VERSION=17 --target=postgres -t supabase-17 .
+ tee pg-17.log.swp

real    1m36.863s
user    0m0.686s
sys     0m0.374s
+ docker build --build-arg=PG_VERSION=17 --target=multigres -t supabase-17-multigres .
+ tee pg-17-multigres.log.swp

real    0m20.832s
user    0m0.140s
sys     0m0.139s
+ docker system prune -af --volumes
+ docker pull alpine:3.23@sha256:5b10f432ef3da1b8d4c7eb6c487f2f5a8f096bc91145e68878dd4a5019afde11
+ docker pull golang:1.25-alpine3.23@sha256:8d22e29d960bc50cd025d93d5b7c7d220b1ee9aa7a239b3c8f55a57e987e8d45
+ docker pull golang:1.26-alpine3.23@sha256:91eda9776261207ea25fd06b5b7fed8d397dd2c0a283e77f2ab6e91bfa71079d
+ docker build --build-arg=PG_VERSION=17 --build-arg=VARIANT=orioledb --target=postgres -t supabase-17-orioledb .
+ tee pg-17-orioledb.log.swp

real    1m37.622s
user    0m0.715s
sys     0m0.414s
+ docker build --build-arg=PG_VERSION=17 --build-arg=VARIANT=orioledb --target=multigres -t supabase-17-orioledb-multigres .
+ tee pg-17-orioledb-multigres.log.swp

real    0m22.151s
user    0m0.210s
sys     0m0.129

@mmlb

mmlb commented Jun 1, 2026

Copy link
Copy Markdown
Collaborator

@mkindahl I decided to try my thoughts off of develop instead of basing on this branch and pushed it to https://github.com/supabase/postgres/compare/push-nlprpslluupn so we have something to compare against better. I've got more of the CI stuff to handle for a better comparison but wanted to get it up and out for 👁️ and so you don't think I've ignored this PR :)

@mmlb

mmlb commented Jun 2, 2026

Copy link
Copy Markdown
Collaborator

Meeting recap: I'd like to investigate moving images to be built by nix instead of docker, which should make it easier to get the checks/tests run automatically. Would benefit from some refactors to the repo first though. No point continuing going down the route I was taking if that comes to pass so lets get this merged as its an improvement anyway. Pending images get pushed by CI and are deemed working.

@mkindahl
mkindahl force-pushed the feat/dockerfile-refactor branch from 77954f1 to 883d97e Compare June 5, 2026 10:11
Comment thread .github/workflows/manual-docker-release.yml Outdated
Comment thread docker/pgctld/pgctld-layered.sh
@mkindahl
mkindahl force-pushed the feat/dockerfile-refactor branch 2 times, most recently from 7bad5c2 to f563c76 Compare June 10, 2026 10:02
@blacksmith-sh

This comment has been minimized.

@mkindahl
mkindahl force-pushed the feat/dockerfile-refactor branch from f563c76 to e98c614 Compare June 11, 2026 05:33
@blacksmith-sh

This comment has been minimized.

@mkindahl
mkindahl force-pushed the feat/dockerfile-refactor branch from e98c614 to bd9187b Compare June 12, 2026 12:38
@blacksmith-sh

This comment has been minimized.

Comment thread Dockerfile-multigres Outdated
@mkindahl
mkindahl force-pushed the feat/dockerfile-refactor branch 2 times, most recently from b4c4e28 to 9f2d172 Compare July 17, 2026 10:39
@mkindahl
mkindahl requested review from mmlb and samrose July 17, 2026 12:42
Comment on lines +337 to +345
# 3. /usr/local/bin/pgctld must be a wrapper script (not the raw binary)
local first_line
first_line=$(docker exec "$container" sh -c "head -1 /usr/local/bin/pgctld")
if [[ "$first_line" != "#!/bin/sh" ]]; then
log_error " /usr/local/bin/pgctld is not a wrapper script (first line: $first_line)"
exit 1
fi
log_info " ✓ /usr/local/bin/pgctld is a wrapper script"

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Curious whats the reasoning behind this check?

@mkindahl mkindahl Jul 24, 2026

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If the raw pgctld binary is called, it will miss some options that are needed for it to work correctly. In particular, --postgres-config-template and --pg-initdb-sql-dirs, so this is just an extra check that nothing is wrong and the binary was accidentally copied.

Comment thread nix/packages/docker-image-test.nix Outdated
Comment thread nix/packages/docker-image-test.nix Outdated
Comment thread nix/packages/docker-image-test.nix Outdated
Comment thread nix/packages/image-size-analyzer.nix Outdated
Comment thread nix/packages/image-size-analyzer.nix Outdated
Comment thread Dockerfile-multigres Outdated
@mkindahl
mkindahl force-pushed the feat/dockerfile-refactor branch from 3511086 to 7ff1752 Compare July 24, 2026 11:52

@mkindahl mkindahl left a comment

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the review. I fixed this issues and pushed a new version.

Comment thread nix/packages/docker-image-test.nix Outdated
Comment thread nix/packages/docker-image-test.nix Outdated
Comment thread .github/workflows/manual-docker-release.yml Outdated
@mkindahl
mkindahl force-pushed the feat/dockerfile-refactor branch from 7ff1752 to ecacffa Compare July 24, 2026 11:57
@mkindahl
mkindahl requested a review from mmlb July 24, 2026 11:58
@mkindahl
mkindahl force-pushed the feat/dockerfile-refactor branch 2 times, most recently from 4401c55 to fd8cba7 Compare July 24, 2026 12:40
…le-multigres as layered image

Introduce Dockerfile-supabase as a general-purpose PostgreSQL base image and
rewrite Dockerfile-multigres to layer on top of it, replacing the monolithic
per-version Dockerfile approach for Multigres.

- Add Dockerfile-supabase: multi-stage build producing a production-ready
  postgres base image via Nix, with gosu, wal-g, and supabase tooling
- Rewrite Dockerfile-multigres: dedicated pgbackrest-builder stage installs
  pgBackRest via Nix daemon; production stage merges only the store closure
  to avoid clobbering the inherited supabase profile
- Bump Dockerfile-multigres syntax to 1.4 (required for heredoc support in RUN)
- Add release_matrix_base and release_matrix_layered to ansible/vars.yml to
  drive separate build paths in CI
- Add dockerfiles mode input to manual-docker-release workflow (legacy/layered)
- Add imageLabel input to manual-docker-release workflow for test image tagging
- Fix combine_results nushell script to read matrix.tag instead of matrix.version
- Include imageLabel in SUPABASE_IMAGE build-arg for layered image builds
- Remove duplicate bare include for supautils.conf in pgctld config template
- Tighten docker-image-test: treat already-initialized/already-running as errors
  for fresh containers (invalid state that indicates environment problems)
- Fix image-size-analyzer.nix unbound-variable check to use ${2:-} under set -u
@mkindahl
mkindahl force-pushed the feat/dockerfile-refactor branch from fd8cba7 to 57307e3 Compare July 24, 2026 13:30

@mmlb mmlb left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, can't wait to delete this tho ;)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants