This is the multi-page printable view of this section. Click here to print.
References
- 1: Supported Linux
- 2: Modules
- 3: Extensions
- 4: File Hierarchy
- 5: Parameters
- 6: Playbooks
- 7: Port List
1 - Supported Linux
Pigsty runs on Linux, supporting amd64/x86_64 and arm64/aarch64 arch, plus 3 major distros: EL, Debian, Ubuntu.
Pigsty runs bare-metal without containers. Supports latest 2 major releases for each of the 3 major distros across both archs.
Overview
Recommended OS versions: RockyLinux 10.1, Ubuntu 24.04.4, Debian 13.3.
| Distro | Arch | OS Code | PG18 | PG17 | PG16 | PG15 | PG14 | PG13 |
|---|---|---|---|---|---|---|---|---|
| RHEL / Rocky / Alma 10 | x86_64 | el10.x86_64 | ||||||
| RHEL / Rocky / Alma 10 | aarch64 | el10.aarch64 | ||||||
Ubuntu 24.04 (noble) | x86_64 | u24.x86_64 | ||||||
Ubuntu 24.04 (noble) | aarch64 | u24.aarch64 | ||||||
Debian 13 (trixie) | x86_64 | d13.x86_64 | ||||||
Debian 13 (trixie) | aarch64 | d13.aarch64 |
EL
Pigsty supports RHEL / Rocky / Alma / Anolis / CentOS 8, 9, 10.
| EL Distro | Arch | OS Code | PG18 | PG17 | PG16 | PG15 | PG14 | PG13 |
|---|---|---|---|---|---|---|---|---|
| RHEL10 / Rocky10 / Alma10 | x86_64 | el10.x86_64 | ||||||
| RHEL10 / Rocky10 / Alma10 | aarch64 | el10.aarch64 | ||||||
| RHEL9 / Rocky9 / Alma9 | x86_64 | el9.x86_64 | ||||||
| RHEL9 / Rocky9 / Alma9 | aarch64 | el9.aarch64 | ||||||
| RHEL8 / Rocky8 / Alma8 | x86_64 | el8.x86_64 | ||||||
| RHEL8 / Rocky8 / Alma8 | aarch64 | el8.aarch64 | ||||||
| RHEL7 / CentOS7 | x86_64 | el7.x86_64 | ||||||
| RHEL7 / CentOS7 | aarch64 | - |
RockyLinux 10.1 / 9.7 balances stability and fresh software. Recommended for EL users.
EL8 goes EOL in 2029. Plan upgrade ASAP. EL10 support is ready, EL8 will be dropped in next release.
RHEL 7 EOL since Jun 2024. PGDG stopped providing binary packages for PG 16/17/18 on EL7.
For extended support on legacy OS, consider Enterprise Subscription.
Ubuntu
Pigsty supports Ubuntu 24.04 / 22.04:
| Ubuntu Distro | Arch | OS Code | PG18 | PG17 | PG16 | PG15 | PG14 | PG13 |
|---|---|---|---|---|---|---|---|---|
Ubuntu 24.04 (noble) | x86_64 | u24.x86_64 | ||||||
Ubuntu 24.04 (noble) | aarch64 | u24.aarch64 | ||||||
Ubuntu 22.04 (jammy) | x86_64 | u22.x86_64 | ||||||
Ubuntu 22.04 (jammy) | aarch64 | u22.aarch64 | ||||||
Ubuntu 20.04 (focal) | x86_64 | u20.x86_64 | ||||||
Ubuntu 20.04 (focal) | aarch64 | - |
Ubuntu 24.04 balances stability and fresh software. Recommended for Ubuntu users.
Ubuntu 20.04 EOL since Apr 2025. For extended support on legacy OS, consider Enterprise Subscription.
Debian
Pigsty supports Debian 12 / 13, latest Debian 13.3 recommended:
| Debian Distro | Arch | OS Code | PG18 | PG17 | PG16 | PG15 | PG14 | PG13 |
|---|---|---|---|---|---|---|---|---|
Debian 13 (trixie) | x86_64 | d13.x86_64 | ||||||
Debian 13 (trixie) | aarch64 | d13.aarch64 | ||||||
Debian 12 (bookworm) | x86_64 | d12.x86_64 | ||||||
Debian 12 (bookworm) | aarch64 | d12.aarch64 | ||||||
Debian 11 (bullseye) | x86_64 | d11.x86_64 | ||||||
Debian 11 (bullseye) | aarch64 | - |
Debian 11 EOL since Jul 2024. For extended support on legacy OS, consider Enterprise Subscription.
Vagrant
For local VM deployment, use these Vagrant base images (same as used in Pigsty dev):
cloud-image/almalinux-8: AlmaLinux 8.10bento/rockylinux-9: RockyLinux 9.7cloud-image/almalinux-10: AlmaLinux 10.1cloud-image/debian-12: Debian 12.13cloud-image/debian-13: Debian 13.3cloud-image/ubuntu-22.04: Ubuntu 22.04.5bento/ubuntu-24.04: Ubuntu 24.04.4
Terraform
For cloud deployment, use these Terraform base images (Aliyun example):
Rocky 8.10 :
rockylinux_8_10_x64_20G_alibase_20240923.vhdRocky 9.7 :
rockylinux_9_7_x64_20G_alibase_20260119.vhdRocky 10.1 :
rockylinux_10_1_x64_20G_alibase_20260119.vhdUbuntu 22.04.5 :
ubuntu_22_04_x64_20G_alibase_20240926.vhdUbuntu 24.04.4 :
ubuntu_24_04_x64_20G_alibase_20240923.vhdDebian 12.13 :
debian_12_13_x64_20G_alibase_20241201.vhdDebian 13.3 :
debian_13_3_x64_20G_alibase_20250101.vhdRocky 8.10 (aarch64) :
rockylinux_8_10_arm64_20G_alibase_20251120.vhdRocky 9.7 (aarch64) :
rockylinux_9_7_arm64_20G_alibase_20260119.vhdRocky 10.1 (aarch64) :
rockylinux_10_1_arm64_20G_alibase_20260119.vhdUbuntu 22.04.5 (aarch64) :
ubuntu_22_04_arm64_20G_alibase_20251126.vhdUbuntu 24.04.4 (aarch64) :
ubuntu_24_04_arm64_20G_alibase_20251126.vhdDebian 12.13 (aarch64) :
debian_12_13_arm64_20G_alibase_20250825.vhdDebian 13.3 (aarch64) :
debian_13_3_arm64_20G_alibase_20251121.vhd
2 - Modules
Official Modules
| Module | Category | Status | Docs Path | Summary |
|---|---|---|---|---|
PGSQL | Core | GA | /docs/pgsql | High-availability PostgreSQL clusters with built-in backup, monitoring, SOP, and extension ecosystem. |
INFRA | Core | GA | /docs/infra | Local software repository + VictoriaMetrics/Logs/Traces + Grafana infrastructure stack. |
NODE | Core | GA | /docs/node | Node initialization and convergence: system tuning, admin, HAProxy, Vector, Docker, etc. |
ETCD | Core | GA | /docs/etcd | DCS for PostgreSQL HA (service discovery, config, leader-election metadata). |
MINIO | Extension | GA | /docs/minio | S3-compatible object storage, optionally used as PostgreSQL backup repository. |
REDIS | Extension | GA | /docs/redis | Redis standalone/sentinel/cluster deployment and monitoring. |
FERRET | Extension | GA | /docs/ferret | FerretDB module (MONGO API compatibility) for MongoDB protocol access over PG. |
DOCKER | Extension | GA | /docs/docker | Docker daemon and the runtime capability for containerized apps. |
JUICE | Extension | BETA | /docs/juice | JuiceFS distributed file system using PostgreSQL as metadata engine. |
VIBE | Extension | BETA | /docs/vibe | Browser-based dev environment with Code-Server, JupyterLab, Node.js, and Claude Code. |
Core Modules
Pigsty provides four core modules that are important for delivering complete highly available PostgreSQL services:
PGSQL: Self-healing PostgreSQL clusters with HA, PITR, IaC, SOP, monitoring, and 451 extensions.INFRA: Local software repository, Prometheus, Grafana, Loki, AlertManager, PushGateway, Blackbox Exporter…NODE: Node convergence for hostname, timezone, NTP, ssh, sudo, haproxy, docker, vector, keepalived.ETCD: Distributed key-value store used as DCS for HA PostgreSQL clusters: consensus leader election/config management/service discovery.
Although these four modules are usually installed together, separate use is still feasible. In practice, only the NODE module is usually mandatory.
Extension Modules
Pigsty provides six extension modules. They are not mandatory for core functionality, but can enhance PostgreSQL capabilities:
MINIO: S3-compatible object storage, optional PostgreSQL backup repository, with production deployment and monitoring support.REDIS: Redis server with standalone/sentinel/cluster production deployment and full monitoring support.MONGO: Native FerretDB deployment support, adding MongoDB wire-protocol compatible APIs to PostgreSQL.DOCKER: Docker daemon service for one-click deployment of stateless software templates on Pigsty.JUICE: JuiceFS distributed filesystem module using PostgreSQL as metadata engine, providing shared POSIX storage.VIBE: Browser-based development environment with Code-Server, JupyterLab, Node.js, and Claude Code.
Ecosystem Modules
The modules below are closely related to the PostgreSQL ecosystem. They are optional ecosystem capabilities and are not counted in the 10 official modules above:
3 - Extensions
Pigsty extension data is synchronized from ~/pgsty/pgext/content/list/ext.md and ~/pgsty/pgext/db/extension.csv. For full details, see PGEXT.CLOUD.
There are currently 464 available PostgreSQL extensions.
TIME
| Extension | Version | Category | Description |
|---|---|---|---|
| timescaledb | 2.25.2 | TIME | Enables scalable inserts and complex queries for time-series data |
| timescaledb_toolkit | 1.22.0 | TIME | Library of analytical hyperfunctions, time-series pipelining, and other SQL utilities |
| timeseries | 0.2.0 | TIME | Convenience API for time series stack |
| periods | 1.2.3 | TIME | Provide Standard SQL functionality for PERIODs and SYSTEM VERSIONING |
| temporal_tables | 1.2.2 | TIME | temporal tables |
| emaj | 4.7.1 | TIME | Enables fine-grained write logging and time travel on subsets of the database. |
| table_version | 1.11.1 | TIME | PostgreSQL table versioning extension |
| pg_cron | 1.6.7 | TIME | Job scheduler for PostgreSQL |
| pg_task | 1.0.0 | TIME | execute any sql command at any specific time at background |
| pg_later | 0.4.0 | TIME | Run queries now and get results later |
| pg_background | 1.8 | TIME | Run SQL queries in the background |
GIS
| Extension | Version | Category | Description |
|---|---|---|---|
| postgis | 3.6.2 | GIS | PostGIS geometry and geography spatial types and functions |
| postgis_topology | 3.6.2 | GIS | PostGIS topology spatial types and functions |
| postgis_raster | 3.6.2 | GIS | PostGIS raster types and functions |
| postgis_sfcgal | 3.6.2 | GIS | PostGIS SFCGAL functions |
| postgis_tiger_geocoder | 3.6.2 | GIS | PostGIS tiger geocoder and reverse geocoder |
| address_standardizer | 3.6.2 | GIS | Used to parse an address into constituent elements. Generally used to support geocoding address normalization step. |
| address_standardizer_data_us | 3.6.2 | GIS | Address Standardizer US dataset example |
| pgrouting | 4.0.1 | GIS | pgRouting Extension |
| pointcloud | 1.2.5 | GIS | data type for lidar point clouds |
| pointcloud_postgis | 1.2.5 | GIS | integration for pointcloud LIDAR data and PostGIS geometry data |
| h3 | 4.2.3 | GIS | H3 bindings for PostgreSQL |
| h3_postgis | 4.2.3 | GIS | H3 PostGIS integration |
| q3c | 2.0.2 | GIS | q3c sky indexing plugin |
| ogr_fdw | 1.1.7 | GIS | foreign-data wrapper for GIS data access |
| geoip | 0.3.0 | GIS | IP-based geolocation query |
| pg_polyline | 0.0.1 | GIS | Fast Google Encoded Polyline encoding & decoding for postgres |
| pg_eviltransform | 0.0.2 | GIS | BD09/GCJ02 coordinate transformation based on PostGIS ST_Transform |
| pg_geohash | 1.0 | GIS | Handle geohash based functionality for spatial coordinates |
| mobilitydb | 1.3.0 | GIS | MobilityDB geospatial trajectory data management & analysis platform |
| mobilitydb_datagen | 1.3.0 | GIS | MobilityDB random data generator functions |
| tzf | 0.2.3 | GIS | Fast lookup timezone name by GPS coordinates |
| earthdistance | 1.2 | GIS | calculate great-circle distances on the surface of the Earth |
RAG
| Extension | Version | Category | Description |
|---|---|---|---|
| vector | 0.8.2 | RAG | vector data type and ivfflat and hnsw access methods |
| vchord | 1.1.1 | RAG | Vector database plugin for Postgres, written in Rust |
| vectorscale | 0.9.0 | RAG | Advanced indexing for vector data with DiskANN |
| vectorize | 0.26.0 | RAG | The simplest way to do vector search on Postgres |
| pg_similarity | 1.0 | RAG | support similarity queries |
| smlar | 1.0 | RAG | Effective similarity search |
| pg_summarize | 0.0.1 | RAG | Text Summarization using LLMs. Built using pgrx |
| pg_tiktoken | 0.0.1 | RAG | tiktoken tokenizer for use with OpenAI models in postgres |
| pg4ml | 2.0 | RAG | Machine learning framework for PostgreSQL |
| pgml | 2.10.0 | RAG | Run AL/ML workloads with SQL interface |
FTS
| Extension | Version | Category | Description |
|---|---|---|---|
| pg_search | 0.21.12 | FTS | Full text search for PostgreSQL using BM25 |
| pgroonga | 4.0.4 | FTS | Use Groonga as index, fast full text search platform for all languages! |
| pgroonga_database | 4.0.4 | FTS | PGroonga database management module |
| pg_bigm | 1.2 | FTS | create 2-gram (bigram) index for faster full text search. |
| zhparser | 2.3 | FTS | a parser for full-text search of Chinese |
| pg_bestmatch | 0.0.2 | FTS | Generate BM25 sparse vector inside PostgreSQL |
| vchord_bm25 | 0.3.0 | FTS | A postgresql extension for bm25 ranking algorithm |
| pg_tokenizer | 0.1.1 | FTS | Tokenizers for full-text search |
| biscuit | 2.2.2 | FTS | IAM-LIKE pattern matching with bitmap indexing |
| pg_textsearch | 0.5.0 | FTS | Full-text search with BM25 ranking |
| pg_pinyin | 0.0.2 | FTS | PostgreSQL Pinyin transliteration and search extension |
| hunspell_cs_cz | 1.0 | FTS | Czech Hunspell Dictionary |
| hunspell_de_de | 1.0 | FTS | German Hunspell Dictionary |
| hunspell_en_us | 1.0 | FTS | en_US Hunspell Dictionary |
| hunspell_fr | 1.0 | FTS | French Hunspell Dictionary |
| hunspell_ne_np | 1.0 | FTS | Nepali Hunspell Dictionary |
| hunspell_nl_nl | 1.0 | FTS | Dutch Hunspell Dictionary |
| hunspell_nn_no | 1.0 | FTS | Norwegian (norsk) Hunspell Dictionary |
| hunspell_pt_pt | 1.0 | FTS | Portuguese Hunspell Dictionary |
| hunspell_ru_ru | 1.0 | FTS | Russian Hunspell Dictionary |
| hunspell_ru_ru_aot | 1.0 | FTS | Russian Hunspell Dictionary (from AOT.ru group) |
| fuzzystrmatch | 1.2 | FTS | determine similarities and distance between strings |
| pg_trgm | 1.6 | FTS | text similarity measurement and index searching based on trigrams |
OLAP
| Extension | Version | Category | Description |
|---|---|---|---|
| citus | 14.0.0 | OLAP | Distributed PostgreSQL as an extension |
| citus_columnar | 14.0.0 | OLAP | Citus columnar storage engine |
| columnar | 1.1.2 | OLAP | Hydra Columnar extension |
| pg_analytics | 0.3.7 | OLAP | Postgres for analytics, powered by DuckDB |
| pg_duckdb | 1.1.1 | OLAP | DuckDB Embedded in Postgres |
| pg_mooncake | 0.2.0 | OLAP | Columnstore Table in Postgres |
| pg_clickhouse | 0.1.4 | OLAP | Interfaces to query ClickHouse databases from PostgreSQL |
| duckdb_fdw | 1.1.2 | OLAP | DuckDB Foreign Data Wrapper |
| pg_parquet | 0.5.1 | OLAP | copy data between Postgres and Parquet |
| pg_fkpart | 1.7.0 | OLAP | Table partitioning by foreign key utility |
| pg_partman | 5.4.2 | OLAP | Extension to manage partitioned tables by time or ID |
| plproxy | 2.11.0 | OLAP | Database partitioning implemented as procedural language |
| pg_strom | 6.1 | OLAP | PG-Strom - big-data processing acceleration using GPU and NVME |
| tablefunc | 1.0 | OLAP | functions that manipulate whole tables, including crosstab |
FEAT
| Extension | Version | Category | Description |
|---|---|---|---|
| age | 1.7.0 | FEAT | AGE graph database extension |
| hll | 2.19 | FEAT | type for storing hyperloglog data |
| rum | 1.3.15 | FEAT | RUM index access method |
| pg_ai_query | 0.1.1 | FEAT | AI-powered SQL query generation for PostgreSQL |
| pg_ttl_index | 2.0.0 | FEAT | Automatic data expiration with TTL indexes |
| pg_graphql | 1.5.12 | FEAT | Add in-database GraphQL support |
| pg_jsonschema | 0.3.4 | FEAT | PostgreSQL extension providing JSON Schema validation |
| jsquery | 1.2 | FEAT | data type for jsonb inspection |
| pg_hint_plan | 1.8.0 | FEAT | Give PostgreSQL ability to manually force some decisions in execution plans. |
| hypopg | 1.4.2 | FEAT | Hypothetical indexes for PostgreSQL |
| index_advisor | 0.2.0 | FEAT | Query index advisor |
| plan_filter | 0.0.1 | FEAT | filter statements by their execution plans. |
| imgsmlr | 1.0 | FEAT | Image similarity with haar |
| pg_ivm | 1.13 | FEAT | incremental view maintenance on PostgreSQL |
| pg_incremental | 1.4.1 | FEAT | Incremental Processing by Crunchy Data |
| pgmb | 1.0.0 | FEAT | A simple PostgreSQL Message Broker system |
| pgmq | 1.11.0 | FEAT | A lightweight message queue. Like AWS SQS and RSMQ but on Postgres. |
| pgq | 3.5.1 | FEAT | Generic queue for PostgreSQL |
| orioledb | 1.6 | FEAT | OrioleDB, the next generation transactional engine |
| pg_cardano | 1.1.1 | FEAT | A suite of Cardano-related tools |
| rdkit | 202503.1 | FEAT | Cheminformatics functionality for PostgreSQL. |
| omni | 0.2.14 | FEAT | Advanced adapter for Postgres extensions |
| omni_auth | 0.1.3 | FEAT | Basic session management |
| omni_aws | 0.1.2 | FEAT | Amazon Web Services APIs (S3) |
| omni_cloudevents | 0.1.0 | FEAT | CloudEvents support |
| omni_containers | 0.2.0 | FEAT | Docker container management |
| omni_credentials | 0.2.0 | FEAT | Application credential management |
| omni_csv | 0.1.1 | FEAT | CSV toolkit |
| omni_datasets | 0.1.0 | FEAT | Dataset provisioning |
| omni_email | 0.1.0 | FEAT | E-mail framework |
| omni_http | 0.1.0 | FEAT | Basic HTTP types |
| omni_httpc | 0.1.10 | FEAT | HTTP client |
| omni_httpd | 0.4.11 | FEAT | HTTP server |
| omni_id | 0.4.3 | FEAT | Identity types |
| omni_json | 0.1.1 | FEAT | JSON toolkit |
| omni_kube | 0.4.2 | FEAT | Kubernetes (k8s) integration |
| omni_ledger | 0.1.3 | FEAT | Financial ledger |
| omni_manifest | 0.1.2 | FEAT | Package installation manifests |
| omni_mimetypes | 0.1.0 | FEAT | MIME types |
| omni_os | 0.1.1 | FEAT | Operating system integration |
| omni_polyfill | 0.2.2 | FEAT | Postgres API polyfills |
| omni_python | 0.1.1 | FEAT | First-class Python support |
| omni_regex | 0.1.0 | FEAT | PCRE-compatible regular expressions |
| omni_rest | 0.1.1 | FEAT | REST API toolkit (with PostgREST support) |
| omni_schema | 0.3.0 | FEAT | Advanced schema management tooling |
| omni_seq | 0.1.1 | FEAT | Distributed integer sequences |
| omni_service | 0.1.0 | FEAT | Service management |
| omni_session | 0.2.0 | FEAT | Session management |
| omni_shmem | 0.1.0 | FEAT | Shared Memory Management |
| omni_sql | 0.5.3 | FEAT | Programmatic SQL manipulation |
| omni_sqlite | 0.2.2 | FEAT | Embedded SQLite |
| omni_test | 0.4.0 | FEAT | Testing framework |
| omni_txn | 0.5.0 | FEAT | Transaction management |
| omni_types | 0.3.6 | FEAT | Advanced types |
| omni_var | 0.3.0 | FEAT | Scoped variables |
| omni_vfs | 0.2.2 | FEAT | Virtual File System |
| omni_vfs_types_v1 | 0.1.0 | FEAT | Virtual File System types (v1) |
| omni_web | 0.3.0 | FEAT | Common web stack primitives |
| omni_worker | 0.2.1 | FEAT | Generalized worker pool |
| omni_xml | 0.1.2 | FEAT | XML toolkit |
| omni_yaml | 0.1.0 | FEAT | YAML toolkit |
| bloom | 1.0 | FEAT | bloom access method - signature file based index |
LANG
| Extension | Version | Category | Description |
|---|---|---|---|
| pg_tle | 1.5.2 | LANG | Trusted Language Extensions for PostgreSQL |
| plv8 | 3.2.4 | LANG | PL/JavaScript (v8) trusted procedural language |
| pljs | 1.0.5 | LANG | PL/JS trusted procedural language |
| pllua | 2.0.12 | LANG | Lua as a procedural language |
| hstore_pllua | 2.0.12 | LANG | Hstore transform for Lua |
| plluau | 2.0.12 | LANG | Lua as an untrusted procedural language |
| hstore_plluau | 2.0.12 | LANG | Hstore transform for untrusted Lua |
| plprql | 18.0.1 | LANG | Use PRQL in PostgreSQL - Pipelined Relational Query Language |
| pldbgapi | 1.9 | LANG | server-side support for debugging PL/pgSQL functions |
| plpgsql_check | 2.8.11 | LANG | extended check for plpgsql functions |
| plprofiler | 4.2.5 | LANG | server-side support for profiling PL/pgSQL functions |
| plsh | 1.20220917 | LANG | PL/sh procedural language |
| pljava | 1.6.10 | LANG | PL/Java procedural language |
| plr | 8.4.8 | LANG | load R interpreter and execute R script from within a database |
| plxslt | 0.20140221 | LANG | XSLT procedural language for PostgreSQL |
| pgtap | 1.3.4 | LANG | Unit testing for PostgreSQL |
| faker | 0.5.3 | LANG | Wrapper for the Faker Python library |
| dbt2 | 0.61.7 | LANG | OSDL-DBT-2 test kit |
| pltcl | 1.0 | LANG | PL/Tcl procedural language |
| pltclu | 1.0 | LANG | PL/TclU untrusted procedural language |
| plperl | 1.0 | LANG | PL/Perl procedural language |
| bool_plperl | 1.0 | LANG | transform between bool and plperl |
| hstore_plperl | 1.0 | LANG | transform between hstore and plperl |
| jsonb_plperl | 1.0 | LANG | transform between jsonb and plperl |
| plperlu | 1.0 | LANG | PL/PerlU untrusted procedural language |
| bool_plperlu | 1.0 | LANG | transform between bool and plperlu |
| jsonb_plperlu | 1.0 | LANG | transform between jsonb and plperlu |
| hstore_plperlu | 1.0 | LANG | transform between hstore and plperlu |
| plpgsql | 1.0 | LANG | PL/pgSQL procedural language |
| plpython3u | 1.0 | LANG | PL/Python3U untrusted procedural language |
| jsonb_plpython3u | 1.0 | LANG | transform between jsonb and plpython3u |
| ltree_plpython3u | 1.0 | LANG | transform between ltree and plpython3u |
| hstore_plpython3u | 1.0 | LANG | transform between hstore and plpython3u |
TYPE
| Extension | Version | Category | Description |
|---|---|---|---|
| prefix | 1.2.10 | TYPE | Prefix Range module for PostgreSQL |
| semver | 0.41.0 | TYPE | Semantic version data type |
| unit | 7.10 | TYPE | SI units extension |
| pgpdf | 0.1.0 | TYPE | PDF type with meta admin & Full-Text Search |
| pglite_fusion | 0.0.6 | TYPE | Embed an SQLite database in your PostgreSQL table |
| md5hash | 1.0.1 | TYPE | type for storing 128-bit binary data inline |
| asn1oid | 1.6 | TYPE | asn1oid extension |
| roaringbitmap | 1.1.0 | TYPE | support for Roaring Bitmaps |
| pgfaceting | 0.2.0 | TYPE | fast faceting queries using an inverted index |
| pg_sphere | 1.5.2 | TYPE | spherical objects with useful functions, operators and index support |
| country | 0.0.3 | TYPE | Country data type, ISO 3166-1 |
| pg_xenophile | 0.8.3 | TYPE | More than the bare necessities for PostgreSQL i18n and l10n. |
| l10n_table_dependent_extension | 0.8.3 | TYPE | PostgreSQL l10n toolbox |
| currency | 0.0.3 | TYPE | Custom PostgreSQL currency type in 1Byte |
| collection | 1.1.1 | TYPE | Memory optimized data type to be used inside of plpglsql func |
| pgmp | 1.0.5 | TYPE | Multiple Precision Arithmetic extension |
| numeral | 1.3 | TYPE | numeral datatypes extension |
| pg_rational | 0.0.2 | TYPE | bigint fractions |
| uint | 1.20250815 | TYPE | unsigned integer types |
| uint128 | 1.2.0 | TYPE | Native uint128 type |
| hashtypes | 0.1.5 | TYPE | sha1, md5 and other data types for PostgreSQL |
| ip4r | 2.4.2 | TYPE | IPv4/v6 and IPv4/v6 range index type for PostgreSQL |
| pg_duration | 1.0.2 | TYPE | data type for representing durations |
| uri | 1.20251029 | TYPE | URI Data type for PostgreSQL |
| emailaddr | 0 | TYPE | Email address type for PostgreSQL |
| acl | 1.0.4 | TYPE | ACL Data type |
| debversion | 1.2.0 | TYPE | Debian version number data type |
| pg_rrule | 0.3.0 | TYPE | RRULE field type for PostgreSQL |
| timestamp9 | 1.4.0 | TYPE | timestamp nanosecond resolution |
| chkpass | 1.0 | TYPE | data type for auto-encrypted passwords |
| isn | 1.2 | TYPE | data types for international product numbering standards |
| seg | 1.4 | TYPE | data type for representing line segments or floating-point intervals |
| cube | 1.5 | TYPE | data type for multidimensional cubes |
| ltree | 1.3 | TYPE | data type for hierarchical tree-like structures |
| hstore | 1.8 | TYPE | data type for storing sets of (key, value) pairs |
| citext | 1.6 | TYPE | data type for case-insensitive character strings |
| xml2 | 1.1 | TYPE | XPath querying and XSLT |
UTIL
| Extension | Version | Category | Description |
|---|---|---|---|
| gzip | 1.0.0 | UTIL | gzip and gunzip functions. |
| bzip | 1.0.0 | UTIL | Bzip compression and decompression |
| zstd | 1.1.2 | UTIL | Zstandard compression algorithm implementation in PostgreSQL |
| http | 1.7.0 | UTIL | HTTP client for PostgreSQL, allows web page retrieval inside the database. |
| pg_net | 0.20.2 | UTIL | Async HTTP Requests |
| pg_curl | 2.4.5 | UTIL | Run curl actions for data transfer in URL syntax |
| pg_retry | 1.0.0 | UTIL | Retry SQL statements on transient errors with exponential backoff |
| pgjq | 0.1.0 | UTIL | Use jq in Postgres |
| pgjwt | 0.2.0 | UTIL | JSON Web Token API for Postgresql |
| pg_smtp_client | 0.2.1 | UTIL | PostgreSQL extension to send email using SMTP |
| pg_html5_email_address | 1.2.3 | UTIL | PostgreSQL email validation that is consistent with the HTML5 spec |
| url_encode | 1.2.5 | UTIL | url_encode, url_decode functions |
| pgsql_tweaks | 1.0.2 | UTIL | Some functions and views for daily usage |
| pg_extra_time | 2.0.0 | UTIL | Some date time functions and operators that, |
| pgpcre | 0.20190509 | UTIL | Perl Compatible Regular Expression functions |
| icu_ext | 1.10.0 | UTIL | Access ICU functions |
| pgqr | 1.0 | UTIL | QR Code generator from PostgreSQL |
| pg_protobuf | 1.0 | UTIL | Protobuf support for PostgreSQL |
| envvar | 1.0.1 | UTIL | Fetch the value of an environment variable |
| floatfile | 1.3.1 | UTIL | Simple file storage for arrays of floats |
| pg_render | 0.1.3 | UTIL | Render HTML in SQL |
| pg_readme | 0.7.0 | UTIL | Generate a README.md document for a database extension or schema |
| pg_readme_test_extension | 0.7.0 | UTIL | Test generating a README.md document for extension or schema |
| ddl_historization | 0.0.7 | UTIL | Historize the ddl changes inside PostgreSQL database |
| data_historization | 1.1.0 | UTIL | PLPGSQL Script to historize data in partitionned table |
| schedoc | 0.0.1 | UTIL | Cross documentation between Django and DBT projects |
| hashlib | 1.1 | UTIL | Stable hash functions for Postgres |
| xxhash | 0.0.1 | UTIL | xxhash functions for PostgreSQL |
| shacrypt | 1.1 | UTIL | Implements SHA256-CRYPT and SHA512-CRYPT password encryption schemes |
| cryptint | 1.0.0 | UTIL | Encryption functions for int and bigint values |
| pguecc | 1.0 | UTIL | uECC bindings for Postgres |
| sparql | 1.0 | UTIL | Query SPARQL datasource with SQL |
FUNC
| Extension | Version | Category | Description |
|---|---|---|---|
| pg_idkit | 0.4.0 | FUNC | multi-tool for generating new/niche universally unique identifiers (ex. UUIDv6, ULID, KSUID) |
| pgx_ulid | 0.2.2 | FUNC | ulid type and methods |
| pg_uuidv7 | 1.7.0 | FUNC | Create UUIDv7 values in postgres |
| permuteseq | 1.2.2 | FUNC | Pseudo-randomly permute sequences with a format-preserving encryption on elements |
| pg_hashids | 1.3 | FUNC | Short unique id generator for PostgreSQL, using hashids |
| sequential_uuids | 1.0.3 | FUNC | generator of sequential UUIDs |
| typeid | 0.3.0 | FUNC | Allows to use TypeIDs in Postgres natively |
| snowflake | 2.4 | FUNC | Snowflake-style 64-bit ID generation and sequence utilities |
| topn | 2.7.0 | FUNC | type for top-n JSONB |
| quantile | 1.1.8 | FUNC | Quantile aggregation function |
| lower_quantile | 1.0.3 | FUNC | Lower quantile aggregate function |
| count_distinct | 3.0.2 | FUNC | An alternative to COUNT(DISTINCT …) aggregate, usable with HashAggregate |
| omnisketch | 1.0.2 | FUNC | data structure for on-line agg of data into approximate sketch |
| ddsketch | 1.0.1 | FUNC | Provides ddsketch aggregate function |
| vasco | 0.1.0 | FUNC | discover hidden correlations in your data with MIC |
| xicor | 0.1.0 | FUNC | XI Correlation Coefficient in Postgres |
| weighted_statistics | 1.0.0 | FUNC | High-performance weighted statistics functions for sparse data |
| tdigest | 1.4.3 | FUNC | Provides tdigest aggregate function. |
| first_last_agg | 0.1.4 | FUNC | first() and last() aggregate functions |
| extra_window_functions | 1.0 | FUNC | Extra Window Functions for PostgreSQL |
| floatvec | 1.1.1 | FUNC | Math for vectors (arrays) of numbers |
| aggs_for_vecs | 1.4.1 | FUNC | Aggregate functions for array inputs |
| aggs_for_arrays | 1.3.3 | FUNC | Various functions for computing statistics on arrays of numbers |
| pg_csv | 1.0.1 | FUNC | Flexible CSV processing for Postgres |
| arraymath | 1.1 | FUNC | Array math and operators that work element by element on the contents of arrays |
| pg_math | 1.1.0 | FUNC | GSL statistical functions for postgresql |
| random | 2.0.0 | FUNC | random data generator |
| base36 | 1.0.0 | FUNC | Integer Base36 types |
| base62 | 0.0.1 | FUNC | Base62 extension for PostgreSQL |
| pg_base58 | 0.0.1 | FUNC | Base58 Encoder/Decoder Extension for PostgreSQL |
| financial | 1.0.1 | FUNC | Financial aggregate functions |
| convert | 0.1.0 | FUNC | conversion functions for spatial, routing and other specialized uses |
| refint | 1.0 | FUNC | functions for implementing referential integrity (obsolete) |
| autoinc | 1.0 | FUNC | functions for autoincrementing fields |
| insert_username | 1.0 | FUNC | functions for tracking who changed a table |
| moddatetime | 1.0 | FUNC | functions for tracking last modification time |
| tsm_system_time | 1.0 | FUNC | TABLESAMPLE method which accepts time in milliseconds as a limit |
| dict_xsyn | 1.0 | FUNC | text search dictionary template for extended synonym processing |
| tsm_system_rows | 1.0 | FUNC | TABLESAMPLE method which accepts number of rows as a limit |
| tcn | 1.0 | FUNC | Triggered change notifications |
| uuid-ossp | 1.1 | FUNC | generate universally unique identifiers (UUIDs) |
| btree_gist | 1.7 | FUNC | support for indexing common datatypes in GiST |
| btree_gin | 1.3 | FUNC | support for indexing common datatypes in GIN |
| intarray | 1.5 | FUNC | functions, operators, and index support for 1-D arrays of integers |
| intagg | 1.1 | FUNC | integer aggregator and enumerator (obsolete) |
| dict_int | 1.0 | FUNC | text search dictionary template for integers |
| unaccent | 1.1 | FUNC | text search dictionary that removes accents |
ADMIN
| Extension | Version | Category | Description |
|---|---|---|---|
| pg_repack | 1.5.3 | ADMIN | Reorganize tables in PostgreSQL databases with minimal locks |
| pg_rewrite | 2.1.0 | ADMIN | Tool allows read write to the table during the rewriting |
| pg_squeeze | 1.9.1 | ADMIN | A tool to remove unused space from a relation. |
| pg_dirtyread | 2.7 | ADMIN | Read dead but unvacuumed rows from table |
| pgfincore | 1.3.1 | ADMIN | examine and manage the os buffer cache |
| pg_cooldown | 0.1 | ADMIN | remove buffered pages for specific relations |
| ddlx | 0.30 | ADMIN | DDL eXtractor functions |
| pglinter | 1.1.1 | ADMIN | PostgreSQL Linting and Analysis Extension |
| prioritize | 1.0.4 | ADMIN | get and set the priority of PostgreSQL backends |
| pg_checksums | 1.3 | ADMIN | Activate/deactivate/verify checksums in offline Postgres clusters |
| pg_readonly | 1.0.4 | ADMIN | cluster database read only |
| pgdd | 0.6.1 | ADMIN | Introspect pg data dictionary via standard SQL |
| pg_permissions | 1.4 | ADMIN | view object permissions and compare them with the desired state |
| pgautofailover | 2.2 | ADMIN | pg_auto_failover |
| pg_catcheck | 1.6.0 | ADMIN | Diagnosing system catalog corruption |
| pre_prepare | 0.9 | ADMIN | Pre Prepare your Statement server side |
| pg_upless | 0.0.3 | ADMIN | Detect Useless UPDATE |
| pgcozy | 1.0 | ADMIN | Pre-warming shared buffers according to previous pg_buffercache snapshots for PostgreSQL. |
| pg_orphaned | 1.0 | ADMIN | Deal with orphaned files |
| pg_crash | 1.0 | ADMIN | Send random signals to random processes |
| pg_cheat_funcs | 1.0 | ADMIN | Provides cheat (but useful) functions |
| fio | 1.0 | ADMIN | PostgreSQL File I/O Functions |
| qos | 1.0 | ADMIN | PostgreSQL QoS resource governance extension (session & query throttling/isolation) |
| pg_savior | 0.0.1 | ADMIN | Postgres extension to save OOPS mistakes |
| safeupdate | 1.5 | ADMIN | Require criteria for UPDATE and DELETE |
| pg_strict | 1.0.2 | ADMIN | Prevent dangerous UPDATE and DELETE without WHERE clause |
| pg_drop_events | 0.1.0 | ADMIN | logs transaction ids of drop table, drop column, drop materialized view statements |
| table_log | 0.6.4 | ADMIN | record table modification logs and PITR for table/row |
| pgagent | 4.2.3 | ADMIN | A PostgreSQL job scheduler |
| pg_prewarm | 1.2 | ADMIN | prewarm relation data |
| pgpool_adm | 4.7.1 | ADMIN | Administrative functions for pgPool |
| pgpool_recovery | 4.7.1 | ADMIN | recovery functions for pgpool-II for V4.3 |
| pgpool_regclass | 4.7.1 | ADMIN | replacement for regclass |
| lo | 1.1 | ADMIN | Large Object maintenance |
| basic_archive | - | ADMIN | an example of an archive module |
| basebackup_to_shell | - | ADMIN | adds a custom basebackup target called shell |
| old_snapshot | 1.0 | ADMIN | utilities in support of old_snapshot_threshold |
| adminpack | 2.1 | ADMIN | administrative functions for PostgreSQL |
| amcheck | 1.4 | ADMIN | functions for verifying relation integrity |
| pg_surgery | 1.0 | ADMIN | extension to perform surgery on a damaged relation |
STAT
| Extension | Version | Category | Description |
|---|---|---|---|
| pg_profile | 4.11 | STAT | PostgreSQL load profile repository and report builder |
| pg_tracing | 0.1.3 | STAT | Distributed Tracing for PostgreSQL |
| pg_show_plans | 2.1.7 | STAT | show query plans of all currently running SQL statements |
| pg_stat_kcache | 2.3.1 | STAT | Kernel statistics gathering |
| pg_stat_monitor | 2.3.2 | STAT | The pg_stat_monitor is a PostgreSQL Query Performance Monitoring tool, based on PostgreSQL contrib module pg_stat_statements. pg_stat_monitor provides aggregated statistics, client information, plan details including plan, and histogram information. |
| pg_qualstats | 2.1.3 | STAT | An extension collecting statistics about quals |
| pg_store_plans | 1.9 | STAT | track plan statistics of all SQL statements executed |
| pg_track_settings | 2.1.2 | STAT | Track settings changes |
| pg_track_optimizer | 0.9.1 | STAT | Track planning decisions in comparison with execution reality |
| pg_wait_sampling | 1.1.9 | STAT | sampling based statistics of wait events |
| pgsentinel | 1.4.0 | STAT | active session history |
| system_stats | 3.2 | STAT | EnterpriseDB system statistics for PostgreSQL |
| meta | 0.4.0 | STAT | Normalized, friendlier system catalog for PostgreSQL |
| pgnodemx | 1.7 | STAT | Capture node OS metrics via SQL queries |
| pg_proctab | 1.7 | STAT | PostgreSQL extension to access the OS process table |
| pg_sqlog | 1.6 | STAT | Provide SQL interface to logs |
| bgw_replstatus | 1.0.8 | STAT | Small PostgreSQL background worker to report whether a node is a replication master or standby |
| pgmeminfo | 1.0.0 | STAT | show memory usage |
| toastinfo | 1.5 | STAT | show details on toasted datums |
| explain_ui | 0.0.2 | STAT | easily jump into a visual plan UI for any SQL query |
| pg_relusage | 0.0.1 | STAT | Log all the queries that reference a particular column |
| pagevis | 0.1 | STAT | Visualise database pages in ascii code |
| powa | 5.1.1 | STAT | PostgreSQL Workload Analyser-core |
| pg_overexplain | 1.0 | STAT | Allow EXPLAIN to dump even more details |
| pg_logicalinspect | 1.0 | STAT | Logical decoding components inspection |
| pageinspect | 1.12 | STAT | inspect the contents of database pages at a low level |
| pgrowlocks | 1.2 | STAT | show row-level locking information |
| sslinfo | 1.2 | STAT | information about SSL certificates |
| pg_buffercache | 1.5 | STAT | examine the shared buffer cache |
| pg_walinspect | 1.1 | STAT | functions to inspect contents of PostgreSQL Write-Ahead Log |
| pg_freespacemap | 1.2 | STAT | examine the free space map (FSM) |
| pg_visibility | 1.2 | STAT | examine the visibility map (VM) and page-level visibility info |
| pgstattuple | 1.5 | STAT | show tuple-level statistics |
| auto_explain | - | STAT | Provides a means for logging execution plans of slow statements automatically |
| pg_stat_statements | 1.11 | STAT | track planning and execution statistics of all SQL statements executed |
SEC
| Extension | Version | Category | Description |
|---|---|---|---|
| passwordcheck_cracklib | 3.1.0 | SEC | Strengthen PostgreSQL user password checks with cracklib |
| supautils | 3.1.0 | SEC | Extension that secures a cluster on a cloud environment |
| pgsodium | 3.1.9 | SEC | Postgres extension for libsodium functions |
| supabase_vault | 0.3.1 | SEC | Supabase Vault Extension |
| pg_session_jwt | 0.4.0 | SEC | Manage authentication sessions using JWTs |
| anon | 3.0.1 | SEC | PostgreSQL Anonymizer (anon) extension |
| pgsmcrypto | 0.1.1 | SEC | PostgreSQL SM Algorithm Extension |
| pg_enigma | 0.5.0 | SEC | Encrypted postgres data type |
| pgaudit | 18.0 | SEC | provides auditing functionality |
| pgauditlogtofile | 1.8.0 | SEC | pgAudit addon to redirect audit log to an independent file |
| pg_auditor | 0.2 | SEC | Audit data changes and provide flashback ability |
| logerrors | 2.1.5 | SEC | Function for collecting statistics about messages in logfile |
| pg_auth_mon | 3.0 | SEC | monitor connection attempts per user |
| pg_jobmon | 1.4.1 | SEC | Extension for logging and monitoring functions in PostgreSQL |
| credcheck | 4.6 | SEC | credcheck - postgresql plain text credential checker |
| pgcryptokey | 0.85 | SEC | cryptographic key management |
| pg_pwhash | 1.0 | SEC | Advanced password hashing methods for PostgreSQL |
| login_hook | 1.7 | SEC | login_hook - hook to execute login_hook.login() at login time |
| set_user | 4.2.0 | SEC | similar to SET ROLE but with added logging |
| pg_snakeoil | 1.4 | SEC | The PostgreSQL Antivirus |
| pgextwlist | 1.19 | SEC | PostgreSQL Extension Whitelisting |
| sslutils | 1.4 | SEC | A Postgres extension for managing SSL certificates through SQL |
| noset | 0.3.0 | SEC | Module for blocking SET variables for non-super users. |
| pg_tde | 2.1 | SEC | Percona pg_tde access method |
| sepgsql | - | SEC | label-based mandatory access control (MAC) based on SELinux security policy. |
| auth_delay | - | SEC | pause briefly before reporting authentication failure |
| pgcrypto | 1.3 | SEC | cryptographic functions |
| passwordcheck | - | SEC | checks user passwords and reject weak password |
FDW
| Extension | Version | Category | Description |
|---|---|---|---|
| wrappers | 0.5.7 | FDW | Foreign data wrappers developed by Supabase |
| multicorn | 3.2 | FDW | Fetch foreign data in Python in your PostgreSQL server. |
| odbc_fdw | 0.5.1 | FDW | Foreign data wrapper for accessing remote databases using ODBC |
| jdbc_fdw | 0.4.0 | FDW | foreign-data wrapper for remote servers available over JDBC |
| pgspider_ext | 1.3.0 | FDW | foreign-data wrapper for remote PGSpider servers |
| mysql_fdw | 2.9.3 | FDW | Foreign data wrapper for querying a MySQL server |
| oracle_fdw | 2.8.0 | FDW | foreign data wrapper for Oracle access |
| tds_fdw | 2.0.5 | FDW | Foreign data wrapper for querying a TDS database (Sybase or Microsoft SQL Server) |
| db2_fdw | 18.1.1 | FDW | foreign data wrapper for DB2 access |
| sqlite_fdw | 2.5.0 | FDW | SQLite Foreign Data Wrapper |
| pgbouncer_fdw | 1.4.0 | FDW | Extension for querying PgBouncer stats from normal SQL views & running pgbouncer commands from normal SQL functions |
| etcd_fdw | 0.0.0 | FDW | Foreign data wrapper for etcd |
| informix_fdw | 0.6.3 | FDW | Foreign data wrapper for Informix access |
| nominatim_fdw | 1.1.0 | FDW | Nominatim Foreign Data Wrapper for PostgreSQL |
| mongo_fdw | 5.5.3 | FDW | foreign data wrapper for MongoDB access |
| redis_fdw | 1.0 | FDW | Foreign data wrapper for querying a Redis server |
| redis | 0.0.1 | FDW | Send redis pub/sub messages to Redis from PostgreSQL Directly |
| kafka_fdw | 0.0.3 | FDW | kafka Foreign Data Wrapper for CSV formatted messages |
| hdfs_fdw | 2.3.3 | FDW | foreign-data wrapper for remote hdfs servers |
| firebird_fdw | 1.4.1 | FDW | Foreign data wrapper for Firebird |
| aws_s3 | 0.0.1 | FDW | aws_s3 postgres extension to import/export data from/to s3 |
| log_fdw | 1.4 | FDW | foreign-data wrapper for Postgres log file access |
| dblink | 1.2 | FDW | connect to other PostgreSQL databases from within a database |
| file_fdw | 1.0 | FDW | foreign-data wrapper for flat file access |
| postgres_fdw | 1.1 | FDW | foreign-data wrapper for remote PostgreSQL servers |
SIM
| Extension | Version | Category | Description |
|---|---|---|---|
| documentdb | 0.109 | SIM | API surface for DocumentDB for PostgreSQL |
| documentdb_core | 0.109 | SIM | Core API surface for DocumentDB for PostgreSQL |
| documentdb_distributed | 0.109 | SIM | Multi-Node API surface for DocumentDB |
| documentdb_extended_rum | 0.109 | SIM | DocumentDB Extended RUM index access method |
| orafce | 4.16.4 | SIM | Functions and operators that emulate a subset of functions and packages from the Oracle RDBMS |
| pgtt | 4.4 | SIM | Extension to add Global Temporary Tables feature to PostgreSQL |
| session_variable | 3.4 | SIM | Registration and manipulation of session variables and constants |
| pg_statement_rollback | 1.5 | SIM | Server side rollback at statement level for PostgreSQL like Oracle or DB2 |
| ivorysql_ora | 1.0 | SIM | Oracle compatibility extension |
| ora_btree_gin | 1.0 | SIM | GIN index support for Oracle data types |
| ora_btree_gist | 1.0 | SIM | GiST index support for Oracle data types |
| pg_get_functiondef | 1.0 | SIM | Get function definition |
| plisql | 1.0 | SIM | PL/iSQL procedural language |
| gb18030_2022 | 1.0 | SIM | Support GB18030-2022 to UTF-8 encoding conversion |
| pg_dbms_metadata | 1.0.0 | SIM | Extension to add Oracle DBMS_METADATA compatibility to PostgreSQL |
| pg_dbms_lock | 1.0 | SIM | Extension to add Oracle DBMS_LOCK full compatibility to PostgreSQL |
| pg_dbms_job | 1.5 | SIM | Extension to add Oracle DBMS_JOB full compatibility to PostgreSQL |
| pg_dbms_errlog | 2.2 | SIM | Emulate DBMS_ERRLOG Oracle module to log DML errors in a dedicated table. |
| pg_utl_smtp | 1.0.0 | SIM | Oracle UTL_SMTP compatibility extension for PostgreSQL |
| babelfishpg_common | 5.5.0 | SIM | SQL Server Transact SQL Datatype Support |
| babelfishpg_tsql | 5.5.0 | SIM | SQL Server Transact SQL compatibility |
| babelfishpg_tds | 1.0.0 | SIM | SQL Server TDS protocol extension |
| babelfishpg_money | 1.1.0 | SIM | SQL Server Money Data Type |
| spat | 0.1.0a4 | SIM | Redis-like In-Memory DB Embedded in Postgres |
| pgmemcache | 2.3.0 | SIM | memcached interface |
| aux_mysql | 1.5 | SIM | MySQL compatibility auxiliary extension module |
ETL
| Extension | Version | Category | Description |
|---|---|---|---|
| pglogical | 2.4.6 | ETL | PostgreSQL Logical Replication |
| pglogical_origin | 2.4.6 | ETL | Dummy extension for compatibility when upgrading from Postgres 9.4 |
| pglogical_ticker | 1.4.1 | ETL | Have an accurate view on pglogical replication delay |
| pgl_ddl_deploy | 2.2.1 | ETL | automated ddl deployment using pglogical |
| pg_failover_slots | 1.2.0 | ETL | PG Failover Slots extension |
| db_migrator | 1.0.0 | ETL | Tools to migrate other databases to PostgreSQL |
| pgactive | 2.1.7 | ETL | Active-Active Replication Extension for PostgreSQL |
| spock | 5.0.5 | ETL | Multi-master logical replication extension for PostgreSQL |
| lolor | 1.2.2 | ETL | Extension to make PostgreSQL large objects compatible with logical replication |
| wal2json | 2.6 | ETL | Changing data capture in JSON format |
| wal2mongo | 1.0.7 | ETL | PostgreSQL logical decoding output plugin for MongoDB |
| decoderbufs | 3.4.1 | ETL | Logical decoding plugin that delivers WAL stream changes using a Protocol Buffer format |
| decoder_raw | 1.0 | ETL | Output plugin for logical replication in Raw SQL format |
| mimeo | 1.5.1 | ETL | Extension for specialized, per-table replication between PostgreSQL instances |
| repmgr | 5.5.0 | ETL | Replication manager for PostgreSQL |
| pg_fact_loader | 2.0.1 | ETL | build fact tables with Postgres |
| pg_bulkload | 3.1.23 | ETL | pg_bulkload is a high speed data loading utility for PostgreSQL |
| test_decoding | - | ETL | SQL-based test/example module for WAL logical decoding |
| pgoutput | - | ETL | Logical Replication output plugin |
4 - File Hierarchy
Pigsty FHS
Pigsty’s home directory is located at ~/pigsty by default. The file structure within this directory is as follows:
#------------------------------------------------------------------------------
# pigsty
# ^-----@app # Extra application resources and examples
# ^-----@bin # Utility scripts
# ^-----@docs # Documentation (docsify-compatible)
# ^-----@files # Ansible file resources
# ^-----@victoria # Victoria rules and ops scripts (bin/rules)
# ^-----@grafana # Grafana dashboards
# ^-----@postgres # /pg/bin/ scripts
# ^-----@migration # PGSQL migration task definitions
# ^-----@pki # Self-signed CA and certificates
# ^-----@roles # Ansible role implementations
# ^-----@templates # Ansible template files
# ^-----@vagrant # Vagrant sandbox VM templates
# ^-----@terraform # Terraform cloud VM provisioning templates
# ^-----configure # Configuration wizard script
# ^-----ansible.cfg # Ansible default configuration
# ^-----pigsty.yml # Pigsty default configuration file
# ^-----*.yml # Ansible playbooks
#------------------------------------------------------------------------------
# /infra -> /data/infra # infra runtime symlink
# /data/infra # root:infra 0771
# ^-----@metrics # VictoriaMetrics TSDB data
# ^-----@logs # VictoriaLogs data
# ^-----@traces # VictoriaTraces data
# ^-----@alertmgr # AlertManager data
# ^-----@rules # rule definitions (including agent.yml)
# ^-----@targets # FileSD monitoring targets
# ^-----@dashboards # Grafana dashboard definitions
# ^-----@datasources # Grafana datasource definitions
# ^-----prometheus.yml # Victoria Prometheus-compatible config
#------------------------------------------------------------------------------
CA FHS
Pigsty’s self-signed CA is located in files/pki/ under the Pigsty home directory.
You must keep the CA key file secure: files/pki/ca/ca.key. This key is generated by the ca role during deploy.yml or infra.yml execution.
# pigsty/files/pki # (local_user) 0755
# ^-----@ca # (local_user) 0700
# ^[email protected] # 0600, CRITICAL: keep secret
# ^[email protected] # 0644, CRITICAL: trust anchor
# ^-----@csr # (local_user) 0755, CSRs
# ^-----@misc # (local_user) 0755, misc/issued certs
# ^-----@etcd # (local_user) 0755, ETCD certs
# ^-----@minio # (local_user) 0755, MinIO certs
# ^-----@nginx # (local_user) 0755, Nginx SSL certs
# ^-----@infra # (local_user) 0755, infra client certs
# ^-----@pgsql # (local_user) 0755, PostgreSQL certs
# ^-----@mongo # (local_user) 0755, Mongo/FerretDB certs
# ^-----@mysql # (local_user) 0755, MySQL certs (placeholder)
Nodes managed by Pigsty will have the following certificate files installed:
/etc/pki/ca.crt # root:root 0644, root cert on all nodes
/etc/pki/ca-trust/source/anchors/ca.crt # Symlink to system trust anchors
All infra nodes will have the following certificates:
/etc/pki/infra.crt # root:infra 0644, infra node cert
/etc/pki/infra.key # root:infra 0640, infra node key
When your admin node fails, the files/pki directory and pigsty.yml file should be available on the backup admin node. You can use rsync to achieve this:
# run on meta-1, rsync to meta2
cd ~/pigsty;
rsync -avz ./ meta-2:~/pigsty
INFRA FHS
The infra role creates infra_data (default: /data/infra) and creates a symlink /infra -> /data/infra.
/data/infra permissions are root:infra 0771; subdirectories default to *:infra 0750 unless overridden:
# /infra -> /data/infra
# /data/infra # root:infra 0771
# ^-----@pgadmin # 5050:5050 0700
# ^-----@alertmgr # prometheus:infra 0700
# ^-----@conf # root:infra 0750
# ^-----patronictl.yml # root:admin 0640
# ^-----@tmp # root:infra 0750
# ^-----@hosts # dnsmasq:dnsmasq 0755 (DNS records)
# ^-----default # root:root 0644
# ^-----@datasources # root:infra 0750
# ^-----*.json # 0600 (generated by register)
# ^-----@dashboards # grafana:infra 0750
# ^-----@metrics # victoria:infra 0750
# ^-----@logs # victoria:infra 0750
# ^-----@traces # victoria:infra 0750
# ^-----@bin # victoria:infra 0750
# ^-----check|new|reload|status # root:infra 0755
# ^-----@rules # victoria:infra 0750
# ^-----agent.yml # victoria:infra 0644
# ^-----infra.yml # victoria:infra 0644
# ^-----node.yml # victoria:infra 0644
# ^-----pgsql.yml # victoria:infra 0644
# ^-----redis.yml # victoria:infra 0644
# ^-----etcd.yml # victoria:infra 0644
# ^-----minio.yml # victoria:infra 0644
# ^-----kafka.yml # victoria:infra 0644
# ^-----mysql.yml # victoria:infra 0644
# ^-----@targets # victoria:infra 0750
# ^-----@infra # infra targets (files 0640)
# ^-----@node # node targets (files 0640)
# ^-----@ping # ping targets (files 0640)
# ^-----@etcd # etcd targets (files 0640)
# ^-----@pgsql # pgsql targets (files 0640)
# ^-----@pgrds # pgrds targets (files 0640)
# ^-----@redis # redis targets (files 0640)
# ^-----@minio # minio targets (files 0640)
# ^-----@mongo # mongo targets (files 0640)
# ^-----@juice # juicefs targets (files 0640)
# ^-----@mysql # mysql targets (files 0640)
# ^-----@kafka # kafka targets (files 0640)
# ^-----@docker # docker targets (files 0640)
# ^-----@patroni # patroni SSL targets (files 0640)
# ^-----prometheus.yml # victoria:infra 0644
This structure is created by: roles/infra/tasks/dir.yml, roles/infra/tasks/victoria.yml, roles/infra/tasks/register.yml, roles/infra/tasks/dns.yml, and roles/infra/tasks/env.yml.
NODE FHS
The node data directory is specified by node_data, defaulting to /data, owned by root:root with mode 0755.
Each component’s default data directory is located under this data directory:
/data # root:root 0755
# ^-----@postgres # postgres:postgres 0700 (default pg_fs_main)
# ^-----@backups # postgres:postgres 0700 (default pg_fs_backup)
# ^-----@redis # redis:redis 0700 (shared by multiple instances)
# ^-----@minio # minio:minio 0750 (single-node single-disk mode)
# ^-----@etcd # etcd:etcd 0700 (etcd_data)
# ^-----@infra # root:infra 0771 (infra module data directory)
# ^-----@docker # root:root 0755 (Docker data directory)
# ^-----@... # Other component data directories
Victoria FHS
Monitoring config has moved from the legacy /etc/prometheus layout to the /infra runtime layout.
The main template is roles/infra/templates/victoria/prometheus.yml, rendered to /infra/prometheus.yml.
files/victoria/bin/* and files/victoria/rules/* are synced to /infra/bin/ and /infra/rules/, while each module registers FileSD targets under /infra/targets/*.
# /infra
# ^-----prometheus.yml # Victoria main config (Prometheus-compatible) 0644
# ^-----@bin # Utility scripts (check/new/reload/status) 0755
# ^-----@rules # Recording and alerting rules (*.yml 0644)
# ^-----agent.yml # Agent pre-aggregation rules
# ^-----infra.yml # infra rules and alerts
# ^-----etcd.yml # etcd rules and alerts
# ^-----node.yml # node rules and alerts
# ^-----pgsql.yml # pgsql rules and alerts
# ^-----redis.yml # redis rules and alerts
# ^-----minio.yml # minio rules and alerts
# ^-----kafka.yml # kafka rules and alerts
# ^-----mysql.yml # mysql rules and alerts
# ^-----@targets # FileSD targets (*.yml 0640)
# ^-----@infra # infra static targets
# ^-----@node # node static targets
# ^-----@pgsql # pgsql static targets
# ^-----@pgrds # pgsql remote RDS targets
# ^-----@redis # redis static targets
# ^-----@minio # minio static targets
# ^-----@mongo # mongo static targets
# ^-----@mysql # mysql static targets
# ^-----@etcd # etcd static targets
# ^-----@ping # ping static targets
# ^-----@kafka # kafka static targets
# ^-----@juice # juicefs static targets
# ^-----@docker # docker static targets
# ^-----@patroni # patroni static targets (when SSL enabled)
# /etc/default/vmetrics # vmetrics startup args (victoria:infra 0644)
# /etc/default/vlogs # vlogs startup args (victoria:infra 0644)
# /etc/default/vtraces # vtraces startup args (victoria:infra 0644)
# /etc/default/vmalert # vmalert startup args (victoria:infra 0644)
# /etc/alertmanager.yml # alertmanager main config (prometheus:infra 0644)
# /etc/default/alertmanager # alertmanager env (prometheus:infra 0640)
# /etc/blackbox.yml # blackbox main config (prometheus:infra 0644)
# /etc/default/blackbox_exporter # blackbox env (prometheus:infra 0644)
PostgreSQL FHS
The following parameters are related to PostgreSQL directory layout:
pg_dbsu_home: Postgres default user home directory, default:/var/lib/pgsqlpg_bin_dir: Postgres binary directory, default:/usr/pgsql/bin/pg_data: Postgres data directory, default:/pg/datapg_fs_main: Postgres primary data directory, default:/data/postgrespg_fs_backup: Postgres backup disk mount point, default:/data/backups(optional; can also be a subdirectory on primary disk)pg_cluster_dir: Derived variable,{{ pg_fs_main }}/{{ pg_cluster }}-{{ pg_version }}pg_backup_dir: Derived variable,{{ pg_fs_backup }}/{{ pg_cluster }}-{{ pg_version }}
#--------------------------------------------------------------#
# Working assumptions:
# {{ pg_fs_main }} primary data directory, default: `/data/postgres` [SSD]
# {{ pg_fs_backup }} backup data disk, default: `/data/backups` [HDD]
#--------------------------------------------------------------#
# Default config (pg_cluster=pg-test, pg_version=18):
# pg_fs_main = /data/postgres High-speed SSD
# pg_fs_backup = /data/backups Cheap HDD (optional)
#
# /pg -> /data/postgres/pg-test-18
# /pg/data -> /data/postgres/pg-test-18/data
# /pg/backup -> /data/backups/pg-test-18/backup
#--------------------------------------------------------------#
- name: create pgsql directories
tags: pg_dir
become: true
block:
- name: create pgsql directories
file: path={{ item.path }} state=directory owner={{ item.owner|default(pg_dbsu) }} group={{ item.group|default('postgres') }} mode={{ item.mode }}
with_items:
- { path: "{{ pg_fs_main }}" ,mode: "0700" }
- { path: "{{ pg_fs_backup }}" ,mode: "0700" }
- { path: "{{ pg_cluster_dir }}" ,mode: "0700" }
- { path: "{{ pg_cluster_dir }}/bin" ,mode: "0700" }
- { path: "{{ pg_cluster_dir }}/log" ,mode: "0750" }
- { path: "{{ pg_cluster_dir }}/tmp" ,mode: "0700" }
- { path: "{{ pg_cluster_dir }}/cert" ,mode: "0700" }
- { path: "{{ pg_cluster_dir }}/conf" ,mode: "0700" }
- { path: "{{ pg_cluster_dir }}/data" ,mode: "0700" }
- { path: "{{ pg_cluster_dir }}/spool" ,mode: "0700" }
- { path: "{{ pg_backup_dir }}/backup" ,mode: "0700" }
- { path: "/var/run/postgresql" ,owner: root, group: root, mode: "0755" }
- name: link pgsql directories
file: src={{ item.src }} dest={{ item.dest }} state=link
with_items:
- { src: "{{ pg_backup_dir }}/backup" ,dest: "{{ pg_cluster_dir }}/backup" }
- { src: "{{ pg_cluster_dir }}" ,dest: "/pg" }
Data File Structure
# Physical directories
{{ pg_fs_main }} /data/postgres # postgres:postgres 0700, primary data directory
{{ pg_cluster_dir }} /data/postgres/pg-test-18 # postgres:postgres 0700, cluster directory
/data/postgres/pg-test-18/bin # postgres:postgres 0700 (scripts root:postgres 0755)
/data/postgres/pg-test-18/log # postgres:postgres 0750, logs
/data/postgres/pg-test-18/tmp # postgres:postgres 0700, temp files
/data/postgres/pg-test-18/cert # postgres:postgres 0700, certs
/data/postgres/pg-test-18/conf # postgres:postgres 0700, config index
/data/postgres/pg-test-18/data # postgres:postgres 0700, main data
/data/postgres/pg-test-18/spool # postgres:postgres 0700, pgBackRest spool
/data/postgres/pg-test-18/backup # -> /data/backups/pg-test-18/backup
{{ pg_fs_backup }} /data/backups # postgres:postgres 0700, optional backup mount
{{ pg_backup_dir }} /data/backups/pg-test-18 # postgres:postgres 0700, cluster backup directory
/data/backups/pg-test-18/backup # postgres:postgres 0700, actual backup location
# Symlinks
/pg -> /data/postgres/pg-test-18 # pg root symlink
/pg/data -> /data/postgres/pg-test-18/data # pg data directory
/pg/backup -> /data/backups/pg-test-18/backup # pg backup directory
Binary File Structure
On EL-compatible distributions (using yum), PostgreSQL default installation location is:
/usr/pgsql-${pg_version}/
Pigsty creates a symlink named /usr/pgsql pointing to the actual version specified by the pg_version parameter, for example:
/usr/pgsql -> /usr/pgsql-18
Therefore, the default pg_bin_dir is /usr/pgsql/bin/, and this path is added to the system PATH environment variable, defined in: /etc/profile.d/pgsql.sh.
export PATH="/usr/pgsql/bin:/pg/bin:$PATH"
export PGHOME=/usr/pgsql
export PGDATA=/pg/data
On Ubuntu/Debian, the default PostgreSQL Deb package installation location is:
/usr/lib/postgresql/${pg_version}/bin
Pgbouncer FHS
Pgbouncer runs under the same user as {{ pg_dbsu }} (default postgres), with configs in /etc/pgbouncer.
pgbouncer.ini: main pool configuration (postgres:postgres 0640)database.txt: pooled database definitions (postgres:postgres 0600)useropts.txt: per-user connection options (postgres:postgres 0600)userlist.txt: password file maintained by/pg/bin/pgb-userpgb_hba.conf: access control file (postgres:postgres 0600)
/etc/pgbouncer/ # postgres:postgres 0750
/etc/pgbouncer/pgbouncer.ini # postgres:postgres 0640
/etc/pgbouncer/database.txt # postgres:postgres 0600
/etc/pgbouncer/useropts.txt # postgres:postgres 0600
/etc/pgbouncer/userlist.txt # postgres:postgres (managed by pgb-user)
/etc/pgbouncer/pgb_hba.conf # postgres:postgres 0600
/pg/log/pgbouncer # postgres:postgres 0750
/var/run/postgresql # {{ pg_dbsu }}:postgres 0755 (managed by tmpfiles)
Redis FHS
Pigsty provides basic support for Redis deployment and monitoring.
Redis binaries are usually installed by the system package manager (service paths use /bin/*, with /usr/bin/* compatibility symlinks on most distros):
redis-server
redis-cli
redis-sentinel
redis-check-rdb
redis-check-aof
redis-benchmark
/usr/libexec/redis-shutdown
For a Redis instance named redis-test-1-6379, the related resources are as follows:
/usr/lib/systemd/system/redis-test-1-6379.service # root:root 0644 (Debian: /lib/systemd/system)
/etc/redis/ # redis:redis 0700
/etc/redis/redis-test-1-6379.conf # redis:redis 0700
/data/redis/ # redis:redis 0700
/data/redis/redis-test-1-6379 # redis:redis 0700
/data/redis/redis-test-1-6379/redis-test-1-6379.rdb # RDB file
/data/redis/redis-test-1-6379/redis-test-1-6379.aof # AOF file
/var/log/redis/ # redis:redis 0700
/var/log/redis/redis-test-1-6379.log # logs
/var/run/redis/ # redis:redis 0700 (tmpfiles creates 0755 at boot)
/var/run/redis/redis-test-1-6379.pid # PID
For Ubuntu/Debian, the default systemd service directory is /lib/systemd/system/ instead of /usr/lib/systemd/system/.
5 - Parameters
This is the parameter navigation page for Pigsty v4.x, without repeating full explanations for each parameter.
For parameter details, please read each module’s param page.
According to current documentation scope, official modules contain about 360 parameters across 10 modules.
Module Parameter Navigation
| Module | Groups | Count | Description |
|---|---|---|---|
PGSQL | 9 | 125 | PostgreSQL HA cluster configuration |
INFRA | 10 | 72 | Software repository and Victoria-based observability infra |
NODE | 11 | 73 | Node initialization, system tuning, and ops baseline |
ETCD | 2 | 13 | ETCD cluster and removal safeguard parameters |
MINIO | 2 | 21 | MinIO deployment and removal parameters |
REDIS | 2 | 21 | Redis deployment and removal parameters |
FERRET | 1 | 9 | FerretDB (Mongo API) parameters |
DOCKER | 1 | 8 | Docker engine parameters |
JUICE | 1 | 2 | JuiceFS instance and cache parameters |
VIBE | 1 | 16 | Code/Jupyter/Node.js/Claude configuration |
Parameter Group Quick View
Recommendations
6 - Playbooks
This page summarizes Pigsty v4.x playbook entries and usage guidance by module. For detailed task tags, open each module’s playbook page.
Module Playbook Navigation
| Module | Count | Playbooks |
|---|---|---|
INFRA | 3 | deploy.yml infra.yml infra-rm.yml |
NODE | 2 | node.yml node-rm.yml |
ETCD | 2 | etcd.yml etcd-rm.yml |
PGSQL | 7 | pgsql.yml pgsql-rm.ymlpgsql-user.yml pgsql-db.ymlpgsql-monitor.yml pgsql-migration.yml pgsql-pitr.yml |
REDIS | 2 | redis.yml redis-rm.yml |
MINIO | 2 | minio.yml minio-rm.yml |
FERRET | 1 | mongo.yml |
DOCKER | 1 | docker.yml |
JUICE | 1 | juice.yml |
VIBE | 1 | vibe.yml |
Playbook Matrix
| Playbook | Module | Purpose |
|---|---|---|
deploy.yml | INFRA | One-pass deployment for the core chain (Infra/Node/Etcd/PGSQL, enabling MinIO by config) |
infra.yml | INFRA | Initialize infrastructure nodes |
infra-rm.yml | INFRA | Remove infrastructure components |
node.yml | NODE | Node onboarding and baseline convergence |
node-rm.yml | NODE | Node offboarding |
etcd.yml | ETCD | ETCD install/scale-out |
etcd-rm.yml | ETCD | ETCD remove/scale-in |
pgsql.yml | PGSQL | Initialize PostgreSQL cluster or add instance |
pgsql-rm.yml | PGSQL | Remove PostgreSQL cluster/instance |
pgsql-user.yml | PGSQL | Add business users |
pgsql-db.yml | PGSQL | Add business databases |
pgsql-monitor.yml | PGSQL | Register remote PostgreSQL for monitoring |
pgsql-migration.yml | PGSQL | Generate migration runbook and scripts |
pgsql-pitr.yml | PGSQL | Point-in-time recovery (PITR) |
redis.yml | REDIS | Deploy Redis |
redis-rm.yml | REDIS | Remove Redis |
minio.yml | MINIO | Deploy MinIO |
minio-rm.yml | MINIO | Remove MinIO |
mongo.yml | FERRET | Deploy FerretDB (Mongo API) |
docker.yml | DOCKER | Deploy Docker engine |
juice.yml | JUICE | Deploy/remove JuiceFS instances |
vibe.yml | VIBE | Deploy VIBE dev environment |
Auxiliary Playbooks
The following playbooks are cross-module helpers.
| Playbook | Description |
|---|---|
cache.yml | Build offline installation package cache |
cert.yml | Issue certificates using Pigsty CA |
app.yml | Install Docker Compose app templates |
slim.yml | Minimal component installation scenario |
Playbook Usage Notes
Protection Mechanism
Several modules provide deletion safeguards through *_safeguard parameters:
- PGSQL:
pg_safeguard - ETCD:
etcd_safeguard - MINIO:
minio_safeguard
By default, these safeguard parameters are undefined (not enabled). In production, explicitly set them to true for initialized clusters.
When safeguard is true, corresponding *-rm.yml playbooks abort immediately. You can force override via CLI:
./pgsql-rm.yml -l pg-test -e pg_safeguard=false
./etcd-rm.yml -l etcd -e etcd_safeguard=false
./minio-rm.yml -l minio -e minio_safeguard=false
Limiting Execution Scope
Use -l to limit execution targets:
./pgsql.yml -l pg-meta # run only on pg-meta cluster
./node.yml -l 10.10.10.10 # run only on one node
./redis.yml -l redis-test # run only on redis-test cluster
For large-scale rollout, validate on one cluster first, then deploy in batches.
Idempotency
Most playbooks are idempotent and safe to rerun, with caveats:
infra.ymldoes not clean data by default; all clean parameters (vmetrics_clean,vlogs_clean,vtraces_clean,grafana_clean,nginx_clean) default tofalse- To rebuild from a clean state, explicitly set relevant clean parameters to
true - Re-running
*-rm.ymldeletion playbooks requires extra caution
Task Tags
Use -t to run only selected task subsets:
./pgsql.yml -l pg-test -t pg_service # refresh services only on pg-test
./node.yml -t haproxy # configure haproxy only
./etcd.yml -t etcd_launch # restart etcd only
Quick Command Reference
INFRA Module
./deploy.yml # one-pass full Pigsty deployment
./infra.yml # initialize infrastructure
./infra-rm.yml # remove infrastructure
./cache.yml # build offline package cache
./cert.yml -e cn=<name> # issue client certificate
NODE Module
./node.yml -l <cls|ip> # add node
./node-rm.yml -l <cls|ip> # remove node
bin/node-add <cls|ip> # add node (wrapper)
bin/node-rm <cls|ip> # remove node (wrapper)
ETCD Module
./etcd.yml # initialize etcd cluster
./etcd-rm.yml # remove etcd cluster
bin/etcd-add <ip> # add etcd member (wrapper)
bin/etcd-rm <ip> # remove etcd member (wrapper)
PGSQL Module
./pgsql.yml -l <cls> # initialize PostgreSQL cluster
./pgsql-rm.yml -l <cls> # remove PostgreSQL cluster
./pgsql-user.yml -l <cls> -e username=<user> # create business user
./pgsql-db.yml -l <cls> -e dbname=<db> # create business database
./pgsql-monitor.yml -e clsname=<cls> # monitor remote cluster
./pgsql-migration.yml -e@files/migration/<cls>.yml # generate migration runbook
./pgsql-pitr.yml -l <cls> -e '{"pg_pitr": {}}' # execute PITR recovery
bin/pgsql-add <cls> # initialize cluster (wrapper)
bin/pgsql-rm <cls> # remove cluster (wrapper)
bin/pgsql-user <cls> <user> # create user (wrapper)
bin/pgsql-db <cls> <db> # create database (wrapper)
bin/pgsql-svc <cls> # refresh services (wrapper)
bin/pgsql-hba <cls> # reload HBA (wrapper)
bin/pgmon-add <cls> # monitor remote cluster (wrapper)
REDIS Module
./redis.yml -l <cls> # initialize Redis cluster
./redis-rm.yml -l <cls> # remove Redis cluster
MINIO Module
./minio.yml -l <cls> # initialize MinIO cluster
./minio-rm.yml -l <cls> # remove MinIO cluster
FERRET Module
./mongo.yml -l ferret # install FerretDB
DOCKER Module
./docker.yml -l <host> # install Docker
./app.yml -e app=<name> # deploy Docker Compose app
7 - Port List
This page lists default ports used by Pigsty module components. Adjust as needed or use as a reference for fine-grained firewall configuration.
| Module | Component | Port | Parameter | Status |
|---|---|---|---|---|
NODE | node_exporter | 9100 | node_exporter_port | Enabled |
NODE | haproxy | 9101 | haproxy_exporter_port | Enabled |
NODE | vector | 9598 | vector_port | Enabled |
NODE | keepalived_exporter | 9650 | vip_exporter_port | Optional |
NODE | chronyd | 123 | - | Enabled |
DOCKER | docker | 9323 | docker_exporter_port | Optional |
INFRA | nginx | 80 | nginx_port | Enabled |
INFRA | nginx | 443 | nginx_ssl_port | Enabled |
INFRA | nginx_exporter | 9113 | nginx_exporter_port | Enabled |
INFRA | grafana | 3000 | grafana_port | Enabled |
INFRA | victoriaMetrics | 8428 | vmetrics_port | Enabled |
INFRA | victoriaLogs | 9428 | vlogs_port | Enabled |
INFRA | victoriaTraces | 10428 | vtraces_port | Enabled |
INFRA | vmalert | 8880 | vmalert_port | Enabled |
INFRA | alertmanager | 9059 | alertmanager_port | Enabled |
INFRA | blackbox_exporter | 9115 | blackbox_port | Enabled |
INFRA | dnsmasq | 53 | dns_port | Enabled |
ETCD | etcd | 2379 | etcd_port | Enabled |
ETCD | etcd | 2380 | etcd_peer_port | Enabled |
MINIO | minio | 9000 | minio_port | Enabled |
MINIO | minio | 9001 | minio_admin_port | Enabled |
REDIS | redis | 6379 | redis_instances | Optional |
REDIS | redis_exporter | 9121 | redis_exporter_port | Optional |
FERRET | ferretdb | 27017 | mongo_port | Optional |
FERRET | ferretdb (TLS) | 27018 | mongo_ssl_port | Optional |
FERRET | mongo_exporter | 9216 | mongo_exporter_port | Enabled |
VIBE | code-server | 8443 | code_port | Optional |
VIBE | jupyterlab | 8888 | jupyter_port | Optional |
PGSQL | postgres | 5432 | pg_port | Enabled |
PGSQL | pgbouncer | 6432 | pgbouncer_port | Enabled |
PGSQL | patroni | 8008 | patroni_port | Enabled |
PGSQL | pg_exporter | 9630 | pg_exporter_port | Enabled |
PGSQL | pgbouncer_exporter | 9631 | pgbouncer_exporter_port | Enabled |
PGSQL | pgbackrest_exporter | 9854 | pgbackrest_exporter_port | Enabled |
PGSQL | {{ pg_cluster }}-primary | 5433 | pg_default_services | Enabled |
PGSQL | {{ pg_cluster }}-replica | 5434 | pg_default_services | Enabled |
PGSQL | {{ pg_cluster }}-default | 5436 | pg_default_services | Enabled |
PGSQL | {{ pg_cluster }}-offline | 5438 | pg_default_services | Enabled |
PGSQL | {{ pg_cluster }}-<service> | 543x | pg_services | Optional |
Public Port Recommendations
If you use firewall zone mode, expose only minimum required ports via node_firewall_public_port:
- Minimal management surface:
22, 80, 443(recommended) - If public direct DB access is required: additionally expose
5432
Avoid exposing internal component ports directly to the public internet: etcd (2379/2380), patroni (8008), exporters (9xxx), minio (9000/9001), redis (6379), ferretdb (27017/27018), etc.
node_firewall_mode: zone
node_firewall_public_port: [22, 80, 443]
# node_firewall_public_port: [22, 80, 443, 5432] # only if public DB access is required