Pigsty v4.0.0-c1 Release Notes
Release Date: 2026-01-07 | GitHub | Docs EN | Docs CN
curl https://pigsty.cc/get | bash244 commits, 554 files changed, +94,508 / -41,374 lines
Highlights
- Observability Revolution: Prometheus → VictoriaMetrics (10x perf), Loki+Promtail → VictoriaLogs+Vector
- Security Hardening: Auto-generated passwords, etcd RBAC, firewall/SELinux modes, permission tightening
- Database Management:
pg_databasesstate (create/absent/recreate), instant clone withstrategy - PITR & Fork:
/pg/bin/pg-forkfor instant CoW cloning, enhancedpg-pitrwith pre-backup - Multi-Cloud Terraform: AWS, Azure, GCP, Hetzner, DigitalOcean, Linode, Vultr, TencentCloud templates
- License: AGPL-3.0 → Apache-2.0
Software Versions
Infrastructure
| Package | Version | Package | Version |
|---|---|---|---|
| grafana | 12.3.1 | victoria-metrics | 1.132.0 |
| victoria-logs | 1.43.1 | vector | 0.52.0 |
| alertmanager | 0.30.0 | blackbox_exporter | 0.28.0 |
| etcd | 3.6.7 | duckdb | 1.4.3 |
| pg_exporter | 1.1.1 | pgbackrest_exporter | 0.22.0 |
| minio | 20251203 | pig | 0.9.0 |
| uv | 0.9.18 (new) | opencode | 1.0.223 (new) |
PostgreSQL Extensions
New: pg_textsearch 0.1.0, pg_clickhouse 0.1.0, pg_ai_query 0.1.1
Updated: IvorySQL 5.1, timescaledb 2.24.0, pg_search 0.20.4, pg_duckdb 1.1.1, pg_biscuit 2.0.1, pg_anon 2.5.1, pg_enigma 0.5.0, pg_session_jwt 0.4.0, pg_vectorize 0.26.0, vchord_bm25 0.3.0, wrappers 0.5.7
PG18 Deb Fixes: pg_vectorize, pg_tiktoken, pg_tzf, pglite_fusion, pgsmcrypto, pgx_ulid, plprql, pg_summarize, supautils
Breaking Changes
Observability Stack
| Before | After |
|---|---|
| Prometheus | VictoriaMetrics |
| Loki | VictoriaLogs |
| Promtail | Vector |
Parameters
| Removed | Replacement |
|---|---|
node_disable_firewall |
node_firewall_mode (off/none/zone) |
node_disable_selinux |
node_selinux_mode (disabled/permissive/enforcing) |
pg_pwd_enc |
removed |
infra_pip |
infra_uv |
Defaults Changed
| Parameter | Before → After |
|---|---|
grafana_clean |
true → false |
effective_io_concurrency |
1000 → 200 |
install.yml |
renamed to deploy.yml (symlink kept) |
New Features
Observability
- VictoriaMetrics + VictoriaLogs + Vector full stack
- Unified log collection for all components (PG, pgBouncer, Redis, MinIO, etcd, Nginx, Grafana)
- UTC timestamps, weekly log rotation, >1MB temp file logging
- New
pg_timelinecollector,node-vectordashboard
Security
configure -gauto-generates random strong passwords- etcd RBAC enabled, root password in
/etc/etcd/etcd.pass - HAProxy/Nginx/DNSMasq/Redis SELinux contexts
node_admin_sudoparameter (all/nopass)vip_auth_passfor VRRP authentication- Nginx basic auth support
PostgreSQL
pg_databases:state(create/absent/recreate),strategy(clone method),is_template, locale paramspg_users:adminoption with ADMIN OPTIONpg_io_method: auto/sync/worker/io_uringidle_replication_slot_timeout: 7d (3d for crit)file_copy_method: clonefor PG18 instant DB cloning- HBA
orderfield, IPv6 localhost support
PITR
/pg/bin/pg-fork: instant CoW instance cloning (XFS reflink)/pg/bin/pg-pitr: instance-level PITR with pre-backup- Fixed multi-replica clonefrom timing issues
Infrastructure
/infrasymlink →/data/infra, DNS in/infra/hostsgrafana_pgurl: PostgreSQL as Grafana backend- Multi-cloud Terraform templates: AWS, Azure, GCP, Hetzner, DigitalOcean, Linode, Vultr, TencentCloud
- Vagrant libvirt: 128GB XFS disk on
/data - 36-node simu → 20-node template
Bug Fixes
- Certificate validity for Chrome compatibility
- Vector 0.52 syslog_raw parsing
- pg_pitr replica clonefrom timing
- Ansible SELinux race condition in dnsmasq
- EL9 aarch64 patroni & llvmjit
- Debian groupadd path
- Empty sudoers file generation
- pgbouncer pid path (
/run/postgresql) duckdb.allow_community_extensionsalways active- pg_partman hidden for EL8 (upstream break)
Compatibility
| OS | x86_64 | aarch64 |
|---|---|---|
| EL 8/9/10 | ✅ | ✅ |
| Debian 11/12/13 | ✅ | ✅ |
| Ubuntu 22.04/24.04 | ✅ | ✅ |
PostgreSQL: 13, 14, 15, 16, 17, 18