tag:github.com,2008:https://github.com/pgsty/pigsty/releases Release notes from pigsty 2026-05-01T12:13:08Z tag:github.com,2008:Repository/268680961/v4.3.0 2026-05-03T09:20:51Z Pigsty v.4.3.0 <p><strong>Highlights</strong></p> <ul> <li>Added about 50 PostgreSQL extensions, bringing the total available extension count to 510.</li> <li>Added Ubuntu 26.04 x86_64/arm64 support, deprecated Ubuntu 20.04 support, and refreshed minor OS variants to Debian 13.4 / Ubuntu 24.04.4.</li> <li>Kernel updates: Supabase is updated to the latest version, pgEdge to PG 18, and PolarDB to PG 17.</li> <li>Grafana is updated to 13.0.0, and MinIO now uses the pgsty branch with CVE fixes.</li> <li>Vagrant templates now consistently use cloud-image series images.</li> </ul> <p><strong>Bug Fixes</strong></p> <ul> <li>Relaxed PostgreSQL username validation to allow <code>@.-</code> in usernames.</li> <li>Fixed IPv6 nameserver parsing so DNS configuration is not limited to legacy IPv4 DNS server extraction.</li> <li>Changed the VictoriaTraces Grafana datasource path to <code>/select/jaeger</code>.</li> <li>Made Vagrant disk probing more robust and added <code>bin/el-fix</code>, a guest-network fix script for EL Vagrant images.</li> </ul> <p><strong>PostgreSQL and Extension Package Changes</strong></p> <table> <thead> <tr> <th align="left">Package</th> <th align="left">Old Version</th> <th align="left">New Version</th> <th align="left">Notes</th> </tr> </thead> <tbody> <tr> <td align="left"><code>block_copy_command</code></td> <td align="left">-</td> <td align="left">0.1.5</td> <td align="left">New; PG 14-18; Rust/pgrx 0.17.0</td> </tr> <tr> <td align="left"><code>cloudberry</code></td> <td align="left">2.0.0</td> <td align="left">2.1.0</td> <td align="left">Kernel package group; RPM release 2 fixes initdb errno issue</td> </tr> <tr> <td align="left"><code>cloudberry-backup</code></td> <td align="left">-</td> <td align="left">2.1.0</td> <td align="left">New Cloudberry backup tool package</td> </tr> <tr> <td align="left"><code>cloudberry-pxf</code></td> <td align="left">-</td> <td align="left">2.1.0</td> <td align="left">New Cloudberry PXF package</td> </tr> <tr> <td align="left"><code>credcheck</code></td> <td align="left">4.6</td> <td align="left">4.7</td> <td align="left">Upgrade; PG 14-18; PGDG</td> </tr> <tr> <td align="left"><code>datasketches</code></td> <td align="left">-</td> <td align="left">1.7.0</td> <td align="left">New; PG 14-18</td> </tr> <tr> <td align="left"><code>ddl_historization</code></td> <td align="left">0.0.7</td> <td align="left">0.2</td> <td align="left">Upgrade</td> </tr> <tr> <td align="left"><code>documentdb</code></td> <td align="left">0.109</td> <td align="left">0.110</td> <td align="left">Upgraded to upstream version; PG 15-18</td> </tr> <tr> <td align="left"><code>external_file</code></td> <td align="left">-</td> <td align="left">1.2</td> <td align="left">New; PG 14-18</td> </tr> <tr> <td align="left"><code>logical_ddl</code></td> <td align="left">-</td> <td align="left">0.1.0</td> <td align="left">New; PG 14-18</td> </tr> <tr> <td align="left"><code>nominatim_fdw</code></td> <td align="left">1.1.0</td> <td align="left">1.2</td> <td align="left">Upgrade</td> </tr> <tr> <td align="left"><code>onesparse</code></td> <td align="left">-</td> <td align="left">1.0.0</td> <td align="left">New; PG 18 only</td> </tr> <tr> <td align="left"><code>orioledb</code></td> <td align="left">beta15 1.7</td> <td align="left">beta15 1.7</td> <td align="left">Paired with OriolePG 17.18</td> </tr> <tr> <td align="left"><code>oriolepg</code></td> <td align="left">17.16</td> <td align="left">17.18</td> <td align="left">Kernel patch set update</td> </tr> <tr> <td align="left"><code>parray_gin</code></td> <td align="left">-</td> <td align="left">1.5.0</td> <td align="left">Added, then upgraded; PG 14-18</td> </tr> <tr> <td align="left"><code>pg_accumulator</code></td> <td align="left">-</td> <td align="left">1.1.3</td> <td align="left">New; PG 14-18</td> </tr> <tr> <td align="left"><code>pg_anon</code></td> <td align="left">3.0.1</td> <td align="left">3.0.13</td> <td align="left">Upgrade; Rust/pgrx 0.16.1 -&gt; 0.17.0</td> </tr> <tr> <td align="left"><code>pg_background</code></td> <td align="left">1.8</td> <td align="left">1.9.2</td> <td align="left">DEB only</td> </tr> <tr> <td align="left"><code>pg_bikram_sambat</code></td> <td align="left">-</td> <td align="left">0.1.0</td> <td align="left">New; Bikram Sambat date type and AD/BS conversion functions</td> </tr> <tr> <td align="left"><code>pg_byteamagic</code></td> <td align="left">-</td> <td align="left">0.2.4</td> <td align="left">New; PG 14-18</td> </tr> <tr> <td align="left"><code>pg_cardano</code></td> <td align="left">1.1.1</td> <td align="left">1.2.0</td> <td align="left">Upgrade; Rust/pgrx 0.17.0</td> </tr> <tr> <td align="left"><code>pg_clickhouse</code></td> <td align="left">0.1.5</td> <td align="left">0.2.0</td> <td align="left">Upgrade</td> </tr> <tr> <td align="left"><code>pg_datasentinel</code></td> <td align="left">-</td> <td align="left">1.0</td> <td align="left">New; PG 15-18</td> </tr> <tr> <td align="left"><code>pg_dbms_job</code></td> <td align="left">1.5</td> <td align="left">2.0</td> <td align="left">Upgrade; PG 14-18; PGDG</td> </tr> <tr> <td align="left"><code>pg_dispatch</code></td> <td align="left">-</td> <td align="left">0.1.5</td> <td align="left">New; PG 14-18</td> </tr> <tr> <td align="left"><code>pg_failover_slots</code></td> <td align="left">1.2.0</td> <td align="left">1.2.1</td> <td align="left">Upgrade</td> </tr> <tr> <td align="left"><code>pg_fsql</code></td> <td align="left">-</td> <td align="left">1.1.0</td> <td align="left">New; PG 14-18</td> </tr> <tr> <td align="left"><code>pg_incremental</code></td> <td align="left">1.4.1</td> <td align="left">1.5.0</td> <td align="left">Upgrade</td> </tr> <tr> <td align="left"><code>pg_isok</code></td> <td align="left">-</td> <td align="left">1.4.1</td> <td align="left">New; PG 14-18</td> </tr> <tr> <td align="left"><code>pg_ivm</code></td> <td align="left">1.13</td> <td align="left">1.14</td> <td align="left">Upgrade; PG 14-18</td> </tr> <tr> <td align="left"><code>pg_kazsearch</code></td> <td align="left">-</td> <td align="left">2.0.0</td> <td align="left">New; PG 16-18; Rust/pgrx 0.17.0</td> </tr> <tr> <td align="left"><code>pg_liquid</code></td> <td align="left">-</td> <td align="left">0.1.7</td> <td align="left">New; PG 14-18</td> </tr> <tr> <td align="left"><code>pg_pathcheck</code></td> <td align="left">-</td> <td align="left">0.9.1</td> <td align="left">New; PG 17-18; requires shared_preload_libraries</td> </tr> <tr> <td align="left"><code>pg_query_rewrite</code></td> <td align="left">-</td> <td align="left">0.0.5</td> <td align="left">New; PG 14-18</td> </tr> <tr> <td align="left"><code>pg_regresql</code></td> <td align="left">-</td> <td align="left">2.0.0</td> <td align="left">New; PG 14-18</td> </tr> <tr> <td align="left"><code>pg_rrf</code></td> <td align="left">-</td> <td align="left">0.0.3</td> <td align="left">New; PG 14-17; Rust/pgrx 0.16.1 -&gt; 0.17.0</td> </tr> <tr> <td align="left"><code>pg_savior</code></td> <td align="left">0.0.1</td> <td align="left">0.1.0</td> <td align="left">Upgrade; high-risk DDL/DML guard hook; requires preload or LOAD</td> </tr> <tr> <td align="left"><code>pg_search</code></td> <td align="left">0.22.2</td> <td align="left">0.23.1</td> <td align="left">Upgrade; PG 15-18; pgrx 0.18.0</td> </tr> <tr> <td align="left"><code>pg_slug_gen</code></td> <td align="left">-</td> <td align="left">1.0.0</td> <td align="left">New; PG 15-18</td> </tr> <tr> <td align="left"><code>pg_stat_ch</code></td> <td align="left">-</td> <td align="left">0.3.6</td> <td align="left">Added, then upgraded; PG 16-18; EL8 break</td> </tr> <tr> <td align="left"><code>pg_store_plans</code></td> <td align="left">1.9</td> <td align="left">1.10</td> <td align="left">Upgrade</td> </tr> <tr> <td align="left"><code>pg_strict</code></td> <td align="left">1.0.3</td> <td align="left">1.0.5</td> <td align="left">Upgrade; Rust/pgrx 0.16.1 -&gt; 0.17.0</td> </tr> <tr> <td align="left"><code>pg_text_semver</code></td> <td align="left">-</td> <td align="left">1.2.1</td> <td align="left">New; PG 14-18</td> </tr> <tr> <td align="left"><code>pg_textsearch</code></td> <td align="left">0.5.0</td> <td align="left">1.1.0</td> <td align="left">Upgrade; PG 17-18; requires shared_preload_libraries</td> </tr> <tr> <td align="left"><code>pg_trickle</code></td> <td align="left">0.16.0</td> <td align="left">0.40.0</td> <td align="left">Upgrade; PG 18 only; pgrx 0.18.0</td> </tr> <tr> <td align="left"><code>pg_tzf</code></td> <td align="left">0.2.3</td> <td align="left">0.2.4</td> <td align="left">Upgrade; Rust/pgrx 0.17.0</td> </tr> <tr> <td align="left"><code>pg_vectorize</code></td> <td align="left">0.26.0</td> <td align="left">0.26.1</td> <td align="left">Upgrade; Rust/pgrx 0.16.1 -&gt; 0.17.0</td> </tr> <tr> <td align="left"><code>pg_variables</code></td> <td align="left">-</td> <td align="left">1.2.5</td> <td align="left">New; PG 14-18</td> </tr> <tr> <td align="left"><code>pg_when</code></td> <td align="left">-</td> <td align="left">0.1.9</td> <td align="left">New; PG 14-18; Rust/pgrx 0.17.0</td> </tr> <tr> <td align="left"><code>pgxicor</code></td> <td align="left">0.1.0</td> <td align="left">0.1.1</td> <td align="left">Upgrade</td> </tr> <tr> <td align="left"><code>pgcalendar</code></td> <td align="left">-</td> <td align="left">1.1.0</td> <td align="left">New; PG 14-18</td> </tr> <tr> <td align="left"><code>pgclone</code></td> <td align="left">-</td> <td align="left">4.0.0</td> <td align="left">Added, then upgraded; PG 14-18</td> </tr> <tr> <td align="left"><code>pgelog</code></td> <td align="left">-</td> <td align="left">1.0.2</td> <td align="left">New; PG 14-18</td> </tr> <tr> <td align="left"><code>pglinter</code></td> <td align="left">1.1.1</td> <td align="left">1.1.2</td> <td align="left">Upgrade; Rust/pgrx 0.16.1 -&gt; 0.17.0</td> </tr> <tr> <td align="left"><code>pglock</code></td> <td align="left">-</td> <td align="left">1.0.0</td> <td align="left">New; PG 14-18</td> </tr> <tr> <td align="left"><code>pgmq</code></td> <td align="left">1.11.0</td> <td align="left">1.11.1</td> <td align="left">Upgrade; PG 14-18</td> </tr> <tr> <td align="left"><code>pgmqtt</code></td> <td align="left">-</td> <td align="left">0.1.0</td> <td align="left">New; PG 14-18; Rust/pgrx 0.16.1 -&gt; 0.17.0</td> </tr> <tr> <td align="left"><code>pgproto</code></td> <td align="left">-</td> <td align="left">0.5.0</td> <td align="left">Added, then upgraded; native Protobuf support</td> </tr> <tr> <td align="left"><code>pghydro</code></td> <td align="left">-</td> <td align="left">6.6</td> <td align="left">New; PG 14-18</td> </tr> <tr> <td align="left"><code>pgx_ulid</code></td> <td align="left">0.2.2</td> <td align="left">0.2.3</td> <td align="left">Upgrade; Rust/pgrx 0.17.0</td> </tr> <tr> <td align="left"><code>plv8</code></td> <td align="left">3.2.4</td> <td align="left">3.2.4-2</td> <td align="left">RPM only; EL10 build fix</td> </tr> <tr> <td align="left"><code>PolarDB</code></td> <td align="left">15.15</td> <td align="left">17.9.1.0</td> <td align="left">PG 15 -&gt; 17</td> </tr> <tr> <td align="left"><code>postgresbson</code></td> <td align="left">-</td> <td align="left">2.0.2</td> <td align="left">New; PG 14-18</td> </tr> <tr> <td align="left"><code>postgis</code></td> <td align="left">3.6.2</td> <td align="left">3.6.3</td> <td align="left">DEB only</td> </tr> <tr> <td align="left"><code>prefix</code></td> <td align="left">1.2.10</td> <td align="left">1.2.11</td> <td align="left">Upgrade; PG 14-18; PGDG</td> </tr> <tr> <td align="left"><code>provsql</code></td> <td align="left">-</td> <td align="left">1.2.3</td> <td align="left">New; PG 14-18</td> </tr> <tr> <td align="left"><code>rdf_fdw</code></td> <td align="left">-</td> <td align="left">2.5.0</td> <td align="left">Added, then upgraded; PG 14-18</td> </tr> <tr> <td align="left"><code>rdkit</code></td> <td align="left">-</td> <td align="left">202503.6</td> <td align="left">New; PG 14-18</td> </tr> <tr> <td align="left"><code>re2</code></td> <td align="left">-</td> <td align="left">0.1.1</td> <td align="left">New; PG 16-18</td> </tr> <tr> <td align="left"><code>storage_engine</code></td> <td align="left">-</td> <td align="left">1.3.4</td> <td align="left">Added, then upgraded; columnar and row-compression table access methods</td> </tr> <tr> <td align="left"><code>supautils</code></td> <td align="left">3.1.0</td> <td align="left">3.2.1</td> <td align="left">Upgrade</td> </tr> <tr> <td align="left"><code>system_stats</code></td> <td align="left">3.2</td> <td align="left">4.0</td> <td align="left">Upgrade</td> </tr> <tr> <td align="left"><code>timescaledb</code></td> <td align="left">2.25.2</td> <td align="left">2.26.4</td> <td align="left">Upgrade; TSL minor update</td> </tr> <tr> <td align="left"><code>ulak</code></td> <td align="left">-</td> <td align="left">0.0.2</td> <td align="left">New; PG 14-18</td> </tr> <tr> <td align="left"><code>wrappers</code></td> <td align="left">0.5.7</td> <td align="left">0.6.0</td> <td align="left">Upgrade; Rust/pgrx 0.16.1 -&gt; 0.17.0</td> </tr> <tr> <td align="left">{.stretch-last}</td> <td align="left"></td> <td align="left"></td> <td align="left"></td> </tr> </tbody> </table> <p><strong>Infrastructure Package Updates</strong></p> <table> <thead> <tr> <th align="left">Package</th> <th align="left">Old Version</th> <th align="left">New Version</th> <th align="left">Notes</th> </tr> </thead> <tbody> <tr> <td align="left"><code>alertmanager</code></td> <td align="left">0.31.1</td> <td align="left">0.32.1</td> <td align="left"></td> </tr> <tr> <td align="left"><code>agentsview</code></td> <td align="left">0.15.0</td> <td align="left">0.26.0</td> <td align="left"></td> </tr> <tr> <td align="left"><code>claude</code></td> <td align="left">2.1.81</td> <td align="left">2.1.123</td> <td align="left">Downloaded through the 8118 proxy and verified</td> </tr> <tr> <td align="left"><code>code</code></td> <td align="left">1.112.0</td> <td align="left">1.118.1</td> <td align="left">Direct-link metadata update</td> </tr> <tr> <td align="left"><code>code-server</code></td> <td align="left">4.112.0</td> <td align="left">4.117.0</td> <td align="left">Direct-link metadata update</td> </tr> <tr> <td align="left"><code>codex</code></td> <td align="left">0.116.0</td> <td align="left">0.125.0</td> <td align="left">Moved from prerelease track to stable, then upgraded further</td> </tr> <tr> <td align="left"><code>crush</code></td> <td align="left">0.51.2</td> <td align="left">0.64.0</td> <td align="left">Direct-link metadata update</td> </tr> <tr> <td align="left"><code>dblab</code></td> <td align="left">0.34.3</td> <td align="left">0.38.0</td> <td align="left"></td> </tr> <tr> <td align="left"><code>duckdb</code></td> <td align="left">1.5.0</td> <td align="left">1.5.2</td> <td align="left"></td> </tr> <tr> <td align="left"><code>etcd</code></td> <td align="left">3.6.9</td> <td align="left">3.6.10</td> <td align="left">Unified package version</td> </tr> <tr> <td align="left"><code>garage</code></td> <td align="left">2.2.0</td> <td align="left">2.3.0</td> <td align="left"></td> </tr> <tr> <td align="left"><code>genai-toolbox</code></td> <td align="left">0.27.0</td> <td align="left">1.1.0</td> <td align="left">Upstream renamed to mcp-toolbox</td> </tr> <tr> <td align="left"><code>golang</code></td> <td align="left">1.26.1</td> <td align="left">1.26.2</td> <td align="left"></td> </tr> <tr> <td align="left"><code>grafana</code></td> <td align="left">12.4.1</td> <td align="left">13.0.1</td> <td align="left">Metadata refreshed after major upgrade</td> </tr> <tr> <td align="left"><code>grafana-infinity-ds</code></td> <td align="left">3.7.4</td> <td align="left">3.8.0</td> <td align="left"></td> </tr> <tr> <td align="left"><code>grafana-plugins</code></td> <td align="left">12.3.0</td> <td align="left">13.0.0</td> <td align="left">Noarch plugin bundle, manually collected</td> </tr> <tr> <td align="left"><code>grafana-victoriametrics-ds</code></td> <td align="left">0.23.1</td> <td align="left">0.24.0</td> <td align="left"></td> </tr> <tr> <td align="left"><code>hugo</code></td> <td align="left">0.158.0</td> <td align="left">0.161.1</td> <td align="left"></td> </tr> <tr> <td align="left"><code>maddy</code></td> <td align="left">0.8.2</td> <td align="left">0.9.3</td> <td align="left"></td> </tr> <tr> <td align="left"><code>mcli</code></td> <td align="left">20260321000000</td> <td align="left">20260417000000</td> <td align="left">pgsty branch, CVE fixed</td> </tr> <tr> <td align="left"><code>minio</code></td> <td align="left">20260325000000</td> <td align="left">20260417000000</td> <td align="left">pgsty branch, CVE fixed</td> </tr> <tr> <td align="left"><code>mongodb_exporter</code></td> <td align="left">0.49.0</td> <td align="left">0.50.0</td> <td align="left"></td> </tr> <tr> <td align="left"><code>node_exporter</code></td> <td align="left">1.10.2</td> <td align="left">1.11.1</td> <td align="left"></td> </tr> <tr> <td align="left"><code>nodejs</code></td> <td align="left">24.14.0</td> <td align="left">24.15.0</td> <td align="left">Stays on the 24.x policy line</td> </tr> <tr> <td align="left"><code>npgsqlrest</code></td> <td align="left">3.11.1</td> <td align="left">3.12.0</td> <td align="left"></td> </tr> <tr> <td align="left"><code>opencode</code></td> <td align="left">1.2.27</td> <td align="left">1.14.30</td> <td align="left">Switched to versioned cache and rebuilt</td> </tr> <tr> <td align="left"><code>pg_exporter</code></td> <td align="left">1.2.1</td> <td align="left">1.2.2</td> <td align="left">Direct-link metadata update</td> </tr> <tr> <td align="left"><code>pgflo</code></td> <td align="left">0.0.15</td> <td align="left">-</td> <td align="left">Removed</td> </tr> <tr> <td align="left"><code>pgschema</code></td> <td align="left">1.7.4</td> <td align="left">1.9.0</td> <td align="left"></td> </tr> <tr> <td align="left"><code>pig</code></td> <td align="left">1.3.2</td> <td align="left">1.4.1</td> <td align="left">Metadata only</td> </tr> <tr> <td align="left"><code>postgrest</code></td> <td align="left">14.7</td> <td align="left">14.10</td> <td align="left"></td> </tr> <tr> <td align="left"><code>prometheus</code></td> <td align="left">3.10.0</td> <td align="left">3.11.3</td> <td align="left"></td> </tr> <tr> <td align="left"><code>rainfrog</code></td> <td align="left">0.3.17</td> <td align="left">0.3.18</td> <td align="left"></td> </tr> <tr> <td align="left"><code>rclone</code></td> <td align="left">1.73.2</td> <td align="left">1.73.5</td> <td align="left">Direct-link metadata update</td> </tr> <tr> <td align="left"><code>rustfs</code></td> <td align="left">1.0.0-alpha.89</td> <td align="left">1.0.0-b1</td> <td align="left">Prerelease line</td> </tr> <tr> <td align="left"><code>sabiql</code></td> <td align="left">1.8.2</td> <td align="left">1.11.1</td> <td align="left"></td> </tr> <tr> <td align="left"><code>seaweedfs</code></td> <td align="left">4.17</td> <td align="left">4.22</td> <td align="left"></td> </tr> <tr> <td align="left"><code>sqlcmd</code></td> <td align="left">1.9.0</td> <td align="left">1.10.0</td> <td align="left"></td> </tr> <tr> <td align="left"><code>stalwart</code></td> <td align="left">0.15.5</td> <td align="left">0.16.2</td> <td align="left"></td> </tr> <tr> <td align="left"><code>tigerbeetle</code></td> <td align="left">0.16.77</td> <td align="left">0.17.2</td> <td align="left"></td> </tr> <tr> <td align="left"><code>tigerfs</code></td> <td align="left">0.5.0</td> <td align="left">0.6.0</td> <td align="left"></td> </tr> <tr> <td align="left"><code>timescaledb-tools</code></td> <td align="left">0.18.2</td> <td align="left">0.19.0</td> <td align="left">Rebuilt timescaledb-tune</td> </tr> <tr> <td align="left"><code>uv</code></td> <td align="left">0.10.12</td> <td align="left">0.11.8</td> <td align="left"></td> </tr> <tr> <td align="left"><code>victoria-logs</code></td> <td align="left">1.48.0</td> <td align="left">1.50.0</td> <td align="left">Main package</td> </tr> <tr> <td align="left"><code>victoria-metrics</code></td> <td align="left">1.138.0</td> <td align="left">1.142.0</td> <td align="left"></td> </tr> <tr> <td align="left"><code>victoria-metrics-cluster</code></td> <td align="left">1.138.0</td> <td align="left">1.142.0</td> <td align="left">VictoriaMetrics companion component</td> </tr> <tr> <td align="left"><code>victoria-traces</code></td> <td align="left">0.8.0</td> <td align="left">0.8.2</td> <td align="left"></td> </tr> <tr> <td align="left"><code>vip-manager</code></td> <td align="left">4.0.0</td> <td align="left">4.2.0</td> <td align="left">Direct-link metadata update</td> </tr> <tr> <td align="left"><code>vlagent</code></td> <td align="left">1.48.0</td> <td align="left">1.50.0</td> <td align="left">VictoriaLogs companion component</td> </tr> <tr> <td align="left"><code>vlogscli</code></td> <td align="left">1.48.0</td> <td align="left">1.50.0</td> <td align="left">VictoriaLogs companion component</td> </tr> <tr> <td align="left"><code>vmutils</code></td> <td align="left">1.138.0</td> <td align="left">1.142.0</td> <td align="left">VictoriaMetrics companion component</td> </tr> <tr> <td align="left"><code>vector</code></td> <td align="left">0.54.0</td> <td align="left">0.55.0</td> <td align="left">Direct-link metadata update</td> </tr> <tr> <td align="left"><code>v2ray</code></td> <td align="left">5.47.0</td> <td align="left">5.48.0</td> <td align="left"></td> </tr> <tr> <td align="left"><code>xray</code></td> <td align="left">26.2.6</td> <td align="left">26.3.27</td> <td align="left"></td> </tr> </tbody> </table> <p><strong>Checksums</strong></p> <div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="58a914fce7bc521b65e167f66e7961a3 pigsty-v4.3.0.tgz 9ce070efb0420057a83c632b2856d1b3 pigsty-pkg-v4.3.0.d12.aarch64.tgz bf21c36d3aff94a1a6353130597ffa85 pigsty-pkg-v4.3.0.d12.x86_64.tgz 81b4790c4e5567cee9d1beadd06e48e6 pigsty-pkg-v4.3.0.d13.aarch64.tgz 06baab9341ab683eaeea2e066b28a0f4 pigsty-pkg-v4.3.0.d13.x86_64.tgz fb4bf751df5e09f547c49b8ab7cac9a0 pigsty-pkg-v4.3.0.el10.aarch64.tgz a3e752c8148122d1eaea74a6d8d8df0d pigsty-pkg-v4.3.0.el10.x86_64.tgz cb2a9af36615513e66fd5ac3e9f4d797 pigsty-pkg-v4.3.0.el9.aarch64.tgz e24641a879dec7a8eea74dab42f85920 pigsty-pkg-v4.3.0.el9.x86_64.tgz 6b675fd8d9e039193481f0838aa4b92c pigsty-pkg-v4.3.0.u22.aarch64.tgz c0e344ccb9d190a619591e5d46116424 pigsty-pkg-v4.3.0.u22.x86_64.tgz 3e0ec9534cf595201ec79eb1fc6549d8 pigsty-pkg-v4.3.0.u24.aarch64.tgz 0a3d19513eca9615bdd66a4b2bf66f1d pigsty-pkg-v4.3.0.u24.x86_64.tgz 683a10ff8fd993358d6befa9f4e02913 pigsty-pkg-v4.3.0.u26.aarch64.tgz fd1ea5cd5554bfe91fadd51ad80860e3 pigsty-pkg-v4.3.0.u26.x86_64.tgz"><pre>58a914fce7bc521b65e167f66e7961a3 pigsty-v4.3.0.tgz 9ce070efb0420057a83c632b2856d1b3 pigsty-pkg-v4.3.0.d12.aarch64.tgz bf21c36d3aff94a1a6353130597ffa85 pigsty-pkg-v4.3.0.d12.x86_64.tgz 81b4790c4e5567cee9d1beadd06e48e6 pigsty-pkg-v4.3.0.d13.aarch64.tgz 06baab9341ab683eaeea2e066b28a0f4 pigsty-pkg-v4.3.0.d13.x86_64.tgz fb4bf751df5e09f547c49b8ab7cac9a0 pigsty-pkg-v4.3.0.el10.aarch64.tgz a3e752c8148122d1eaea74a6d8d8df0d pigsty-pkg-v4.3.0.el10.x86_64.tgz cb2a9af36615513e66fd5ac3e9f4d797 pigsty-pkg-v4.3.0.el9.aarch64.tgz e24641a879dec7a8eea74dab42f85920 pigsty-pkg-v4.3.0.el9.x86_64.tgz 6b675fd8d9e039193481f0838aa4b92c pigsty-pkg-v4.3.0.u22.aarch64.tgz c0e344ccb9d190a619591e5d46116424 pigsty-pkg-v4.3.0.u22.x86_64.tgz 3e0ec9534cf595201ec79eb1fc6549d8 pigsty-pkg-v4.3.0.u24.aarch64.tgz 0a3d19513eca9615bdd66a4b2bf66f1d pigsty-pkg-v4.3.0.u24.x86_64.tgz 683a10ff8fd993358d6befa9f4e02913 pigsty-pkg-v4.3.0.u26.aarch64.tgz fd1ea5cd5554bfe91fadd51ad80860e3 pigsty-pkg-v4.3.0.u26.x86_64.tgz</pre></div> Vonng tag:github.com,2008:Repository/268680961/v4.3.0-b1 2026-05-01T15:24:55Z Pigsty v4.3.0 Beta1 No content. Vonng tag:github.com,2008:Repository/268680961/v4.2.2 2026-03-23T10:18:11Z Pigsty v4.2.2 <p><strong>Highlights</strong></p> <ul> <li>Insforge 2.0.1 self-hosted template</li> <li>Batch infra package updates, MinIO/MCLI updated to 20260321</li> <li>New infra packages: tigerfs, pgstream, sql-studio, rainfog, crush</li> <li>New PG tools: data recovery pdu, connection pooler pgdog</li> <li>Update PG extensions: pg_search, pgsentinel, pg_track_optimizer, pgcollection, pg_ttl_index, pg_clickhouse</li> <li>Update PG Kernel: ivorysql 5.1 -&gt; 5.3</li> </ul> <p><strong>PostgreSQL Package Updates</strong></p> <table> <thead> <tr> <th align="left">Name</th> <th align="left">Old Ver</th> <th align="left">New Ver</th> <th align="left">Note</th> </tr> </thead> <tbody> <tr> <td align="left">pg_search</td> <td align="left">0.21.12</td> <td align="left">0.22.2</td> <td align="left"></td> </tr> <tr> <td align="left">pgsentinel</td> <td align="left">1.4.0</td> <td align="left">1.4.1</td> <td align="left">rpm only</td> </tr> <tr> <td align="left">pg_track_optimizer</td> <td align="left">0.9.1</td> <td align="left">0.9.2</td> <td align="left"></td> </tr> <tr> <td align="left">pgcollection</td> <td align="left">1.0.0</td> <td align="left">2.0.0</td> <td align="left"></td> </tr> <tr> <td align="left">pg_ttl_index</td> <td align="left">2.0.0</td> <td align="left">3.0.0</td> <td align="left"></td> </tr> <tr> <td align="left">pg_clickhouse</td> <td align="left">0.1.4</td> <td align="left">0.1.5</td> <td align="left"></td> </tr> <tr> <td align="left">pdu</td> <td align="left"></td> <td align="left">3.0.25.12</td> <td align="left">new</td> </tr> <tr> <td align="left">pgdog</td> <td align="left"></td> <td align="left">0.1.32</td> <td align="left">new</td> </tr> </tbody> </table> <p><strong>Infrastructure Package Updates</strong></p> <table> <thead> <tr> <th align="left">Name</th> <th align="left">Old Ver</th> <th align="left">New Ver</th> <th align="left">Note</th> </tr> </thead> <tbody> <tr> <td align="left"><code>grafana</code></td> <td align="left">12.4.0</td> <td align="left">12.4.1</td> <td align="left"></td> </tr> <tr> <td align="left"><code>pgbackrest_exporter</code></td> <td align="left">0.22.0</td> <td align="left">0.23.0</td> <td align="left"></td> </tr> <tr> <td align="left"><code>redis_exporter</code></td> <td align="left">1.81.0</td> <td align="left">1.82.0</td> <td align="left"></td> </tr> <tr> <td align="left"><code>victoria-logs</code></td> <td align="left">1.47.0</td> <td align="left">1.48.0</td> <td align="left"></td> </tr> <tr> <td align="left"><code>vlagent</code></td> <td align="left">1.47.0</td> <td align="left">1.48.0</td> <td align="left"></td> </tr> <tr> <td align="left"><code>vlogscli</code></td> <td align="left">1.47.0</td> <td align="left">1.48.0</td> <td align="left"></td> </tr> <tr> <td align="left"><code>victoria-traces</code></td> <td align="left">0.7.1</td> <td align="left">0.8.0</td> <td align="left"></td> </tr> <tr> <td align="left"><code>duckdb</code></td> <td align="left">1.4.4</td> <td align="left">1.5.0</td> <td align="left"></td> </tr> <tr> <td align="left"><code>pg_timetable</code></td> <td align="left">6.2.0</td> <td align="left">6.3.0</td> <td align="left"></td> </tr> <tr> <td align="left"><code>pgschema</code></td> <td align="left">1.4.2</td> <td align="left">1.7.4</td> <td align="left"></td> </tr> <tr> <td align="left"><code>pgstream</code></td> <td align="left">-</td> <td align="left">1.0.1</td> <td align="left">new</td> </tr> <tr> <td align="left"><code>tigerbeetle</code></td> <td align="left">0.16.75</td> <td align="left">0.16.77</td> <td align="left"></td> </tr> <tr> <td align="left"><code>grafana-victorialogs-ds</code></td> <td align="left">0.26.2</td> <td align="left">0.26.3</td> <td align="left"></td> </tr> <tr> <td align="left"><code>grafana-infinity-ds</code></td> <td align="left">3.7.3</td> <td align="left">3.7.4</td> <td align="left"></td> </tr> <tr> <td align="left"><code>caddy</code></td> <td align="left">2.11.1</td> <td align="left">2.11.2</td> <td align="left"></td> </tr> <tr> <td align="left"><code>npgsqlrest</code></td> <td align="left">3.10.0</td> <td align="left">3.11.1</td> <td align="left"></td> </tr> <tr> <td align="left"><code>postgrest</code></td> <td align="left">14.5</td> <td align="left">14.7</td> <td align="left"></td> </tr> <tr> <td align="left"><code>opencode</code></td> <td align="left">1.2.17</td> <td align="left">1.2.27</td> <td align="left"></td> </tr> <tr> <td align="left"><code>pev2</code></td> <td align="left">1.20.2</td> <td align="left">1.21.0</td> <td align="left"></td> </tr> <tr> <td align="left"><code>golang</code></td> <td align="left">1.26.0</td> <td align="left">1.26.1</td> <td align="left"></td> </tr> <tr> <td align="left"><code>vector</code></td> <td align="left">0.53.0</td> <td align="left">0.54.0</td> <td align="left"></td> </tr> <tr> <td align="left"><code>rclone</code></td> <td align="left">1.73.1</td> <td align="left">1.73.2</td> <td align="left"></td> </tr> <tr> <td align="left"><code>code-server</code></td> <td align="left">4.109.5</td> <td align="left">4.112.0</td> <td align="left"></td> </tr> <tr> <td align="left"><code>code</code></td> <td align="left">1.109.4</td> <td align="left">1.112.0</td> <td align="left"></td> </tr> <tr> <td align="left"><code>seaweedfs</code></td> <td align="left">4.15</td> <td align="left">4.17</td> <td align="left"></td> </tr> <tr> <td align="left"><code>uv</code></td> <td align="left">0.10.8</td> <td align="left">0.10.12</td> <td align="left"></td> </tr> <tr> <td align="left"><code>codex</code></td> <td align="left">0.110.0</td> <td align="left">0.116.0</td> <td align="left"></td> </tr> <tr> <td align="left"><code>v2ray</code></td> <td align="left">5.44.1</td> <td align="left">5.47.0</td> <td align="left"></td> </tr> <tr> <td align="left"><code>sabiql</code></td> <td align="left">1.6.2</td> <td align="left">1.8.2</td> <td align="left"></td> </tr> <tr> <td align="left"><code>sql-studio</code></td> <td align="left">-</td> <td align="left">0.1.51</td> <td align="left">new</td> </tr> <tr> <td align="left"><code>rainfrog</code></td> <td align="left">-</td> <td align="left">0.3.17</td> <td align="left">new</td> </tr> <tr> <td align="left"><code>agentsview</code></td> <td align="left">0.10.0</td> <td align="left">0.15.0</td> <td align="left"></td> </tr> <tr> <td align="left"><code>crush</code></td> <td align="left">-</td> <td align="left">0.51.2</td> <td align="left">new</td> </tr> <tr> <td align="left"><code>tigerfs</code></td> <td align="left">-</td> <td align="left">0.5.0</td> <td align="left">new</td> </tr> <tr> <td align="left"><code>victoria-metrics</code></td> <td align="left">1.137.0</td> <td align="left">1.138.0</td> <td align="left"></td> </tr> <tr> <td align="left"><code>victoria-metrics-cluster</code></td> <td align="left">1.137.0</td> <td align="left">1.138.0</td> <td align="left"></td> </tr> <tr> <td align="left"><code>vmutils</code></td> <td align="left">1.137.0</td> <td align="left">1.138.0</td> <td align="left"></td> </tr> <tr> <td align="left"><code>hugo</code></td> <td align="left">0.157.0</td> <td align="left">0.158.0</td> <td align="left"></td> </tr> <tr> <td align="left"><code>rustfs</code></td> <td align="left">1.0.0-alpha.85</td> <td align="left">1.0.0-alpha.89</td> <td align="left"></td> </tr> <tr> <td align="left"><code>mysqld_exporter</code></td> <td align="left">0.18.0</td> <td align="left">0.19.0</td> <td align="left"></td> </tr> <tr> <td align="left"><code>pg_exporter</code></td> <td align="left">1.2.0</td> <td align="left">1.2.1</td> <td align="left"></td> </tr> <tr> <td align="left"><code>pig</code></td> <td align="left">1.3.1</td> <td align="left">1.3.2</td> <td align="left"></td> </tr> <tr> <td align="left"><code>minio</code></td> <td align="left">20260214</td> <td align="left">20260321</td> <td align="left"></td> </tr> <tr> <td align="left"><code>mcli</code></td> <td align="left">20260213</td> <td align="left">20260321</td> <td align="left"></td> </tr> <tr> <td align="left"><code>claude</code></td> <td align="left">2.1.68</td> <td align="left">2.1.81</td> <td align="left"></td> </tr> <tr> <td align="left"><code>ivroysql</code></td> <td align="left">5.1</td> <td align="left">5.3</td> <td align="left"></td> </tr> </tbody> </table> <p><strong>Checksums</strong></p> <div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="0d9f907ff626203578c687d1418b38ba pigsty-pkg-v4.2.2.d12.aarch64.tgz 4129baf773c3005f4d697cf452f927a0 pigsty-pkg-v4.2.2.d12.x86_64.tgz 40d5a0d9c2a97615bf0421bae42458ae pigsty-pkg-v4.2.2.d13.aarch64.tgz cf91113a2296ad11fff79802ac9b1483 pigsty-pkg-v4.2.2.d13.x86_64.tgz dbccfeb3978ffb928bd0b501c3c0d42d pigsty-pkg-v4.2.2.el10.aarch64.tgz 8c848a4e3fa93c2455285fbcad5ddd78 pigsty-pkg-v4.2.2.el10.x86_64.tgz 7c15c9a36f7d2dd740019c20e8c75a4b pigsty-pkg-v4.2.2.el9.aarch64.tgz 7d6e9e529236a0db2382f42660790ed9 pigsty-pkg-v4.2.2.el9.x86_64.tgz 8f64bb14885ce330603172b186062671 pigsty-pkg-v4.2.2.u22.aarch64.tgz 16d4c36c9e1ff848848c34a257b1025c pigsty-pkg-v4.2.2.u22.x86_64.tgz 401230741af5b04f163ffc8e688315ab pigsty-pkg-v4.2.2.u24.aarch64.tgz 5312aa0841694fc560778b9377a32c89 pigsty-pkg-v4.2.2.u24.x86_64.tgz cabeeb898b56b26c0855f33d5e60411a pigsty-v4.2.2.tgz"><pre>0d9f907ff626203578c687d1418b38ba pigsty-pkg-v4.2.2.d12.aarch64.tgz 4129baf773c3005f4d697cf452f927a0 pigsty-pkg-v4.2.2.d12.x86_64.tgz 40d5a0d9c2a97615bf0421bae42458ae pigsty-pkg-v4.2.2.d13.aarch64.tgz cf91113a2296ad11fff79802ac9b1483 pigsty-pkg-v4.2.2.d13.x86_64.tgz dbccfeb3978ffb928bd0b501c3c0d42d pigsty-pkg-v4.2.2.el10.aarch64.tgz 8c848a4e3fa93c2455285fbcad5ddd78 pigsty-pkg-v4.2.2.el10.x86_64.tgz 7c15c9a36f7d2dd740019c20e8c75a4b pigsty-pkg-v4.2.2.el9.aarch64.tgz 7d6e9e529236a0db2382f42660790ed9 pigsty-pkg-v4.2.2.el9.x86_64.tgz 8f64bb14885ce330603172b186062671 pigsty-pkg-v4.2.2.u22.aarch64.tgz 16d4c36c9e1ff848848c34a257b1025c pigsty-pkg-v4.2.2.u22.x86_64.tgz 401230741af5b04f163ffc8e688315ab pigsty-pkg-v4.2.2.u24.aarch64.tgz 5312aa0841694fc560778b9377a32c89 pigsty-pkg-v4.2.2.u24.x86_64.tgz cabeeb898b56b26c0855f33d5e60411a pigsty-v4.2.2.tgz</pre></div> Vonng tag:github.com,2008:Repository/268680961/v4.2.1 2026-03-06T01:37:32Z v4.2.1 PG 13 Obsolete <p>A maintenance release that adds 3 new extensions.</p> <p><strong>Major Changes</strong></p> <ul> <li><strong>New Extensions</strong>: <code>pg_eviltransform</code> is added to the GIS package group, <code>pg_pinyin</code> to the FTS group, and <code>pg_qos</code> to the admin group — all for PG 14–18.</li> <li><strong>PG13 Removed</strong>: All <code>pgdg13</code>, <code>pgdg13-nonfree</code> repo entries and PG13 package aliases (<code>pg13-*</code>) are removed from every platform variant (EL7/8/9/10, Debian 12/13, Ubuntu 22/24, both x86_64 and aarch64).</li> <li>Config templates (<code>fat.yml</code>, <code>pro.yml</code>, <code>dev.yml</code>, <code>el.yml</code>, <code>debian.yml</code>) no longer reference PG13 packages or repos. Extension version comments are updated to reflect PG 14–18 coverage only.</li> <li><strong>Percona Repo</strong>: Origin URL updated from <code>ppg-18.1</code> to <code>ppg-18.3</code> to track the latest Percona PostgreSQL distribution.</li> <li><strong>Nginx Repo</strong>: Module tag for the Nginx upstream APT repo corrected from <code>infra</code> to <code>nginx</code> on Debian/Ubuntu platforms.</li> <li><strong>UV Venv Fix</strong>: <code>roles/node/tasks/pkg.yml</code> now checks for an existing virtualenv before running <code>uv venv</code>, preventing redundant re-creation and potential errors on re-provisioning.</li> <li><strong>Docker Image</strong>: <code>less</code> is added to the Pigsty Docker image base packages.</li> <li><strong>Demo Config</strong>: Default firewall rules in <code>el.yml</code> and <code>debian.yml</code> demo configs now include port <code>5432</code> for direct PostgreSQL access.</li> </ul> <p><strong>Compatibility Notes</strong></p> <p>PostgreSQL 13 reached its <a href="https://www.postgresql.org/support/versioning/" rel="nofollow">end of life</a> on 2025-11-13.<br> The PGDG YUM repository has archived and removed the <a href="https://yum.postgresql.org/news/pg13-end-of-life/" rel="nofollow">pg13</a> / <a href="https://yum.postgresql.org/news/pg12-end-of-life/" rel="nofollow">pg12</a> directories.<br> If you install Pigsty on EL systems (even without using PG 13), repo access failures may cause installation or update errors.</p> <p>You can either upgrade directly to Pigsty v4.2.1, or manually edit the <code>repo_upstream_default</code> variable in your corresponding OS file under <code>roles/node_id/vars/</code> and remove the pg13 repo line.</p> <p>Additionally, EL8 remains in the Pigsty compatible OS list, but starting from this release, offline packages for EL8 will no longer be published.</p> <p>No other breaking API or configuration changes in this release.</p> <p><strong>7 commits</strong>, 84 files changed, +4,925 / -5,351 lines (<code>v4.2.0..v4.2.1</code>, 2026-03-04 ~ 2026-03-06)</p> <p><strong>PostgreSQL Package Updates</strong></p> <table> <thead> <tr> <th align="left">Package</th> <th align="left">Old Version</th> <th align="left">New Version</th> <th align="left">Notes</th> </tr> </thead> <tbody> <tr> <td align="left">timescaledb</td> <td align="left">2.25.1</td> <td align="left">2.25.2</td> <td align="left"></td> </tr> <tr> <td align="left">vchord</td> <td align="left">1.1.0</td> <td align="left">1.1.1</td> <td align="left">Added clang build dependency, bug fixes</td> </tr> <tr> <td align="left">aggs_for_vecs</td> <td align="left">1.4.0</td> <td align="left">1.4.1</td> <td align="left"></td> </tr> <tr> <td align="left">pg_search</td> <td align="left">0.21.9</td> <td align="left">0.21.12</td> <td align="left"></td> </tr> <tr> <td align="left">pg_pinyin</td> <td align="left">-</td> <td align="left">0.0.2</td> <td align="left">New extension</td> </tr> <tr> <td align="left">pg_eviltransform</td> <td align="left">-</td> <td align="left">0.0.2</td> <td align="left">New extension</td> </tr> <tr> <td align="left">pg_qos</td> <td align="left">-</td> <td align="left">1.0.0</td> <td align="left">New extension, QoS resource governance</td> </tr> </tbody> </table> <p><strong>Infrastructure Package Updates</strong></p> <table> <thead> <tr> <th align="left">Name</th> <th align="left">Old Version</th> <th align="left">New Version</th> <th align="left">Notes</th> </tr> </thead> <tbody> <tr> <td align="left"><code>asciinema</code></td> <td align="left">3.1.0</td> <td align="left">3.2.0</td> <td align="left"></td> </tr> <tr> <td align="left"><code>grafana-infinity-ds</code></td> <td align="left">3.7.2</td> <td align="left">3.7.3</td> <td align="left"></td> </tr> <tr> <td align="left"><code>victoria-metrics</code></td> <td align="left">1.136.0</td> <td align="left">1.137.0</td> <td align="left"></td> </tr> <tr> <td align="left"><code>victoria-metrics-cluster</code></td> <td align="left">1.136.0</td> <td align="left">1.137.0</td> <td align="left"></td> </tr> <tr> <td align="left"><code>vmutils</code></td> <td align="left">1.136.0</td> <td align="left">1.137.0</td> <td align="left"></td> </tr> <tr> <td align="left"><code>hugo</code></td> <td align="left">0.155.3</td> <td align="left">0.157.0</td> <td align="left"></td> </tr> <tr> <td align="left"><code>opencode</code></td> <td align="left">1.2.15</td> <td align="left">1.2.17</td> <td align="left"></td> </tr> <tr> <td align="left"><code>rustfs</code></td> <td align="left">1.0.0-alpha.83</td> <td align="left">1.0.0-alpha.85</td> <td align="left"></td> </tr> <tr> <td align="left"><code>seaweedfs</code></td> <td align="left">4.13</td> <td align="left">4.15</td> <td align="left"></td> </tr> <tr> <td align="left"><code>tigerbeetle</code></td> <td align="left">0.16.74</td> <td align="left">0.16.75</td> <td align="left"></td> </tr> <tr> <td align="left"><code>uv</code></td> <td align="left">0.10.4</td> <td align="left">0.10.8</td> <td align="left"></td> </tr> <tr> <td align="left"><code>codex</code></td> <td align="left">0.105.0</td> <td align="left">0.110.0</td> <td align="left"></td> </tr> <tr> <td align="left"><code>claude</code></td> <td align="left">2.1.59</td> <td align="left">2.1.68</td> <td align="left"></td> </tr> <tr> <td align="left"><code>xray</code></td> <td align="left">-</td> <td align="left">26.2.6</td> <td align="left">New</td> </tr> <tr> <td align="left"><code>gost</code></td> <td align="left">-</td> <td align="left">2.12.0</td> <td align="left">New</td> </tr> <tr> <td align="left"><code>sabiql</code></td> <td align="left">-</td> <td align="left">1.6.2</td> <td align="left">New</td> </tr> <tr> <td align="left"><code>agentsview</code></td> <td align="left">-</td> <td align="left">0.10.0</td> <td align="left">New</td> </tr> </tbody> </table> <p><strong>Checksums</strong></p> <div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="262b7671424a38b208872582fe835ef8 pigsty-v4.2.1.tgz 62edcca1d1e572a247be018e1c26eda8 pigsty-pkg-v4.2.1.d12.aarch64.tgz 1d55367e2fd9106e6f18b7ee112be736 pigsty-pkg-v4.2.1.d12.x86_64.tgz f122b1e5ba8a7ae8e3dc6e6dd53eba65 pigsty-pkg-v4.2.1.d13.aarch64.tgz 617a76bfc8df8766e78abf24339152eb pigsty-pkg-v4.2.1.d13.x86_64.tgz 908509b350403ad1a4a27a88795fee06 pigsty-pkg-v4.2.1.el10.aarch64.tgz 70cb4afd90ed7aea6ab43a264f8eb4a8 pigsty-pkg-v4.2.1.el10.x86_64.tgz 98fbd67334f5c674b12e6af81ef76923 pigsty-pkg-v4.2.1.el9.aarch64.tgz 687fa741ccd9dcf611a2aa964bcf1de8 pigsty-pkg-v4.2.1.el9.x86_64.tgz a2a30f4b1146b3e79be91d5be57615b6 pigsty-pkg-v4.2.1.u22.aarch64.tgz 7a1f571bd8526106775c175ba728eee1 pigsty-pkg-v4.2.1.u22.x86_64.tgz a5574071bac1955798265f71ad73c3d4 pigsty-pkg-v4.2.1.u24.aarch64.tgz 59a7632c650a3c034f1fe6cd589d7ab5 pigsty-pkg-v4.2.1.u24.x86_64.tgz"><pre>262b7671424a38b208872582fe835ef8 pigsty-v4.2.1.tgz 62edcca1d1e572a247be018e1c26eda8 pigsty-pkg-v4.2.1.d12.aarch64.tgz 1d55367e2fd9106e6f18b7ee112be736 pigsty-pkg-v4.2.1.d12.x86_64.tgz f122b1e5ba8a7ae8e3dc6e6dd53eba65 pigsty-pkg-v4.2.1.d13.aarch64.tgz 617a76bfc8df8766e78abf24339152eb pigsty-pkg-v4.2.1.d13.x86_64.tgz 908509b350403ad1a4a27a88795fee06 pigsty-pkg-v4.2.1.el10.aarch64.tgz 70cb4afd90ed7aea6ab43a264f8eb4a8 pigsty-pkg-v4.2.1.el10.x86_64.tgz 98fbd67334f5c674b12e6af81ef76923 pigsty-pkg-v4.2.1.el9.aarch64.tgz 687fa741ccd9dcf611a2aa964bcf1de8 pigsty-pkg-v4.2.1.el9.x86_64.tgz a2a30f4b1146b3e79be91d5be57615b6 pigsty-pkg-v4.2.1.u22.aarch64.tgz 7a1f571bd8526106775c175ba728eee1 pigsty-pkg-v4.2.1.u22.x86_64.tgz a5574071bac1955798265f71ad73c3d4 pigsty-pkg-v4.2.1.u24.aarch64.tgz 59a7632c650a3c034f1fe6cd589d7ab5 pigsty-pkg-v4.2.1.u24.x86_64.tgz</pre></div> <div class="markdown-alert markdown-alert-warning"><p class="markdown-alert-title"><svg data-component="Octicon" class="octicon octicon-alert mr-2" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z"></path></svg>Warning</p><p>PGDG 13/12 YUM REMOVE REMOVED SINCE MAR 2026!</p> </div> Vonng tag:github.com,2008:Repository/268680961/v4.2.0 2026-02-28T06:36:58Z v4.2.0 Kernel Update <h2><strong>Highlights</strong></h2> <ul> <li>Aligned with PostgreSQL out-of-band minor updates: 18.3, 17.9, 16.13, 15.17, 14.22.</li> <li>Total PostgreSQL extension coverage reaches 461 packages.</li> <li>Kernel updates across Babelfish, AgensGraph, pgEdge, OriolePG, OpenHalo, and Cloudberry.</li> <li>Babelfish template now uses a Pigsty-maintained PG17-compatible build, with no WiltonDB repo dependency.</li> <li>Supabase images and self-hosted templates are refreshed to the latest stack, using Pigsty-maintained <a href="https://github.com/pgsty/minio">pgsty/minio</a>.</li> </ul> <h2><strong>Major Changes</strong></h2> <ul> <li><code>mssql</code> now defaults to Babelfish PG17 (<code>pg_version: 17</code>, <code>pg_packages: [babelfish, pgsql-common, sqlcmd]</code>) and no longer requires an extra <code>mssql</code> repo.</li> <li>Kernel install paths are normalized in <code>pg_home_map</code>: <code>mssql -&gt; /usr/babelfish-$v/</code>, <code>gpsql -&gt; /usr/local/cloudberry</code>.</li> <li><code>package_map</code> adds a dedicated <code>cloudberry</code> mapping and fixes <code>babelfish*</code> aliases to versioned RPM/DEB package names.</li> <li>Redis data root default changes from <code>/data</code> to <code>/data/redis</code>; deployment blocks legacy defaults, while <code>redis_remove</code> keeps backward-compatible cleanup.</li> <li><code>configure</code> now supports absolute <code>-o</code> output paths with auto-created parent directories, tri-state region detection (CN/global/offline fallback), and a fix for <code>behind_gfw()</code> hangs.</li> <li>Debian/Ubuntu default repo URL mappings (<code>updates/backports/security</code>) and China mirror components are corrected to prevent bootstrap package failures.</li> <li>Supabase stack is updated (including PostgREST <code>14.5</code> and Vector <code>0.53.0</code>) and now includes missing S3 protocol credential variables.</li> <li>Rich/Sample templates explicitly define <code>dbuser_meta</code> defaults; <code>node.sh</code> systemd completion is simplified.</li> <li><code>pgbackrest</code> stanza initialization now retries (2 attempts, 5-second interval) to reduce lock contention with <code>archive-push</code>.</li> <li>Vibe template now ships <code>@anthropic-ai/claude-code</code>, <code>@openai/codex</code>, and <code>happy-coder</code>, and includes <code>age</code> in the default example.</li> </ul> <h2><strong>PG Software Updates</strong></h2> <ul> <li>PostgreSQL 18.3, 17.9, 16.13, 15.17, 14.22</li> <li><a href="/pgsty/pigsty/blob/v4.2.0/docs/repo/pgsql/rpm/#2026-02-27">RPM Changelog 2026-02-27</a></li> <li><a href="/pgsty/pigsty/blob/v4.2.0/docs/repo/pgsql/deb/#2026-02-27">DEB Changelog 2026-02-27</a></li> <li>Core upgrades: <code>timescaledb 2.25.0 -&gt; 2.25.1</code>, <code>citus 14.0.0-3 -&gt; 14.0.0-4</code>, <code>pg_search -&gt; 0.21.9</code></li> <li>New/rebuilt: <code>pgedge 17.9</code>, <code>spock 5.0.5</code>, <code>lolor 1.2.2</code>, <code>snowflake 2.4</code>, <code>babelfish 5.5.0</code>, <code>cloudberry 2.0.0</code></li> <li>Kernel-side updates: <code>oriolepg 17.11 -&gt; 17.16</code>, <code>orioledb beta12 -&gt; beta14</code>, <code>openhalo 14.10 -&gt; 1.0(14.18)</code></li> </ul> <table> <thead> <tr> <th align="left">Package</th> <th align="left">Old Version</th> <th align="left">New Version</th> <th align="left">Notes</th> </tr> </thead> <tbody> <tr> <td align="left"><code>timescaledb</code></td> <td align="left">2.25.0</td> <td align="left">2.25.1</td> <td align="left"></td> </tr> <tr> <td align="left"><code>citus</code></td> <td align="left">14.0.0-3</td> <td align="left">14.0.0-4</td> <td align="left">Rebuilt from the latest official release</td> </tr> <tr> <td align="left"><code>age</code></td> <td align="left">1.7.0</td> <td align="left">1.7.0</td> <td align="left">Added PG 17 support for version 1.7.0</td> </tr> <tr> <td align="left"><code>pgmq</code></td> <td align="left">1.10.0</td> <td align="left">1.10.1</td> <td align="left">Package currently unavailable</td> </tr> <tr> <td align="left"><code>pg_search</code></td> <td align="left">0.21.7 / 0.21.6</td> <td align="left">0.21.9</td> <td align="left">Previous RPM/DEB versions differ</td> </tr> <tr> <td align="left"><code>oriolepg</code></td> <td align="left">17.11</td> <td align="left">17.16</td> <td align="left">OriolePG kernel update</td> </tr> <tr> <td align="left"><code>orioledb</code></td> <td align="left">beta12</td> <td align="left">beta14</td> <td align="left">Matches OriolePG 17.16</td> </tr> <tr> <td align="left"><code>openhalo</code></td> <td align="left">14.10</td> <td align="left">1.0</td> <td align="left">Updated and renamed, based on 14.18</td> </tr> <tr> <td align="left"><code>pgedge</code></td> <td align="left">-</td> <td align="left">17.9</td> <td align="left">New multi-master edge-distributed kernel</td> </tr> <tr> <td align="left"><code>spock</code></td> <td align="left">-</td> <td align="left">5.0.5</td> <td align="left">New core pgEdge extension</td> </tr> <tr> <td align="left"><code>lolor</code></td> <td align="left">-</td> <td align="left">1.2.2</td> <td align="left">New core pgEdge extension</td> </tr> <tr> <td align="left"><code>snowflake</code></td> <td align="left">-</td> <td align="left">2.4</td> <td align="left">New core pgEdge extension</td> </tr> <tr> <td align="left"><code>babelfishpg</code></td> <td align="left">-</td> <td align="left">5.5.0</td> <td align="left">New BabelfishPG package group</td> </tr> <tr> <td align="left"><code>babelfish</code></td> <td align="left">-</td> <td align="left">5.5.0</td> <td align="left">New Babelfish compatibility package</td> </tr> <tr> <td align="left"><code>antlr4-runtime413</code></td> <td align="left">-</td> <td align="left">4.13</td> <td align="left">New runtime dependency for Babelfish</td> </tr> <tr> <td align="left"><code>cloudberry</code></td> <td align="left">-</td> <td align="left">2.0.0</td> <td align="left">RPM build only</td> </tr> <tr> <td align="left"><code>pg_background</code></td> <td align="left">-</td> <td align="left">1.8</td> <td align="left">DEB build only</td> </tr> </tbody> </table> <h2><strong>Infrastructure Software Updates</strong></h2> <table> <thead> <tr> <th align="left">Name</th> <th align="left">Old Version</th> <th align="left">New Version</th> </tr> </thead> <tbody> <tr> <td align="left"><code>grafana</code></td> <td align="left">12.3.2</td> <td align="left">12.4.0</td> </tr> <tr> <td align="left"><code>prometheus</code></td> <td align="left">3.9.1</td> <td align="left">3.10.0</td> </tr> <tr> <td align="left"><code>mongodb_exporter</code></td> <td align="left">0.47.2</td> <td align="left">0.49.0</td> </tr> <tr> <td align="left"><code>victoria-metrics</code></td> <td align="left">1.135.0</td> <td align="left">1.136.0</td> </tr> <tr> <td align="left"><code>victoria-metrics-cluster</code></td> <td align="left">1.135.0</td> <td align="left">1.136.0</td> </tr> <tr> <td align="left"><code>vmutils</code></td> <td align="left">1.135.0</td> <td align="left">1.136.0</td> </tr> <tr> <td align="left"><code>victoria-logs</code></td> <td align="left">1.45.0</td> <td align="left">1.47.0</td> </tr> <tr> <td align="left"><code>vlagent</code></td> <td align="left">1.45.0</td> <td align="left">1.47.0</td> </tr> <tr> <td align="left"><code>vlogscli</code></td> <td align="left">1.45.0</td> <td align="left">1.47.0</td> </tr> <tr> <td align="left"><code>loki</code></td> <td align="left">3.6.5</td> <td align="left">3.6.7</td> </tr> <tr> <td align="left"><code>promtail</code></td> <td align="left">3.6.5</td> <td align="left">3.6.7</td> </tr> <tr> <td align="left"><code>logcli</code></td> <td align="left">3.6.5</td> <td align="left">3.6.7</td> </tr> <tr> <td align="left"><code>grafana-victorialogs-ds</code></td> <td align="left">0.24.1</td> <td align="left">0.26.2</td> </tr> <tr> <td align="left"><code>grafana-victoriametrics-ds</code></td> <td align="left">0.21.0</td> <td align="left">0.23.1</td> </tr> <tr> <td align="left"><code>grafana-infinity-ds</code></td> <td align="left">3.7.0</td> <td align="left">3.7.2</td> </tr> <tr> <td align="left"><code>redis_exporter</code></td> <td align="left">1.80.2</td> <td align="left">1.81.0</td> </tr> <tr> <td align="left"><code>etcd</code></td> <td align="left">3.6.7</td> <td align="left">3.6.8</td> </tr> <tr> <td align="left"><code>dblab</code></td> <td align="left">0.34.2</td> <td align="left">0.34.3</td> </tr> <tr> <td align="left"><code>tigerbeetle</code></td> <td align="left">0.16.72</td> <td align="left">0.16.74</td> </tr> <tr> <td align="left"><code>seaweedfs</code></td> <td align="left">4.09</td> <td align="left">4.13</td> </tr> <tr> <td align="left"><code>rustfs</code></td> <td align="left">1.0.0-alpha.82</td> <td align="left">1.0.0-alpha.83</td> </tr> <tr> <td align="left"><code>uv</code></td> <td align="left">0.10.0</td> <td align="left">0.10.4</td> </tr> <tr> <td align="left"><code>kafka</code></td> <td align="left">4.1.1</td> <td align="left">4.2.0</td> </tr> <tr> <td align="left"><code>npgsqlrest</code></td> <td align="left">3.7.0</td> <td align="left">3.10.0</td> </tr> <tr> <td align="left"><code>postgrest</code></td> <td align="left">14.4</td> <td align="left">14.5</td> </tr> <tr> <td align="left"><code>caddy</code></td> <td align="left">2.10.2</td> <td align="left">2.11.1</td> </tr> <tr> <td align="left"><code>rclone</code></td> <td align="left">1.73.0</td> <td align="left">1.73.1</td> </tr> <tr> <td align="left"><code>pev2</code></td> <td align="left">1.20.1</td> <td align="left">1.20.2</td> </tr> <tr> <td align="left"><code>genai-toolbox</code></td> <td align="left">0.25.0</td> <td align="left">0.27.0</td> </tr> <tr> <td align="left"><code>opencode</code></td> <td align="left">1.1.59</td> <td align="left">1.2.15</td> </tr> <tr> <td align="left"><code>claude</code></td> <td align="left">2.1.37</td> <td align="left">2.1.59</td> </tr> <tr> <td align="left"><code>codex</code></td> <td align="left">0.104.0</td> <td align="left">0.105.0</td> </tr> <tr> <td align="left"><code>code</code></td> <td align="left">1.109.2</td> <td align="left">1.109.4</td> </tr> <tr> <td align="left"><code>code-server</code></td> <td align="left">4.108.2</td> <td align="left">4.109.2</td> </tr> <tr> <td align="left"><code>nodejs</code></td> <td align="left">24.13.1</td> <td align="left">24.14.0</td> </tr> <tr> <td align="left"><code>pig</code></td> <td align="left">1.1.2</td> <td align="left">1.3.0</td> </tr> <tr> <td align="left"><code>stalwart</code></td> <td align="left">-</td> <td align="left">0.15.5</td> </tr> <tr> <td align="left"><code>maddy</code></td> <td align="left">-</td> <td align="left">0.8.2</td> </tr> </tbody> </table> <h2><strong>API Changes</strong></h2> <ul> <li><code>pg_mode</code> now includes <code>agens</code> and <code>pgedge</code>.</li> <li><code>mssql</code> defaults are updated to <code>pg_version: 17</code> and <code>pg_packages: [babelfish, pgsql-common, sqlcmd]</code>.</li> <li>Kernel/package alias mappings are updated in <code>pg_home_map</code> and <code>package_map</code> (Babelfish, OpenHalo, IvorySQL, Cloudberry, pgEdge family).</li> <li><code>redis_fs_main</code> now defaults to <code>/data/redis</code>, with deployment guardrails and backward-compatible cleanup behavior.</li> <li><code>configure</code> output path handling and region detection logic are updated, with offline fallback warnings and unified SSH probe timeouts.</li> <li><code>grafana.ini.j2</code> is updated for Grafana 12.4 config changes and deprecations.</li> </ul> <h2><strong>Compatibility Notes</strong></h2> <ul> <li>If existing Redis configs still use <code>redis_fs_main: /data</code>, migrate to <code>/data/redis</code> before deployment.</li> <li>Grafana 12.4 changes data link merge behavior. This release moves key links into field overrides; review custom dashboards accordingly.</li> </ul> <p><strong>26 commits</strong>, 122 files changed, +2,116 / -2,215 lines (<code>v4.1.0..v4.2.0</code>, 2026-02-15 ~ 2026-02-28)</p> <h2><strong>Checksums</strong></h2> <div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="24a90427a7e7351ca1a43a7d53289970 pigsty-v4.2.0.tgz d980edf5eeb0419d4f1aa7feb0100e14 pigsty-pkg-v4.2.0.d12.aarch64.tgz 24bc237d841457fbdcc899e1d0a3f87e pigsty-pkg-v4.2.0.d12.x86_64.tgz e395b38685e2ecbe9c3a2850876d9b7b pigsty-pkg-v4.2.0.d13.aarch64.tgz c5c8776f9bead9f29528b26058801f83 pigsty-pkg-v4.2.0.d13.x86_64.tgz 28ea40434bd06135fc8adc0df1c8407d pigsty-pkg-v4.2.0.el10.aarch64.tgz 58ad715ac20dc1717d1687daecfcf625 pigsty-pkg-v4.2.0.el10.x86_64.tgz 008f955439ea311581dd0ebcf5b8bd34 pigsty-pkg-v4.2.0.el8.aarch64.tgz 2acfd127a517b09f07540f808fe9547a pigsty-pkg-v4.2.0.el8.x86_64.tgz 58e62a92f35291a40e3f05839a1b6bc4 pigsty-pkg-v4.2.0.el9.aarch64.tgz d311bfdf5d5f60df5fe6cb3d4ced4f9c pigsty-pkg-v4.2.0.el9.x86_64.tgz c98972fe9226657ac1faa7b72a22498b pigsty-pkg-v4.2.0.u22.aarch64.tgz 44a174ee9ba030ac1ea386cf0b85f6e7 pigsty-pkg-v4.2.0.u22.x86_64.tgz 143e404f4681c7d0bbd78ef7982cd652 pigsty-pkg-v4.2.0.u24.aarch64.tgz 00dfa86f477f3adff984906211ab3190 pigsty-pkg-v4.2.0.u24.x86_64.tgz"><pre>24a90427a7e7351ca1a43a7d53289970 pigsty-v4.2.0.tgz d980edf5eeb0419d4f1aa7feb0100e14 pigsty-pkg-v4.2.0.d12.aarch64.tgz 24bc237d841457fbdcc899e1d0a3f87e pigsty-pkg-v4.2.0.d12.x86_64.tgz e395b38685e2ecbe9c3a2850876d9b7b pigsty-pkg-v4.2.0.d13.aarch64.tgz c5c8776f9bead9f29528b26058801f83 pigsty-pkg-v4.2.0.d13.x86_64.tgz 28ea40434bd06135fc8adc0df1c8407d pigsty-pkg-v4.2.0.el10.aarch64.tgz 58ad715ac20dc1717d1687daecfcf625 pigsty-pkg-v4.2.0.el10.x86_64.tgz 008f955439ea311581dd0ebcf5b8bd34 pigsty-pkg-v4.2.0.el8.aarch64.tgz 2acfd127a517b09f07540f808fe9547a pigsty-pkg-v4.2.0.el8.x86_64.tgz 58e62a92f35291a40e3f05839a1b6bc4 pigsty-pkg-v4.2.0.el9.aarch64.tgz d311bfdf5d5f60df5fe6cb3d4ced4f9c pigsty-pkg-v4.2.0.el9.x86_64.tgz c98972fe9226657ac1faa7b72a22498b pigsty-pkg-v4.2.0.u22.aarch64.tgz 44a174ee9ba030ac1ea386cf0b85f6e7 pigsty-pkg-v4.2.0.u22.x86_64.tgz 143e404f4681c7d0bbd78ef7982cd652 pigsty-pkg-v4.2.0.u24.aarch64.tgz 00dfa86f477f3adff984906211ab3190 pigsty-pkg-v4.2.0.u24.x86_64.tgz</pre></div> Vonng tag:github.com,2008:Repository/268680961/v4.1.0 2026-02-23T07:02:12Z v4.1.0 PG & Linux Minor Update <div class="markdown-alert markdown-alert-caution"><p class="markdown-alert-title"><svg data-component="Octicon" class="octicon octicon-stop mr-2" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="M4.47.22A.749.749 0 0 1 5 0h6c.199 0 .389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749 0 0 1-.22.53l-4.25 4.25A.749.749 0 0 1 11 16H5a.749.749 0 0 1-.53-.22L.22 11.53A.749.749 0 0 1 0 11V5c0-.199.079-.389.22-.53Zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5ZM8 4a.75.75 0 0 1 .75.75v3.5a.75.75 0 0 1-1.5 0v-3.5A.75.75 0 0 1 8 4Zm0 8a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"></path></svg>Caution</p> <h2>Do Not Deploy with v4.1.0 Packages Until PostgreSQL Patch Release</h2> <p>The offline packages shipped with Pigsty v4.1.0 were built against PostgreSQL 18.2, 17.8, and corresponding minor versions. <a href="https://www.postgresql.org/about/news/out-of-cycle-release-scheduled-for-february-26-2026-3241/" rel="nofollow">Two bugs have since been identified in these releases, and the PostgreSQL Global Development Group will publish out-of-cycle minor releases (e.g. 18.3, 17.9, …) on 2026-02-26 to address them.</a><br> We strongly recommend holding off on any new deployment until Pigsty v4.2.0 is available with the patched PostgreSQL packages. Specifically:</p> <p>Do not perform online installations during this window — upstream repos will pull in the affected versions until the fix is published.<br> Do not use the v4.1.0 offline packages — they contain the affected binaries.<br> If you have an urgent deployment need, consider using the <a href="https://github.com/pgsty/pigsty/releases/tag/v4.0.0">v4.0.0 offline packages</a>, which ship with the PostgreSQL 18.1 series and are not affected. We will release Pigsty v4.2.0 shortly after the upstream patch lands. Stay tuned.</p> </div> <div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="curl https://pigsty.io/get | bash -s v4.1.0"><pre>curl https://pigsty.io/get <span class="pl-k">|</span> bash -s v4.1.0</pre></div> <p><strong>72 commits</strong>, 252 files changed, +5,744 / -5,015 lines (<code>v4.0.0..v4.1.0</code>, 2026-02-02 ~ 2026-02-13)</p> <p><strong>Highlights</strong></p> <ul> <li>PostgreSQL minor update: 18.2, 17.8, 16.12, 15.16, 14.21.</li> <li>Default EL minors updated to <code>9.7 / 10.1</code>, Debian minors updated to <code>12.13 / 13.3</code>.</li> <li>Added 7 new extensions, bringing total support to <strong>451</strong> extensions.</li> <li><code>pig</code> moved from a traditional script interface to an <strong>Agent-Native CLI</strong> (<code>1.0.0 -&gt; 1.1.0</code>), with explicit context and JSON/YAML output.</li> <li><code>pig</code> now provides unified <strong>major/minor upgrade</strong> workflows for PostgreSQL and OS lifecycle updates.</li> <li><code>pg_exporter</code> upgraded to <strong>v1.2.0</strong> (<code>1.1.2 -&gt; 1.2.0</code>), with PG17/18 metric pipeline and unit fixes.</li> <li>Default firewall security policy updated: <code>node_firewall_mode</code> now defaults to <code>zone</code>, and <code>node_firewall_public_port</code> default changed from <code>[22,80,443,5432]</code> to <code>[22,80,443]</code>.</li> <li>Focused PGSQL/PGCAT Grafana usability fixes: dynamic datasource <code>$dsn</code>, schema-level drilldown, age metrics, link mapping consistency.</li> <li>Added one-click Mattermost application template, including database/storage/portal and optional PGFS/JuiceFS options.</li> <li>Refactored <code>infra-rm</code> uninstall flow with segmented <code>deregister</code> cleanup for Victoria targets, Grafana datasources, and Vector logs.</li> <li>Optimized default PostgreSQL autovacuum thresholds to reduce excessive vacuum/analyze on small tables.</li> <li>Fixed FD limit chain: added <code>fs.nr_open=8M</code> and unified <code>LimitNOFILE=8M</code> to avoid startup failures from systemd/setrlimit.</li> <li>Updated VIBE defaults: Jupyter disabled by default; Claude Code managed via npm package.</li> </ul> <p><strong>Version Updates</strong></p> <ul> <li>Pigsty version: <code>v4.0.0 -&gt; v4.1.0</code></li> <li><code>pig</code> CLI: <code>1.0.0 -&gt; 1.1.0</code> (Agent-Native + major/minor upgrade support)</li> <li><code>pg_exporter</code>: <code>1.1.2 -&gt; 1.2.0</code></li> <li>Default EL minors: <code>9.6/10.0 -&gt; 9.7/10.1</code></li> <li>Default Debian minors: <code>12.12/13.1 -&gt; 12.13/13.3</code></li> </ul> <p><strong>Extension Updates</strong></p> <ul> <li><a href="/pgsty/pigsty/blob/v4.1.0/docs/repo/pgsql/rpm/#2026-02-12">RPM Changelog 2026-02-12</a></li> <li><a href="/pgsty/pigsty/blob/v4.1.0/docs/repo/pgsql/deb/#2026-02-12">DEB Changelog 2026-02-12</a></li> <li>timescaledb <code>2.24.0 -&gt; 2.25.0</code></li> <li>pg_search <code>0.21.4 -&gt; 0.21.7</code></li> <li>pgmq <code>1.9.0 -&gt; 1.10.0</code></li> <li>pg_textsearch <code>0.4.0 -&gt; 0.5.0</code></li> <li>pljs <code>1.0.4 -&gt; 1.0.5</code></li> <li>pg_track_optimizer <code>0.9.1</code> (new)</li> <li>nominatim_fdw <code>1.1.0</code> (new)</li> <li>pg_utl_smtp <code>1.0.0</code> (new)</li> <li>pg_strict <code>1.0.2</code> (new)</li> <li>pgmb <code>1.0.0</code> (new)</li> <li>pg_pwhash (new support)</li> <li>informix_fdw (new support)</li> </ul> <p><strong>INFRA Component Versions</strong></p> <p><a href="/pgsty/pigsty/blob/v4.1.0/docs/repo/infra/log/#2026-02-12">Infra Changelog 2026-02-12</a></p> <table> <thead> <tr> <th>Package</th> <th>Version</th> <th>Package</th> <th>Version</th> </tr> </thead> <tbody> <tr> <td>victoria-metrics</td> <td>1.135.0</td> <td>victoria-logs</td> <td>1.45.0</td> </tr> <tr> <td>vector</td> <td>0.53.0</td> <td>grafana</td> <td>12.3.2</td> </tr> <tr> <td>alertmanager</td> <td>0.31.1</td> <td>etcd</td> <td>3.6.7</td> </tr> <tr> <td>duckdb</td> <td>1.4.4</td> <td>pg_exporter</td> <td>1.2.0</td> </tr> <tr> <td>pig</td> <td>1.1.0</td> <td>claude</td> <td>2.1.37</td> </tr> <tr> <td>opencode</td> <td>1.1.59</td> <td>uv</td> <td>0.10.0</td> </tr> <tr> <td>code-server</td> <td>4.108.2</td> <td>caddy</td> <td>2.10.2</td> </tr> <tr> <td>hugo</td> <td>0.155.2</td> <td>cloudflared</td> <td>2026.2.0</td> </tr> <tr> <td>headscale</td> <td>0.28.0</td> <td></td> <td></td> </tr> </tbody> </table> <p><strong>API Changes</strong></p> <ul> <li>Corrected template guard for <code>io_method</code> / <code>io_workers</code> from <code>pg_version &gt;= 17</code> to <code>pg_version &gt;= 18</code>.</li> <li>Fixed PG18 guards for <code>idle_replication_slot_timeout</code> / <code>initdb --no-data-checksums</code>.</li> <li>Broadened <code>maintenance_io_concurrency</code> effective range to <code>PG13+</code>.</li> <li>Raised <code>autovacuum_vacuum_threshold</code>: <code>oltp/crit/tiny</code> from 50 to 500, <code>olap</code> to 1000.</li> <li>Raised <code>autovacuum_analyze_threshold</code>: <code>oltp/crit/tiny</code> from 50 to 250, <code>olap</code> to 500.</li> <li>Increased default <code>checkpoint_completion_target</code> from <code>0.90</code> to <code>0.95</code>.</li> <li>Added <code>fs.nr_open=8388608</code> in node tuned templates and aligned <code>fs.file-max / fs.nr_open / LimitNOFILE</code>.</li> <li>Changed postgres/patroni/minio systemd <code>LimitNOFILE</code> from <code>16777216</code> to <code>8388608</code>.</li> <li>Added <code>fs.nr_open: 8388608</code> into default <code>node_sysctl_params</code>.</li> <li>Changed <code>node_firewall_mode</code> default from <code>none</code> to <code>zone</code>: firewall enabled by default, intranet trusted, and only <code>node_firewall_public_port</code> exposed publicly; set <code>none</code> for fully self-managed firewall.</li> <li>Changed <code>node_firewall_public_port</code> default from <code>[22,80,443,5432]</code> to <code>[22,80,443]</code>; add <code>5432</code> explicitly only when public DB access is required. Firewall rules are add-only, so existing nodes that already exposed <code>5432</code> must remove it manually. Single-node experience templates (such as <code>meta</code> / <code>vibe</code>) explicitly override and keep <code>5432</code> for remote usage.</li> <li>Added <code>bin/validate</code> checks for <code>pg_databases[*].parameters</code> and <code>pg_hba_rules[*].order</code>; fixed HBA validation not returning failure properly.</li> <li>Added segmented tags in <code>infra-rm.yml</code>: <code>deregister</code>, <code>config</code>, <code>env</code>, etc.</li> <li>Updated VIBE defaults: <code>jupyter_enabled=false</code>, <code>npm_packages</code> include <code>@anthropic-ai/claude-code</code> and <code>happy-coder</code>, plus <code>CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1</code>.</li> <li>PgBouncer alias cleanup: <code>pool_size_reserve -&gt; pool_reserve</code>, <code>pool_max_db_conn -&gt; pool_connlimit</code>.</li> </ul> <p><strong>Compatibility Fixes (Deduplicated)</strong></p> <ul> <li>Note: repeated regressions/re-fixes of the same issue are counted once and merged by problem domain below.</li> <li>Fixed Redis <code>replicaof</code> empty-guard logic and systemd stop behavior.</li> <li>Fixed schema/table/sequence qualification, identifier quoting, and logging format safety in <code>pg_migration</code>.</li> <li>Fixed restart targets and variable usage in pgsql role handlers.</li> <li>Fixed blackbox config filename cleanup item and pgAdmin pgpass file format.</li> <li>Made <code>pg_exporter</code> startup non-blocking to avoid slowing main flow when exporter fails.</li> <li>Simplified VIP CIDR parsing: default mask <code>24</code> when omitted.</li> <li>Increased MinIO health-check retries from <code>3</code> to <code>5</code>.</li> <li>Switched node hostname setup to Ansible hostname module instead of shell calls.</li> <li>Fixed <code>.env</code> format for <code>app/electric</code> and <code>app/pg_exporter</code> to standard <code>KEY=VALUE</code>.</li> <li>Fixed <code>pg_crontab</code> syntax error in <code>pigsty.yml</code>.</li> <li>Updated ETCD docs to clarify default TLS vs optional mTLS semantics.</li> <li>Fixed <code>repo-add</code> argument passing, Debian CN mirror component compatibility, and <code>bin/psql.py</code> Python 3 compatibility.</li> <li>Hardened redis-exporter credential file permissions.</li> <li><code>pgsql-user.yml</code> now masks credential logs (<code>no_log</code>) on sensitive steps.</li> <li>Fixed gate conditions when <code>pg_monitor</code> registers Victoria targets.</li> <li>Changed <code>pg_remove</code> backup cleanup to cluster-level directory to avoid deleting other cluster backups.</li> </ul> <p><strong>Commit List (<code>v4.0.0..v4.1.0</code>, 72 commits, 2026-02-02 ~ 2026-02-13)</strong></p> <div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="7410de401 v4.1.0 release fa31213ce conf(node): default firewall to zone with single-node 5432 override bb8382c58 update default extension list to 451 770d01959 hide user credential in pgsql-user playbook 7219a896c pg_monitor: fix victoria registration gate conditions 084c98432 remove one cluster in backup dir during pg_remove 7005617f1 pgsql: drop legacy pgbouncer pool parameter aliases f8165a886 docs(roles): fix typos and align juice role documentation 06a589218 chore(meta): normalize platform versions for current lint schema e0a208248 fix(roles): harden redis exporter file permissions fd0469881 terraform/vagrant: parameterize aliyun region/zone, fix vagrant scripts 74c59aabe grafana: fix dashboard links, descriptions, and overrides 443e58724 conf: clean legacy params and fix template references 536c4b39d adjust grafana dashboard dead links f3b9866ce grafana(pgsql): fix panel typos and title consistency bcb69be11 grafana(pgsql): fix drilldown links and variable mappings 1ce4374a1 grafana: fill pglog panel titles and normalize wording 2d127f9f4 grafana: fix minio traffic metrics and pigsty dashboard links 9d3ca0118 grafana: align victoria instance dashboards with query scope 55bc61622 grafana: fix infra dashboard copy, links, and table semantics 607b75535 grafana(node): fix panel drilldown links and clean dashboard metadata 1321de532 grafana(redis): fix dashboard links and blocked-clients panel semantics 91e0c8437 fix(grafana): correct Redis alert drill-down dashboard links 0fde78c02 fix(tooling): improve Python3 compatibility and enforce vagrant scale lower bound fa3454a52 fix(bootstrap): use Debian-compatible components for CN apt mirror 36c95c749 fix(cli): restore repo-add execution and HBA validation failure propagation 797385929 add macbook local vagrant image override f9c928e32 fix(grafana): restore reverted dashboard bugfixes c11af8b6a Bump version to v4.1.0 307a236ba update extension list f17024807 override el9/u24 vagrant box for convient testing c2ada1283 terraform: bump Aliyun Debian images to 12.13/13.3 25bd8210f fix(node): add daemon_reload to systemd tasks for keepalived, chronyd, and cron 6f2576fd0 fix(node): set default fs.nr_open via node_sysctl_params 43a71245e add pg_bgwriter_buffers_backend for pg 17- da832a47b fix(monitor): keep checkpointer metrics for checkpoint stats 90434ca8a fix(monitor): add pg_bgwriter fallback for checkpointer metrics e2d75e787 fix(monitor): use pg_checkpointer metrics for checkpoint stats a0b7474f8 fix grafana dashboard metrics and lengend 27ddacbc6 vagrant: refresh box selector and OS shortcuts 26e108788 fix(monitor): correct unit for time metrics scaled by pg_exporter ee90044b5 fix(pgsql): correct min_parallel scan size params in oltp/crit templates d439464b2 pgsql: fix pg_version guards for PG18-only settings 26320f120 docs: recommend RockyLinux 10.1 1e9b9f33a terraform: bump Aliyun Rocky images to 9.7/10.1 d6e9c7122 monitor: optimize table/index bloat estimators 42d45d32e fix(grafana): align panel semantics across node/infra/redis 3972d2c45 fix(grafana/pgsql): align dashboard semantics for query monitoring cb52375ac bump checkpoint_completion_target from 0.90 to 0.95 13115a95d fix legend in pgsql-persist checkpoint panel 102cd2edb fix(pg_migration): make template logging format-safe c402f0e6d fix: correct io_method/io_workers version guard from PG17 to PG18 3bf676546 vibe: disable jupyter by default and install claude-code via npm_packages 613c4efa9 fix: set fs.nr_open in tuned profiles and reduce LimitNOFILE to 8M 07e499d4d new app conf template matter most 4cc68ed61 Refine infra removal playbook 7cfb98f69 fix: app docker .env file format 9b36b1875 Fix config templates and validation 318d85e6e Simplify VIP parsing and make pg_exporter non-blocking 571cd9e70 Use hostname module for nodename de98f073c Fix blackbox config filename and pgpass format 4bff01100 Fix redis replicaof guard and systemd stop 38445b68d minio: increase health check retries c99854969 docs(etcd): clarify TLS vs mTLS 41229124a fix pgsql roles typo e575d17c6 fix pg_migration scripts to use fully qualified identifiers ec4207202 fix pgsql-schema broken links a237e6c99 tune autovacuum threshold to reduce small table vacuum frequency e80754760 fix pgcat-database links to pgcat-table https://github.com/pgsty/pigsty/issues/690 0060f5346 fix pgsql-database / pgsql-databases age metric fix https://github.com/pgsty/pigsty/issues/695 43cdf72bc fix pigsty.yml typo 0d9db7b08 fix: update datasource to $dsn - fix https://github.com/pgsty/pigsty/issues/692#issuecomment-3835461620"><pre class="notranslate"><code>7410de401 v4.1.0 release fa31213ce conf(node): default firewall to zone with single-node 5432 override bb8382c58 update default extension list to 451 770d01959 hide user credential in pgsql-user playbook 7219a896c pg_monitor: fix victoria registration gate conditions 084c98432 remove one cluster in backup dir during pg_remove 7005617f1 pgsql: drop legacy pgbouncer pool parameter aliases f8165a886 docs(roles): fix typos and align juice role documentation 06a589218 chore(meta): normalize platform versions for current lint schema e0a208248 fix(roles): harden redis exporter file permissions fd0469881 terraform/vagrant: parameterize aliyun region/zone, fix vagrant scripts 74c59aabe grafana: fix dashboard links, descriptions, and overrides 443e58724 conf: clean legacy params and fix template references 536c4b39d adjust grafana dashboard dead links f3b9866ce grafana(pgsql): fix panel typos and title consistency bcb69be11 grafana(pgsql): fix drilldown links and variable mappings 1ce4374a1 grafana: fill pglog panel titles and normalize wording 2d127f9f4 grafana: fix minio traffic metrics and pigsty dashboard links 9d3ca0118 grafana: align victoria instance dashboards with query scope 55bc61622 grafana: fix infra dashboard copy, links, and table semantics 607b75535 grafana(node): fix panel drilldown links and clean dashboard metadata 1321de532 grafana(redis): fix dashboard links and blocked-clients panel semantics 91e0c8437 fix(grafana): correct Redis alert drill-down dashboard links 0fde78c02 fix(tooling): improve Python3 compatibility and enforce vagrant scale lower bound fa3454a52 fix(bootstrap): use Debian-compatible components for CN apt mirror 36c95c749 fix(cli): restore repo-add execution and HBA validation failure propagation 797385929 add macbook local vagrant image override f9c928e32 fix(grafana): restore reverted dashboard bugfixes c11af8b6a Bump version to v4.1.0 307a236ba update extension list f17024807 override el9/u24 vagrant box for convient testing c2ada1283 terraform: bump Aliyun Debian images to 12.13/13.3 25bd8210f fix(node): add daemon_reload to systemd tasks for keepalived, chronyd, and cron 6f2576fd0 fix(node): set default fs.nr_open via node_sysctl_params 43a71245e add pg_bgwriter_buffers_backend for pg 17- da832a47b fix(monitor): keep checkpointer metrics for checkpoint stats 90434ca8a fix(monitor): add pg_bgwriter fallback for checkpointer metrics e2d75e787 fix(monitor): use pg_checkpointer metrics for checkpoint stats a0b7474f8 fix grafana dashboard metrics and lengend 27ddacbc6 vagrant: refresh box selector and OS shortcuts 26e108788 fix(monitor): correct unit for time metrics scaled by pg_exporter ee90044b5 fix(pgsql): correct min_parallel scan size params in oltp/crit templates d439464b2 pgsql: fix pg_version guards for PG18-only settings 26320f120 docs: recommend RockyLinux 10.1 1e9b9f33a terraform: bump Aliyun Rocky images to 9.7/10.1 d6e9c7122 monitor: optimize table/index bloat estimators 42d45d32e fix(grafana): align panel semantics across node/infra/redis 3972d2c45 fix(grafana/pgsql): align dashboard semantics for query monitoring cb52375ac bump checkpoint_completion_target from 0.90 to 0.95 13115a95d fix legend in pgsql-persist checkpoint panel 102cd2edb fix(pg_migration): make template logging format-safe c402f0e6d fix: correct io_method/io_workers version guard from PG17 to PG18 3bf676546 vibe: disable jupyter by default and install claude-code via npm_packages 613c4efa9 fix: set fs.nr_open in tuned profiles and reduce LimitNOFILE to 8M 07e499d4d new app conf template matter most 4cc68ed61 Refine infra removal playbook 7cfb98f69 fix: app docker .env file format 9b36b1875 Fix config templates and validation 318d85e6e Simplify VIP parsing and make pg_exporter non-blocking 571cd9e70 Use hostname module for nodename de98f073c Fix blackbox config filename and pgpass format 4bff01100 Fix redis replicaof guard and systemd stop 38445b68d minio: increase health check retries c99854969 docs(etcd): clarify TLS vs mTLS 41229124a fix pgsql roles typo e575d17c6 fix pg_migration scripts to use fully qualified identifiers ec4207202 fix pgsql-schema broken links a237e6c99 tune autovacuum threshold to reduce small table vacuum frequency e80754760 fix pgcat-database links to pgcat-table https://github.com/pgsty/pigsty/issues/690 0060f5346 fix pgsql-database / pgsql-databases age metric fix https://github.com/pgsty/pigsty/issues/695 43cdf72bc fix pigsty.yml typo 0d9db7b08 fix: update datasource to $dsn - fix https://github.com/pgsty/pigsty/issues/692#issuecomment-3835461620 </code></pre></div> <p><strong>Thanks</strong></p> <ul> <li>Thanks to <a href="https://github.com/l2dy">@l2dy</a> for many valuable suggestions and issues.</li> </ul> <p><strong>Checksums</strong></p> <div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="8bc75e8df0e3830931f2ddab71b89630 pigsty-v4.1.0.tgz da10de99d819421630f430d01bc9de62 pigsty-pkg-v4.1.0.d12.aarch64.tgz e1f2ed2da0d6b8c360f9fa2faaa7e175 pigsty-pkg-v4.1.0.d12.x86_64.tgz 382bb38a81c138b1b3e7c194211c2138 pigsty-pkg-v4.1.0.d13.aarch64.tgz 13ceaa728901cc4202687f03d25f1479 pigsty-pkg-v4.1.0.d13.x86_64.tgz 92d061de4d495d05d42f91e4283e7502 pigsty-pkg-v4.1.0.el10.aarch64.tgz be629ea91adf86bbd7e1c59b659d0069 pigsty-pkg-v4.1.0.el10.x86_64.tgz c14be706119ba33dd06c71dda6c02298 pigsty-pkg-v4.1.0.el8.aarch64.tgz 0c8b6952ffc00e3b169896129ea39184 pigsty-pkg-v4.1.0.el8.x86_64.tgz cfcc63b9ecc525165674f58f9365aa19 pigsty-pkg-v4.1.0.el9.aarch64.tgz 34f733080bfa9c8515d1573c35f3e870 pigsty-pkg-v4.1.0.el9.x86_64.tgz ad52ce9bf25e4d834e55873b3f9ada51 pigsty-pkg-v4.1.0.u22.aarch64.tgz 300b2185c61a03ea7733248e526f3342 pigsty-pkg-v4.1.0.u22.x86_64.tgz 2e561e6ae9abb14796872059d2f694a8 pigsty-pkg-v4.1.0.u24.aarch64.tgz c462bb4cb2359e771ffcad006888fbd4 pigsty-pkg-v4.1.0.u24.x86_64.tgz"><pre>8bc75e8df0e3830931f2ddab71b89630 pigsty-v4.1.0.tgz da10de99d819421630f430d01bc9de62 pigsty-pkg-v4.1.0.d12.aarch64.tgz e1f2ed2da0d6b8c360f9fa2faaa7e175 pigsty-pkg-v4.1.0.d12.x86_64.tgz 382bb38a81c138b1b3e7c194211c2138 pigsty-pkg-v4.1.0.d13.aarch64.tgz 13ceaa728901cc4202687f03d25f1479 pigsty-pkg-v4.1.0.d13.x86_64.tgz 92d061de4d495d05d42f91e4283e7502 pigsty-pkg-v4.1.0.el10.aarch64.tgz be629ea91adf86bbd7e1c59b659d0069 pigsty-pkg-v4.1.0.el10.x86_64.tgz c14be706119ba33dd06c71dda6c02298 pigsty-pkg-v4.1.0.el8.aarch64.tgz 0c8b6952ffc00e3b169896129ea39184 pigsty-pkg-v4.1.0.el8.x86_64.tgz cfcc63b9ecc525165674f58f9365aa19 pigsty-pkg-v4.1.0.el9.aarch64.tgz 34f733080bfa9c8515d1573c35f3e870 pigsty-pkg-v4.1.0.el9.x86_64.tgz ad52ce9bf25e4d834e55873b3f9ada51 pigsty-pkg-v4.1.0.u22.aarch64.tgz 300b2185c61a03ea7733248e526f3342 pigsty-pkg-v4.1.0.u22.x86_64.tgz 2e561e6ae9abb14796872059d2f694a8 pigsty-pkg-v4.1.0.u24.aarch64.tgz c462bb4cb2359e771ffcad006888fbd4 pigsty-pkg-v4.1.0.u24.x86_64.tgz</pre></div> Vonng tag:github.com,2008:Repository/268680961/v4.0.0 2026-01-30T08:43:37Z Pigsty v4.0: Into the AI Era <h2>Quick Start</h2> <div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="curl https://pigsty.io/get | bash -s v4.0.0"><pre>curl https://pigsty.io/get <span class="pl-k">|</span> bash -s v4.0.0</pre></div> <p><strong>318 commits</strong>, 604 files changed, +118,655 / -327,552 lines</p> <p><strong>Release Date: 2026-01-28</strong> | <a href="https://github.com/pgsty/pigsty/releases/tag/v4.0.0">GitHub</a> | <a href="https://pigsty.io" rel="nofollow">Docs EN</a> | <a href="https://pigsty.cc" rel="nofollow">Docs CN</a></p> <hr> <h2>Highlights</h2> <ul> <li><strong>Observability Revolution</strong>: Prometheus → VictoriaMetrics (10x perf), Loki+Promtail → VictoriaLogs+Vector</li> <li><strong>Security Hardening</strong>: Auto-generated passwords, etcd RBAC, firewall/SELinux modes, permission tightening, Nginx Basic Auth</li> <li><strong>Docker Support</strong>: Run Pigsty in Docker containers with full systemd support (macOS &amp; Linux)</li> <li><strong>New Module</strong>: JUICE - Mount PostgreSQL as filesystem with PITR recovery capability</li> <li><strong>New Module</strong>: VIBE - AI coding sandbox with Claude Code, JupyterLab, VS Code Server, Node.js</li> <li><strong>Database Management</strong>: <code>pg_databases</code> state (create/absent/recreate), instant clone with <code>strategy</code></li> <li><strong>PITR &amp; Fork</strong>: <code>/pg/bin/pg-fork</code> for instant CoW cloning, enhanced <code>pg-pitr</code> with pre-backup</li> <li><strong>HA Enhancement</strong>: <code>pg_rto_plan</code> with 4 RTO presets (fast/norm/safe/wide), <code>pg_crontab</code> scheduled tasks</li> <li><strong>Multi-Cloud Terraform</strong>: AWS, Azure, GCP, Hetzner, DigitalOcean, Linode, Vultr, TencentCloud templates</li> <li><strong>License Change</strong>: AGPL-3.0 → Apache-2.0</li> </ul> <p><a href="https://github.com/pgsty/pigsty/releases/tag/v4.0.0"><img src="/pgsty/pigsty/raw/v4.0.0/featured.jpg" alt="" style="max-width: 100%;"></a></p> <hr> <h2>Infrastructure Package Updates</h2> <p>MinIO now uses <a href="https://github.com/pgsty/minio"><strong>pgsty/minio</strong></a> fork RPM/DEB.</p> <table> <thead> <tr> <th>Package</th> <th>Version</th> <th>Package</th> <th>Version</th> </tr> </thead> <tbody> <tr> <td>victoria-metrics</td> <td>1.134.0</td> <td>victoria-logs</td> <td>1.43.1</td> </tr> <tr> <td>vector</td> <td>0.52.0</td> <td>grafana</td> <td>12.3.1</td> </tr> <tr> <td>alertmanager</td> <td>0.30.1</td> <td>etcd</td> <td>3.6.7</td> </tr> <tr> <td>duckdb</td> <td>1.4.4</td> <td>pg_exporter</td> <td>1.1.2</td> </tr> <tr> <td>pgbackrest_exporter</td> <td>0.22.0</td> <td>blackbox_exporter</td> <td>0.28.0</td> </tr> <tr> <td>node_exporter</td> <td>1.10.2</td> <td>minio</td> <td>20251203</td> </tr> <tr> <td>pig</td> <td>1.0.0</td> <td>claude</td> <td>2.1.19</td> </tr> <tr> <td>opencode</td> <td>1.1.34</td> <td>uv</td> <td>0.9.26</td> </tr> <tr> <td>asciinema</td> <td>3.1.0</td> <td>prometheus</td> <td>3.9.1</td> </tr> <tr> <td>pushgateway</td> <td>1.11.2</td> <td>juicefs</td> <td>1.4.0</td> </tr> <tr> <td>code-server</td> <td>4.100.2</td> <td>caddy</td> <td>2.10.2</td> </tr> <tr> <td>hugo</td> <td>0.154.5</td> <td>cloudflared</td> <td>2026.1.1</td> </tr> <tr> <td>headscale</td> <td>0.27.1</td> <td></td> <td></td> </tr> </tbody> </table> <hr> <h2>Docker Support</h2> <p>Pigsty now supports running in <strong>Docker containers</strong> with full systemd support, working on both macOS (Docker Desktop) and Linux.</p> <p><strong>Quick Start</strong>:</p> <div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="cd ~/pigsty/docker; make launch # = make up config deploy"><pre><span class="pl-c1">cd</span> <span class="pl-k">~</span>/pigsty/docker<span class="pl-k">;</span> make launch <span class="pl-c"><span class="pl-c">#</span> = make up config deploy</span></pre></div> <hr> <h2>New Modules</h2> <p>v4.0.0 adds two <strong>optional modules</strong> that don't affect core Pigsty functionality:</p> <p><strong>JUICE Module</strong>: JuiceFS Distributed Filesystem</p> <ul> <li>Uses PostgreSQL as metadata engine, supports PITR recovery for filesystem</li> <li>Multiple storage backends: PostgreSQL large objects, MinIO, S3</li> <li>Multi-instance deployment with Prometheus metrics per instance</li> <li>New <code>node-juice</code> dashboard for JuiceFS monitoring</li> <li>New <code>juice.yml</code> playbook for deployment</li> <li>Parameters: <code>juice_cache</code>, <code>juice_instances</code></li> </ul> <p><strong>VIBE Module</strong>: AI Coding Sandbox (Code-Server + JupyterLab + Node.js + Claude Code)</p> <ul> <li> <p><strong>Code-Server</strong>: VS Code in browser</p> <ul> <li>Deploy Code-Server with Nginx reverse proxy for HTTPS</li> <li>Supports Open VSX and Microsoft extension galleries</li> <li>Set <code>code_enabled: false</code> to disable</li> <li>Parameters: <code>code_enabled</code>, <code>code_port</code>, <code>code_data</code>, <code>code_password</code>, <code>code_gallery</code></li> </ul> </li> <li> <p><strong>JupyterLab</strong>: Interactive computing environment</p> <ul> <li>Deploy JupyterLab with Nginx reverse proxy for HTTPS</li> <li>Python venv configuration for data science libraries</li> <li>Set <code>jupyter_enabled: false</code> to disable</li> <li>Parameters: <code>jupyter_enabled</code>, <code>jupyter_port</code>, <code>jupyter_data</code>, <code>jupyter_password</code>, <code>jupyter_venv</code></li> </ul> </li> <li> <p><strong>Node.js</strong>: JavaScript runtime environment</p> <ul> <li>Install Node.js with npm package manager</li> <li>Auto-configure China npm mirror when <code>region=china</code></li> <li>Set <code>nodejs_enabled: false</code> to disable</li> <li>Parameters: <code>nodejs_enabled</code>, <code>nodejs_registry</code></li> </ul> </li> <li> <p><strong>Claude Code</strong>: AI coding assistant CLI configuration</p> <ul> <li>Configure Claude Code CLI, skip onboarding</li> <li>Built-in OpenTelemetry config sending metrics/logs to Victoria stack</li> <li>New <code>claude-code</code> dashboard for usage monitoring</li> <li>Set <code>claude_enabled: false</code> to disable</li> <li>Parameters: <code>claude_enabled</code>, <code>claude_env</code></li> </ul> </li> <li> <p>New <code>vibe.yml</code> playbook for full VIBE deployment</p> </li> <li> <p>Use <code>conf/vibe.yml</code> template for quick AI coding sandbox setup</p> </li> <li> <p>Common parameter: <code>vibe_data</code> (default <code>/fs</code>) for workspace directory</p> </li> </ul> <hr> <h2>PostgreSQL Extension Updates</h2> <p>Major extensions add PG 18 support: age, citus, documentdb, pg_search, timescaledb, pg_bulkload, rum, etc.</p> <p><strong>New Extensions</strong>:</p> <ul> <li><a href="https://github.com/timescale/pg_textsearch">pg_textsearch</a> 0.4.0 - TimescaleDB full-text search</li> <li><a href="https://github.com/clickhouse/pg_clickhouse/">pg_clickhouse</a> 0.1.3 - ClickHouse FDW</li> <li><a href="https://github.com/benodiwal/pg_ai_query">pg_ai_query</a> 0.1.1 - AI query extension</li> <li><a href="https://github.com/pgsty/etcd_fdw">etcd_fdw</a> 0.0.0 - etcd FDW</li> <li><a href="https://github.com/pg-ttl-index">pg_ttl_index</a> 0.1.0 - TTL index</li> <li><a href="https://github.com/plv8/pljs">pljs</a> 1.0.4 - JavaScript procedural language</li> <li><a href="https://github.com/pg-retry/pg_retry">pg_retry</a> 1.0.0 - Retry extension</li> <li><a href="https://github.com/pgsty/pg_weighted_statistics">pg_weighted_statistics</a> 1.0.0 - Weighted statistics</li> <li><a href="https://github.com/pgsty/pg_enigma">pg_enigma</a> 0.5.0 - Encryption extension</li> <li><a href="https://github.com/pgsty/pglinter">pglinter</a> 1.0.1 - SQL Linter</li> <li><a href="https://github.com/microsoft/documentdb">documentdb_extended_rum</a> 0.109 - DocumentDB RUM</li> <li><a href="https://github.com/MobilityDB">mobilitydb_datagen</a> 1.3.0 - MobilityDB data generator</li> </ul> <p><strong>Major Updates</strong>:</p> <table> <thead> <tr> <th>Extension</th> <th>Old</th> <th>New</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td>timescaledb</td> <td>2.23.x</td> <td>2.24.0</td> <td>+PG18</td> </tr> <tr> <td>pg_search</td> <td>0.19.x</td> <td>0.21.4</td> <td>ParadeDB, +PG18</td> </tr> <tr> <td>citus</td> <td>13.2.0</td> <td>14.0.0</td> <td>Distributed PG, +PG18</td> </tr> <tr> <td>documentdb</td> <td>0.106</td> <td>0.109</td> <td>MongoDB compat, +PG18</td> </tr> <tr> <td>age</td> <td>1.5.0</td> <td>1.7.0</td> <td>Graph DB, +PG18</td> </tr> <tr> <td>pg_duckdb</td> <td>1.1.0</td> <td>1.1.1</td> <td>DuckDB integration</td> </tr> <tr> <td>vchord</td> <td>0.5.3</td> <td>1.0.0</td> <td>VectorChord</td> </tr> <tr> <td>vchord_bm25</td> <td>0.2.2</td> <td>0.3.0</td> <td>BM25 full-text search</td> </tr> <tr> <td>pg_biscuit</td> <td>1.0</td> <td>2.2.2</td> <td>Biscuit auth</td> </tr> <tr> <td>pg_anon</td> <td>2.4.1</td> <td>2.5.1</td> <td>Data anonymization</td> </tr> <tr> <td>wrappers</td> <td>0.5.6</td> <td>0.5.7</td> <td>Supabase FDW</td> </tr> <tr> <td>pg_vectorize</td> <td>0.25.0</td> <td>0.26.0</td> <td>Vectorization</td> </tr> <tr> <td>pg_session_jwt</td> <td>0.3.3</td> <td>0.4.0</td> <td>JWT session</td> </tr> <tr> <td>pg_partman</td> <td>5.3.x</td> <td>5.4.0</td> <td>Partition mgmt, PGDG</td> </tr> <tr> <td>pgmq</td> <td>1.8.0</td> <td>1.9.0</td> <td>Message queue</td> </tr> <tr> <td>pg_bulkload</td> <td>3.1.22</td> <td>3.1.23</td> <td>Bulk load, +PG18</td> </tr> <tr> <td>pg_timeseries</td> <td>0.1.7</td> <td>0.2.0</td> <td>Time series</td> </tr> <tr> <td>pg_convert</td> <td>0.0.4</td> <td>0.1.0</td> <td>Type conversion</td> </tr> <tr> <td>pg_clickhouse</td> <td>0.1.2</td> <td>0.1.3</td> <td>ClickHouse FDW</td> </tr> </tbody> </table> <p>pgBackRest updated to 2.58 with HTTP support.</p> <hr> <h2>Observability</h2> <ul> <li>VictoriaMetrics replaces Prometheus — achieving several times the performance with a fraction of the resources</li> <li>VictoriaLogs + Vector replaces Promtail + Loki for log collection</li> <li>Unified log format for all components, PG logs use UTC timestamp (log_timezone)</li> <li>PostgreSQL log rotation changed to weekly truncated rotation mode</li> <li>Recording temp file allocations over 1MB in PG logs, enabling PG 17/18 log parameters in specific templates</li> <li>Added Vector parsing configs for Nginx/Syslog/PG CSV/Pgbackrest/Grafana/Redis/etcd/MinIO logs</li> <li>Datasource registration now runs on all Infra nodes, Victoria datasources auto-registered in Grafana</li> <li>New <code>grafana_pgurl</code> parameter for using PG as Grafana backend storage</li> <li>New <code>grafana_view_password</code> parameter for Grafana Meta datasource password</li> <li><code>pgbackrest_exporter</code> default cache interval reduced from 600s to 120s</li> <li><code>grafana_clean</code> default changed from <code>true</code> to <code>false</code></li> <li>New <code>pg_timeline</code> collector for real-time timeline metrics <code>pg_timeline_id</code></li> <li>New <code>pg:ixact_ratio</code> metric for idle transaction ratio monitoring</li> <li><code>pg_exporter</code> updated to 1.1.2 with <code>pg_timeline</code> collector and numerous fixes</li> <li>Added slot name coalesce for <code>pg_recv</code> metrics collector</li> <li>Blackbox ping monitoring support enabled</li> <li>New <code>node-vector</code> dashboard for Vector monitoring</li> <li>New <code>node-juice</code> dashboard for JuiceFS monitoring</li> <li>New <code>claude-code</code> dashboard for Claude Code usage monitoring</li> <li>PGSQL Cluster/Instance dashboards add version banner</li> <li>All dashboards use compact JSON format, significantly reducing file size</li> </ul> <hr> <h2>Interface Improvements</h2> <p><strong>Playbook Rename</strong></p> <ul> <li><code>install.yml</code> renamed to <code>deploy.yml</code> for better semantics</li> <li>New <code>vibe.yml</code> playbook for VIBE AI coding sandbox</li> </ul> <p><strong>pg_databases Improvements</strong></p> <ul> <li>Database removal: use <code>state</code> field (<code>create</code>, <code>absent</code>, <code>recreate</code>)</li> <li>Database cloning: use <code>strategy</code> parameter for clone method</li> <li>Support newer locale params: <code>locale_provider</code>, <code>icu_locale</code>, <code>icu_rules</code>, <code>builtin_locale</code></li> <li>Support <code>is_template</code> to mark template databases</li> <li>Added type checks to prevent character parameter injection</li> <li>Allow <code>state: absent</code> in extension to remove extensions</li> </ul> <p><strong>pg_users Improvements</strong></p> <ul> <li>New <code>admin</code> parameter similar to <code>roles</code> but with <code>ADMIN OPTION</code> for re-granting</li> <li>New <code>set</code> and <code>inherit</code> options for user role attributes</li> </ul> <p><strong>pg_hba Improvements</strong></p> <ul> <li>Support <code>order</code> field for HBA rule priority</li> <li>Support IPv6 localhost access</li> <li>Allow specifying trusted intranet via <code>node_firewall_intranet</code></li> </ul> <p><strong>Other Improvements</strong></p> <ul> <li>Default privileges for Supabase roles</li> <li><code>node_crontab</code> auto-restores original crontab on <code>node-rm</code></li> <li>New <code>infra_extra_services</code> for homepage service entries</li> </ul> <hr> <h2>Parameter Optimization</h2> <p><strong>I/O Parameters</strong></p> <ul> <li><code>pg_io_method</code>: auto, sync, worker, io_uring options, default worker</li> <li><code>maintenance_io_concurrency</code> set to 100 for SSD</li> <li><code>effective_io_concurrency</code> reduced from 1000 to 200</li> <li><code>file_copy_method</code> set to <code>clone</code> for PG18 instant database cloning</li> </ul> <p><strong>Replication &amp; Logging</strong></p> <ul> <li><code>idle_replication_slot_timeout</code>: default 7d, crit template 3d</li> <li><code>log_lock_failures</code>: enabled for oltp, crit templates</li> <li><code>track_cost_delay_timing</code>: enabled for olap, crit templates</li> <li><code>log_connections</code>: auth logs for oltp/olap, full logs for crit</li> </ul> <p><strong>HA Parameters</strong></p> <ul> <li>New <code>pg_rto_plan</code> integrating Patroni &amp; HAProxy RTO config <ul> <li><code>fast</code>: Fastest failover (~15s), for high availability requirements</li> <li><code>norm</code>: Standard mode (~30s), balanced (default)</li> <li><code>safe</code>: Safe mode (~60s), reduced false positives</li> <li><code>wide</code>: Relaxed mode (~120s), for geo-distributed deployments</li> </ul> </li> <li><code>pg_crontab</code>: scheduled tasks for postgres dbsu</li> <li>For PG17+, explicitly disable checksums if <code>pg_checksums</code> is off</li> <li>Crit template enables Patroni strict sync mode</li> </ul> <p><strong>Backup &amp; Recovery</strong></p> <ul> <li>PITR default <code>archive_mode</code> changed to <code>preserve</code></li> <li><code>pg-pitr</code> supports pre-recovery backup</li> </ul> <p><strong>Other</strong></p> <ul> <li>Fixed <code>duckdb.allow_community_extensions</code> always active issue</li> <li>pg_hba and pgbouncer_hba now support IPv6 localhost</li> </ul> <hr> <h2>Architecture Improvements</h2> <p><strong>Directories &amp; Portal</strong></p> <ul> <li>Fixed <code>/infra</code> symlink pointing to <code>/data/infra</code> on Infra nodes</li> <li>Infra data defaults to <code>/data/infra</code> for container convenience</li> <li>Local repo at <code>/data/nginx/pigsty</code>, <code>/www</code> symlinks to <code>/data/nginx</code></li> <li>DNS records moved to <code>/infra/hosts</code>, solving Ansible SELinux race condition</li> <li>Default homepage domain renamed from <code>h.pigsty</code> to <code>i.pigsty</code>, added Chinese homepage</li> </ul> <p><strong>Scripts</strong></p> <ul> <li>New <code>/pg/bin/pg-fork</code> for instant CoW replica creation</li> <li>Enhanced <code>/pg/bin/pg-pitr</code> for instance-level PITR with pre-backup</li> <li>New <code>/pg/bin/pg-drop-role</code> for safe user deletion</li> <li>New <code>bin/pgsql-ext</code> for extension installation</li> <li>Restored <code>pg-vacuum</code> and <code>pg-repack</code> scripts</li> </ul> <p><strong>New Playbooks</strong></p> <ul> <li><code>juice.yml</code>: Deploy JuiceFS instances</li> <li><code>vibe.yml</code>: Deploy VIBE AI sandbox (Code-Server, JupyterLab, Node.js, Claude Code)</li> </ul> <p><strong>Module Improvements</strong></p> <ul> <li>Explicit cron/cronie package installation for minimal system compatibility</li> <li>UV Python manager moved from <code>infra</code> to <code>node</code> module, new <code>node_uv_env</code> parameter</li> <li><code>pg_remove</code>/<code>pg_pitr</code> etcd metadata removal now runs on etcd cluster</li> <li>Simu template simplified from 36 to 20 nodes</li> <li>Removed PGDG sysupdate repo and llvmjit packages on EL systems</li> <li>Using full OS version (<code>major.minor</code>) for EPEL 10 / PGDG 9/10 repos</li> <li>Allow <code>meta</code> parameter in repo definitions</li> <li>Vagrant libvirt templates default to 128GB disk with xfs at <code>/data</code></li> <li>Ensure pgbouncer doesn't modify <code>0.0.0.0</code> to <code>*</code></li> <li>New 10-node and Citus Vagrant templates</li> <li>Restored EL7 compatibility</li> </ul> <p><strong>System Tuning</strong></p> <ul> <li>Tuned systemd service NOFILE limits based on actual workload requirements</li> <li>Fixed tuned profile activation by restarting tuned service after changes</li> <li>Added runtime directory for PostgreSQL systemd service</li> <li>Fixed <code>ip_local_port_range</code> start/end value parity alignment</li> </ul> <p><strong>Multi-Cloud</strong></p> <ul> <li>Terraform templates: AWS, Azure, GCP, Hetzner, DigitalOcean, Linode, Vultr, TencentCloud</li> </ul> <hr> <h2>Security Improvements</h2> <p><strong>Password Management</strong></p> <ul> <li><code>configure</code> supports <code>-g</code> flag for auto-generating strong random passwords</li> <li>Changed MinIO default password to avoid well-known defaults</li> </ul> <p><strong>Firewall &amp; SELinux</strong></p> <ul> <li>Replaced <code>node_disable_firewall</code> with <code>node_firewall_mode</code> (off/none/zone)</li> <li>Replaced <code>node_disable_selinux</code> with <code>node_selinux_mode</code> (disabled/permissive/enforcing)</li> <li>Configured correct SELinux contexts for HAProxy, Nginx, DNSMasq, Redis</li> </ul> <p><strong>Access Control</strong></p> <ul> <li>Enabled etcd RBAC, each cluster can only manage its own PG cluster</li> <li>etcd root password stored in <code>/etc/etcd/etcd.pass</code>, admin-readable only</li> <li>Added <code>admin_ip</code> to Patroni API whitelist</li> <li>Always create admin system group, patronictl restricted to admin group</li> <li>New <code>node_admin_sudo</code> parameter for admin sudo mode (all/nopass)</li> <li>Revoked script ownership from non-root users</li> </ul> <p><strong>Certificates &amp; Auth</strong></p> <ul> <li>Nginx Basic Auth support for optional HTTP authentication</li> <li>Fixed ownca certificate validity for Chrome recognition</li> <li>New <code>vip_auth_pass</code> parameter for VRRP authentication</li> </ul> <p><strong>Other</strong></p> <ul> <li>Fixed <code>ansible copy content</code> empty field errors</li> <li>Fixed <code>pg_pitr</code> race conditions during Patroni cluster recovery</li> <li>Protected <code>files/pki/ca</code> directory with mode 0700</li> </ul> <hr> <h2>Bug Fixes</h2> <table> <thead> <tr> <th>Issue</th> <th>Resolution</th> </tr> </thead> <tbody> <tr> <td>ownca certificate Chrome compatibility</td> <td>Set ownca_not_after correctly</td> </tr> <tr> <td>Vector 0.52 syslog_raw parsing</td> <td>Adapted to new Vector format</td> </tr> <tr> <td>pg_pitr multi-replica clonefrom timing</td> <td>Fixed Patroni recovery race condition</td> </tr> <tr> <td>Ansible SELinux dnsmasq race condition</td> <td>Moved DNS records to /infra/hosts</td> </tr> <tr> <td>EL9 aarch64 patroni &amp; llvmjit</td> <td>Hotfix for ARM64 compatibility</td> </tr> <tr> <td>Debian groupadd path</td> <td>Fixed user group add path</td> </tr> <tr> <td>Empty sudoers file generation</td> <td>Prevented empty sudoers config</td> </tr> <tr> <td>pgbouncer pid path</td> <td>Use <code>/run/postgresql</code></td> </tr> <tr> <td>duckdb.allow_community_extensions active</td> <td>Fixed DuckDB extension config</td> </tr> <tr> <td>pg_partman EL8 upstream break</td> <td>Hidden pg_partman on EL8</td> </tr> <tr> <td>HAProxy service template variable path</td> <td>Fixed variable reference</td> </tr> <tr> <td>Redis remove task variable name</td> <td>Fixed redis_seq to redis_node</td> </tr> <tr> <td>MinIO reload handler ineffective</td> <td>Removed ineffective handler</td> </tr> <tr> <td>vmetrics_port default value</td> <td>Corrected to 8428</td> </tr> <tr> <td>pg-failover-callback script</td> <td>Handle all Patroni callback events</td> </tr> <tr> <td>pg-vacuum transaction block</td> <td>Fixed transaction handling</td> </tr> <tr> <td>pg_sub_16 parallel logical worker</td> <td>Added PG16+ parallel replication</td> </tr> <tr> <td>FerretDB cert SAN and restart policy</td> <td>Fixed cert config and restart</td> </tr> <tr> <td>Polar Exporter metric types</td> <td>Corrected metric type definitions</td> </tr> <tr> <td>proxy_env package install missing</td> <td>Fixed proxy env propagation</td> </tr> <tr> <td>patroni_method=remove service issue</td> <td>Fixed postgres service in remove mode</td> </tr> <tr> <td>Docker default data directory</td> <td>Updated to correct path</td> </tr> <tr> <td>EL10 cache compatibility</td> <td>Fixed EL10 cache issues</td> </tr> <tr> <td>etcd/MinIO removal cleanup incomplete</td> <td>Fixed systemd service and DNS cleanup</td> </tr> <tr> <td>IvorySql 18 file_copy_method</td> <td>Fixed incompatibility with clone method</td> </tr> <tr> <td>tuned profile activation</td> <td>Fixed by restarting tuned service</td> </tr> </tbody> </table> <hr> <h2>Parameter Changes</h2> <p><strong>New Parameters</strong></p> <table> <thead> <tr> <th>Parameter</th> <th>Type</th> <th>Default</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><code>node_firewall_mode</code></td> <td>enum</td> <td>none</td> <td>Firewall mode: off/none/zone</td> </tr> <tr> <td><code>node_selinux_mode</code></td> <td>enum</td> <td>permissive</td> <td>SELinux mode</td> </tr> <tr> <td><code>node_firewall_intranet</code></td> <td>string</td> <td>-</td> <td>HBA trusted intranet</td> </tr> <tr> <td><code>node_admin_sudo</code></td> <td>enum</td> <td>nopass</td> <td>Admin sudo privilege level</td> </tr> <tr> <td><code>pg_io_method</code></td> <td>enum</td> <td>worker</td> <td>I/O method: auto/sync/worker/io_uring</td> </tr> <tr> <td><code>pg_rto_plan</code></td> <td>dict</td> <td>-</td> <td>RTO presets: fast/norm/safe/wide</td> </tr> <tr> <td><code>pg_crontab</code></td> <td>list</td> <td>[]</td> <td>postgres dbsu scheduled tasks</td> </tr> <tr> <td><code>vip_auth_pass</code></td> <td>string</td> <td>-</td> <td>VRRP auth password</td> </tr> <tr> <td><code>grafana_pgurl</code></td> <td>string</td> <td>-</td> <td>Grafana PG backend URL</td> </tr> <tr> <td><code>grafana_view_password</code></td> <td>string</td> <td>DBUser.Viewer</td> <td>Grafana Meta datasource password</td> </tr> <tr> <td><code>infra_extra_services</code></td> <td>list</td> <td>[]</td> <td>Homepage extra service entries</td> </tr> <tr> <td><code>juice_cache</code></td> <td>path</td> <td>/data/juice</td> <td>JuiceFS cache directory</td> </tr> <tr> <td><code>juice_instances</code></td> <td>dict</td> <td>{}</td> <td>JuiceFS instance definitions</td> </tr> <tr> <td><code>vibe_data</code></td> <td>path</td> <td>/fs</td> <td>VIBE workspace directory</td> </tr> <tr> <td><code>code_enabled</code></td> <td>bool</td> <td>true</td> <td>Enable Code-Server</td> </tr> <tr> <td><code>code_port</code></td> <td>port</td> <td>8443</td> <td>Code-Server listen port</td> </tr> <tr> <td><code>code_data</code></td> <td>path</td> <td>/data/code</td> <td>Code-Server data directory</td> </tr> <tr> <td><code>code_password</code></td> <td>string</td> <td>Vibe.Coding</td> <td>Code-Server password</td> </tr> <tr> <td><code>code_gallery</code></td> <td>enum</td> <td>openvsx</td> <td>Extension gallery: openvsx/microsoft</td> </tr> <tr> <td><code>jupyter_enabled</code></td> <td>bool</td> <td>true</td> <td>Enable JupyterLab</td> </tr> <tr> <td><code>jupyter_port</code></td> <td>port</td> <td>8888</td> <td>JupyterLab listen port</td> </tr> <tr> <td><code>jupyter_data</code></td> <td>path</td> <td>/data/jupyter</td> <td>JupyterLab data directory</td> </tr> <tr> <td><code>jupyter_password</code></td> <td>string</td> <td>Vibe.Coding</td> <td>JupyterLab access token</td> </tr> <tr> <td><code>jupyter_venv</code></td> <td>path</td> <td>/data/venv</td> <td>Python venv path</td> </tr> <tr> <td><code>claude_enabled</code></td> <td>bool</td> <td>true</td> <td>Enable Claude Code configuration</td> </tr> <tr> <td><code>claude_env</code></td> <td>dict</td> <td>{}</td> <td>Claude Code extra env vars</td> </tr> <tr> <td><code>nodejs_enabled</code></td> <td>bool</td> <td>true</td> <td>Enable Node.js installation</td> </tr> <tr> <td><code>nodejs_registry</code></td> <td>string</td> <td>''</td> <td>npm registry, auto china mirror</td> </tr> <tr> <td><code>node_uv_env</code></td> <td>path</td> <td>/data/venv</td> <td>Node UV venv path, empty to skip</td> </tr> <tr> <td><code>node_pip_packages</code></td> <td>string</td> <td>''</td> <td>pip packages for UV venv</td> </tr> </tbody> </table> <p><strong>Removed Parameters</strong></p> <table> <thead> <tr> <th>Parameter</th> <th>Replacement</th> </tr> </thead> <tbody> <tr> <td><code>node_disable_firewall</code></td> <td><code>node_firewall_mode</code></td> </tr> <tr> <td><code>node_disable_selinux</code></td> <td><code>node_selinux_mode</code></td> </tr> <tr> <td><code>infra_pip_packages</code></td> <td><code>node_pip_packages</code></td> </tr> <tr> <td><code>pgbackrest_clean</code></td> <td>Unused, removed</td> </tr> <tr> <td><code>pg_pwd_enc</code></td> <td>Removed, always scram-sha-256</td> </tr> <tr> <td><code>code_home</code></td> <td><code>vibe_data</code></td> </tr> <tr> <td><code>jupyter_home</code></td> <td><code>vibe_data</code></td> </tr> </tbody> </table> <p><strong>Default Value Changes</strong></p> <table> <thead> <tr> <th>Parameter</th> <th>Change</th> <th>Notes</th> </tr> </thead> <tbody> <tr> <td><code>grafana_clean</code></td> <td>true → false</td> <td>Don't clean by default</td> </tr> <tr> <td><code>effective_io_concurrency</code></td> <td>1000 → 200</td> <td>More reasonable default</td> </tr> <tr> <td><code>node_firewall_mode</code></td> <td>zone → none</td> <td>Disable firewall rules</td> </tr> <tr> <td><code>install.yml</code></td> <td>Renamed to <code>deploy.yml</code></td> <td>Better semantics</td> </tr> </tbody> </table> <hr> <h2>Compatibility</h2> <table> <thead> <tr> <th>OS</th> <th align="center">x86_64</th> <th align="center">aarch64</th> </tr> </thead> <tbody> <tr> <td>EL 8/9/10</td> <td align="center">✅</td> <td align="center">✅</td> </tr> <tr> <td>Debian 11/12/13</td> <td align="center">✅</td> <td align="center">✅</td> </tr> <tr> <td>Ubuntu 22.04/24.04</td> <td align="center">✅</td> <td align="center">✅</td> </tr> </tbody> </table> <p><strong>PostgreSQL</strong>: 13, 14, 15, 16, 17, 18</p> <hr> <h2>Checksums</h2> <div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="9f42b8c64180491b59bd03016c26e8ca pigsty-v4.0.0.tgz db9797c3c8ae21320b76a442c1135c7b pigsty-pkg-v4.0.0.d12.aarch64.tgz 1eed26eee42066ca71b9aecbf2ca1237 pigsty-pkg-v4.0.0.d12.x86_64.tgz 03540e41f575d6c3a7c63d1d30276d49 pigsty-pkg-v4.0.0.d13.aarch64.tgz 36a6ee284c0dd6d9f7d823c44280b88f pigsty-pkg-v4.0.0.d13.x86_64.tgz f2b6ec49d02916944b74014505d05258 pigsty-pkg-v4.0.0.el10.aarch64.tgz 73f64c349366fe23c022f81fe305d6da pigsty-pkg-v4.0.0.el10.x86_64.tgz 287f767fbb66a9aaca9f0f22e4f20491 pigsty-pkg-v4.0.0.el8.aarch64.tgz c0886aab454bd86245f3869ef2ab4451 pigsty-pkg-v4.0.0.el8.x86_64.tgz 094ab31bcf4a3cedbd8091bc0f3ba44c pigsty-pkg-v4.0.0.el9.aarch64.tgz 235ccba44891b6474a76a81750712544 pigsty-pkg-v4.0.0.el9.x86_64.tgz f2791c96db4cc17a8a4008fc8d9ad310 pigsty-pkg-v4.0.0.u22.aarch64.tgz 3099c4453eef03b766d68e04b8d5e483 pigsty-pkg-v4.0.0.u22.x86_64.tgz 49a93c2158434f1adf0d9f5bcbbb1ca5 pigsty-pkg-v4.0.0.u24.aarch64.tgz 4acaa5aeb39c6e4e23d781d37318d49b pigsty-pkg-v4.0.0.u24.x86_64.tgz"><pre>9f42b8c64180491b59bd03016c26e8ca pigsty-v4.0.0.tgz db9797c3c8ae21320b76a442c1135c7b pigsty-pkg-v4.0.0.d12.aarch64.tgz 1eed26eee42066ca71b9aecbf2ca1237 pigsty-pkg-v4.0.0.d12.x86_64.tgz 03540e41f575d6c3a7c63d1d30276d49 pigsty-pkg-v4.0.0.d13.aarch64.tgz 36a6ee284c0dd6d9f7d823c44280b88f pigsty-pkg-v4.0.0.d13.x86_64.tgz f2b6ec49d02916944b74014505d05258 pigsty-pkg-v4.0.0.el10.aarch64.tgz 73f64c349366fe23c022f81fe305d6da pigsty-pkg-v4.0.0.el10.x86_64.tgz 287f767fbb66a9aaca9f0f22e4f20491 pigsty-pkg-v4.0.0.el8.aarch64.tgz c0886aab454bd86245f3869ef2ab4451 pigsty-pkg-v4.0.0.el8.x86_64.tgz 094ab31bcf4a3cedbd8091bc0f3ba44c pigsty-pkg-v4.0.0.el9.aarch64.tgz 235ccba44891b6474a76a81750712544 pigsty-pkg-v4.0.0.el9.x86_64.tgz f2791c96db4cc17a8a4008fc8d9ad310 pigsty-pkg-v4.0.0.u22.aarch64.tgz 3099c4453eef03b766d68e04b8d5e483 pigsty-pkg-v4.0.0.u22.x86_64.tgz 49a93c2158434f1adf0d9f5bcbbb1ca5 pigsty-pkg-v4.0.0.u24.aarch64.tgz 4acaa5aeb39c6e4e23d781d37318d49b pigsty-pkg-v4.0.0.u24.x86_64.tgz</pre></div> Vonng tag:github.com,2008:Repository/268680961/v4.0.0-rc2 2026-01-19T01:10:08Z v4.0.0-rc2 <p>add default privileges for supabase roles</p> Vonng tag:github.com,2008:Repository/268680961/v3.7.0 2025-12-06T06:19:55Z Pigsty v3.7.0 <h2><strong>Highlights</strong></h2> <ul> <li><strong>PostgreSQL 18 Deep Support:</strong> Now the default major PG version, with full extension readiness!</li> <li><strong>Expanded OS Support:</strong> Added EL10 and Debian 13, bringing the total supported operating systems to 14.</li> <li><strong>Extension Growth:</strong> The PostgreSQL extension library now includes 437 entries.</li> <li><strong>Ansible 2.19 Compatibility:</strong> Full support for Ansible 2.19 following its breaking changes.</li> <li><strong>Kernel Updates:</strong> Latest versions for Supabase, PolarDB, IvorySQL, and Percona kernels.</li> <li><strong>Optimized Tuning:</strong> Refined logic for default PG parameters to maximize resource utilization.</li> <li><a href="https://pgext.cloud" rel="nofollow"><strong>PGEXT.CLOUD</strong></a>: Dedicate extension website open-sourced under apache-2.0 license</li> </ul> <h2><strong>Version Updates</strong></h2> <ul> <li>PostgreSQL 18.1, 17.7, 16.11, 15.15, 14.20, 13.23</li> <li>Patroni 4.1.0</li> <li>Pgbouncer 1.25.0</li> <li>pg_exporter 1.0.3</li> <li>pgbackrest 2.57.0</li> <li>Supabase 2025-11</li> <li>PolarDB 15.15.5.0</li> <li>FerretDB 2.7.0</li> <li>DuckDB 1.4.2</li> <li>Etcd 3.6.6</li> <li>pig 0.7.4</li> </ul> <p>For detailed version changes, please refer to:</p> <ul> <li><a href="https://pgext.cloud/release/infra/" rel="nofollow">INFRA Changelog</a></li> <li><a href="https://pgext.cloud/release/rpm/" rel="nofollow">RPM Changelog</a></li> <li><a href="https://pgext.cloud/release/deb/" rel="nofollow">DEB Changelog</a></li> </ul> <h2><strong>API Changes</strong></h2> <ul> <li>Implemented a refined optimization strategy for parallel execution parameters. See <strong><a href="https://doc.pgsty.com/pgsql/admin/tune" rel="nofollow">Tuning Guide</a></strong>.</li> <li>The <code>citus</code> extension is no longer installed by default in <code>rich</code> and <code>full</code> templates (PG 18 support pending).</li> <li>Added <code>duckdb</code> extension stubs to PostgreSQL parameter templates.</li> <li>Capped <code>min_wal_size</code>, <code>max_wal_size</code>, and <code>max_slot_wal_keep_size</code> at 200 GB, 2000 GB, and 3000 GB, respectively.</li> <li>Capped <code>temp_file_limit</code> at 200 GB (2 TB for OLAP workloads).</li> <li>Increased the default connection count for the connection pool.</li> <li>Added <code>prometheus_port</code> (default: <code>9058</code>) to avoid conflicts with the EL10 RHEL Web Console port.</li> <li>Changed <code>alertmanager_port</code> default to <code>9059</code> to avoid potential conflicts with Kafka SSL ports.</li> <li>Added a <code>pg_pre</code> subtask to <code>pg_pkg</code>: removes conflicting LLVM packages (<code>bpftool</code>, <code>python3-perf</code>) on EL9+ prior to PG installation.</li> <li>Added the <code>llvm</code> module to the default repository definition for Debian/Ubuntu.</li> <li>Fixed package removal logic in <code>infra-rm.yml</code>.</li> </ul> <h2><strong>Compatibility Fixes</strong></h2> <ul> <li><strong>Ubuntu/Debian CA Trust:</strong> Fixed incorrect warning return codes when trusting Certificate Authorities.</li> <li><strong>Ansible 2.19 Support:</strong> Resolved numerous compatibility issues introduced by Ansible 2.19 to ensure stability across versions: <ul> <li>Added explicit <code>int</code> type casting for sequence variables.</li> <li>Migrated <code>with_items</code> syntax to <code>loop</code>.</li> <li>Nested key exchange variables in lists to prevent character iteration on strings in newer versions.</li> <li>Explicitly cast <code>range</code> usage to <code>list</code>.</li> <li>Renamed reserved variables such as <code>name</code> and <code>port</code>.</li> <li>Replaced <code>play_hosts</code> with <code>ansible_play_hosts</code>.</li> </ul> </li> <li>Added string casting for specific variables to prevent runtime errors.</li> <li><strong>EL10 Adaptation:</strong> <ul> <li>Fixed missing <code>ansible-collection-community-crypto</code> preventing key generation.</li> <li>Fixed missing <code>ansible</code> logic packages.</li> <li>Removed <code>modulemd_tools</code>, <code>flamegraph</code>, and <code>timescaledb-tool</code>.</li> <li>Replaced <code>java-17-openjdk</code> with <code>java-21-openjdk</code>.</li> <li>Resolved aarch64 YUM repository naming issues.</li> </ul> </li> <li><strong>Debian 13 Adaptation:</strong> <ul> <li>Replaced <code>dnsutils</code> with <code>bind9-dnsutils</code>.</li> </ul> </li> <li><strong>Ubuntu 24 Fixes:</strong> <ul> <li>Temporarily removed <code>tcpdump</code> due to upstream dependency crashes.</li> </ul> </li> </ul> <h2><strong>Checksums</strong></h2> <div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="e00d0c2ac45e9eff1cc77927f9cd09df pigsty-v3.7.0.tgz 987529769d85a3a01776caefefa93ecb pigsty-pkg-v3.7.0.d12.aarch64.tgz 2d8272493784ae35abeac84568950623 pigsty-pkg-v3.7.0.d12.x86_64.tgz 090cc2531dcc25db3302f35cb3076dfa pigsty-pkg-v3.7.0.d13.x86_64.tgz ddc54a9c4a585da323c60736b8560f55 pigsty-pkg-v3.7.0.el10.aarch64.tgz d376e75c490e8f326ea0f0fbb4a8fd9b pigsty-pkg-v3.7.0.el10.x86_64.tgz 8c2deeba1e1d09ef3d46d77a99494e71 pigsty-pkg-v3.7.0.el8.aarch64.tgz 9795e059bd884b9d1b2208011abe43cd pigsty-pkg-v3.7.0.el8.x86_64.tgz 08b860155d6764ae817ed25f2fcf9e5b pigsty-pkg-v3.7.0.el9.aarch64.tgz 1ac430768e488a449d350ce245975baa pigsty-pkg-v3.7.0.el9.x86_64.tgz e033aaf23690755848db255904ab3bcd pigsty-pkg-v3.7.0.u22.aarch64.tgz cc022ea89181d89d271a9aaabca04165 pigsty-pkg-v3.7.0.u22.x86_64.tgz 0e978598796db3ce96caebd76c76e960 pigsty-pkg-v3.7.0.u24.aarch64.tgz 48223898ace8812cc4ea79cf3178476a pigsty-pkg-v3.7.0.u24.x86_64.tgz"><pre>e00d0c2ac45e9eff1cc77927f9cd09df pigsty-v3.7.0.tgz 987529769d85a3a01776caefefa93ecb pigsty-pkg-v3.7.0.d12.aarch64.tgz 2d8272493784ae35abeac84568950623 pigsty-pkg-v3.7.0.d12.x86_64.tgz 090cc2531dcc25db3302f35cb3076dfa pigsty-pkg-v3.7.0.d13.x86_64.tgz ddc54a9c4a585da323c60736b8560f55 pigsty-pkg-v3.7.0.el10.aarch64.tgz d376e75c490e8f326ea0f0fbb4a8fd9b pigsty-pkg-v3.7.0.el10.x86_64.tgz 8c2deeba1e1d09ef3d46d77a99494e71 pigsty-pkg-v3.7.0.el8.aarch64.tgz 9795e059bd884b9d1b2208011abe43cd pigsty-pkg-v3.7.0.el8.x86_64.tgz 08b860155d6764ae817ed25f2fcf9e5b pigsty-pkg-v3.7.0.el9.aarch64.tgz 1ac430768e488a449d350ce245975baa pigsty-pkg-v3.7.0.el9.x86_64.tgz e033aaf23690755848db255904ab3bcd pigsty-pkg-v3.7.0.u22.aarch64.tgz cc022ea89181d89d271a9aaabca04165 pigsty-pkg-v3.7.0.u22.x86_64.tgz 0e978598796db3ce96caebd76c76e960 pigsty-pkg-v3.7.0.u24.aarch64.tgz 48223898ace8812cc4ea79cf3178476a pigsty-pkg-v3.7.0.u24.x86_64.tgz</pre></div> Vonng tag:github.com,2008:Repository/268680961/v3.6.1 2025-08-15T13:35:16Z v3.6.1 Minor Release <div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="curl https://repo.pigsty.cc/get | bash -s v3.6.1"><pre>curl https://repo.pigsty.cc/get <span class="pl-k">|</span> bash -s v3.6.1</pre></div> <p><strong>Highlights</strong></p> <ul> <li>PostgreSQL 17.6, 16.10, 15.14, 14.19, 13.22, and 18 Beta 3 Released!</li> <li>PGDG APT/YUM mirror for Mainland China Users</li> <li>New home website <a href="https://pgsty.com" rel="nofollow">https://pgsty.com</a></li> <li>Add el10, debian 13 stub, add el10 terraform images</li> </ul> <p><strong>Infra Package Updates</strong></p> <ul> <li>Grafana 12.1.0</li> <li>pg_exporter 1.0.2</li> <li>pig 0.6.1</li> <li>vector 0.49.0</li> <li>redis_exporter 1.75.0</li> <li>mongo_exporter 0.47.0</li> <li>victoriametrics 1.123.0</li> <li>victorialogs: 1.28.0</li> <li>grafana-victoriametrics-ds 0.18.3</li> <li>grafana-victorialogs-ds 0.19.3</li> <li>grafana-infinity-ds 3.4.1</li> <li>etcd 3.6.4</li> <li>ferretdb 2.5.0</li> <li>tigerbeetle 0.16.54</li> <li>genai-toolbox 0.12.0</li> </ul> <p><strong>Extension Package Updates</strong></p> <ul> <li>pg_search 0.17.3</li> </ul> <p><strong>API Changes</strong></p> <ul> <li>remove <code>br_filter</code> from default <code>node_kernel_modules</code></li> <li>do not use OS minor version dir for pgdg yum repos</li> </ul> <p><strong>Checksums</strong></p> <div class="highlight highlight-source-shell notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="045977aff647acbfa77f0df32d863739 pigsty-pkg-v3.6.1.d12.aarch64.tgz 636b15c2d87830f2353680732e1af9d2 pigsty-pkg-v3.6.1.d12.x86_64.tgz 700a9f6d0db9c686d371bf1c05b54221 pigsty-pkg-v3.6.1.el8.aarch64.tgz 2aff03f911dd7be363ba38a392b71a16 pigsty-pkg-v3.6.1.el8.x86_64.tgz ce07261b02b02b36a307dab83e460437 pigsty-pkg-v3.6.1.el9.aarch64.tgz d598d62a47bbba2e811059a53fe3b2b5 pigsty-pkg-v3.6.1.el9.x86_64.tgz 13fd68752e59f5fd2a9217e5bcad0acd pigsty-pkg-v3.6.1.u22.aarch64.tgz c25ccfb98840c01eb7a6e18803de55bb pigsty-pkg-v3.6.1.u22.x86_64.tgz 0d71e58feebe5299df75610607bf428c pigsty-pkg-v3.6.1.u24.aarch64.tgz 4fbbab1f8465166f494110c5ec448937 pigsty-pkg-v3.6.1.u24.x86_64.tgz 083d8680fa48e9fec3c3fcf481d25d2f pigsty-v3.6.1.tgz"><pre>045977aff647acbfa77f0df32d863739 pigsty-pkg-v3.6.1.d12.aarch64.tgz 636b15c2d87830f2353680732e1af9d2 pigsty-pkg-v3.6.1.d12.x86_64.tgz 700a9f6d0db9c686d371bf1c05b54221 pigsty-pkg-v3.6.1.el8.aarch64.tgz 2aff03f911dd7be363ba38a392b71a16 pigsty-pkg-v3.6.1.el8.x86_64.tgz ce07261b02b02b36a307dab83e460437 pigsty-pkg-v3.6.1.el9.aarch64.tgz d598d62a47bbba2e811059a53fe3b2b5 pigsty-pkg-v3.6.1.el9.x86_64.tgz 13fd68752e59f5fd2a9217e5bcad0acd pigsty-pkg-v3.6.1.u22.aarch64.tgz c25ccfb98840c01eb7a6e18803de55bb pigsty-pkg-v3.6.1.u22.x86_64.tgz 0d71e58feebe5299df75610607bf428c pigsty-pkg-v3.6.1.u24.aarch64.tgz 4fbbab1f8465166f494110c5ec448937 pigsty-pkg-v3.6.1.u24.x86_64.tgz 083d8680fa48e9fec3c3fcf481d25d2f pigsty-v3.6.1.tgz</pre></div> Vonng