Slim Installation Install PostgreSQL clusters without the monitoring infrastructure.
Use Slim Installation to deploy PostgreSQL without the monitoring infrastructure.
It installs ETCD , PGSQL , and part of NODE .
It does not install INFRA , monitoring services, or a local software repository .
When to use Slim Installation
You only need PostgreSQL. You have limited CPU or memory resources. You already have an external monitoring system. You do not need Grafana dashboards. On one node, the omitted infrastructure uses approximately 0.2 vCPU and 500 MB of memory.
Installation limits
The Web UI and local software repository require INFRA.
Slim Installation does not supply these features.
Offline installation supports only one node in this mode.
For multiple nodes, Slim Installation requires online package access.
Overview Download Pigsty and enter the source directory. Select the slim configuration template with ./configure -g -c slim. Run ./slim.yml instead of ./deploy.yml.
curl https://repo.pigsty.io/get | bash
cd ~/pigsty
./configure -g -c slim
./slim.yml Description Slim Installation configures these components:
You can disable all optional components through the configuration.
Patroni and etcd remain required.
Without INFRA, Nginx does not serve a local software repository to other nodes.
Thus, offline Slim Installation supports only one node.
Configuration The conf/slim.yml template defines this single-node deployment:
---
#==============================================================#
# File : slim.yml
# Desc : Pigsty slim installation config template
# Ctime : 2020-05-22
# Mtime : 2025-12-28
# Docs : https://pigsty.io/docs/conf/slim
# License : Apache-2.0 @ https://pigsty.io/docs/about/license/
# Copyright : 2018-2026 Ruohang Feng / Vonng ([email protected] )
#==============================================================#
# This is the config template for slim / minimal installation
# No monitoring & infra will be installed, just raw postgresql
#
# Usage:
# curl https://repo.pigsty.io/get | bash
# ./configure -c slim
# ./slim.yml
all :
children :
etcd : # dcs service for postgres/patroni ha consensus
hosts : # 1 node for testing, 3 or 5 for production
10.10.10.10 : { etcd_seq : 1 } # etcd_seq required
#10.10.10.11: { etcd_seq: 2 } # assign from 1 ~ n
#10.10.10.12: { etcd_seq: 3 } # three-member cluster keeps an odd voter count
vars : # cluster level parameter override roles/etcd
etcd_cluster : etcd # mark etcd cluster name etcd
#----------------------------------------------#
# PostgreSQL Cluster
#----------------------------------------------#
pg-meta :
hosts :
10.10.10.10 : { pg_seq : 1, pg_role : primary }
#10.10.10.11: { pg_seq: 2, pg_role: replica } # you can add more!
#10.10.10.12: { pg_seq: 3, pg_role: replica, pg_offline_query: true }
vars :
pg_cluster : pg-meta
pg_users :
- { name : dbuser_meta ,password : DBUser.Meta ,pgbouncer : true ,roles : [dbrole_admin ] ,comment : pigsty admin user }
- { name : dbuser_view ,password : DBUser.Viewer ,pgbouncer : true ,roles : [dbrole_readonly] ,comment : read-only viewer }
pg_databases :
- { name : meta, baseline : cmdb.sql ,comment : pigsty meta database ,schemas : [pigsty] ,extensions : [ vector ]}
pg_hba_rules : # https://pigsty.io/docs/pgsql/config/hba
- { user : all ,db : all ,addr : intra ,auth : pwd ,title : 'everyone intranet access with password' ,order : 800 }
pg_crontab : # https://pigsty.io/docs/pgsql/admin/crontab
- '00 01 * * * /pg/bin/pg-backup full'
vars :
version : v4.5.0 # pigsty version string
admin_ip : 10.10.10.10 # admin node ip address
region : default # upstream mirror region: default,china,europe
nodename_overwrite : false # do not overwrite node hostname on single node mode
node_repo_modules : node,infra,pgsql # add these repos directly to the singleton node
node_tune : oltp # node tuning specs: oltp,olap,tiny,crit
pg_conf : oltp.yml # pgsql tuning specs: {oltp,olap,tiny,crit}.yml
pg_version : 18 # Default PostgreSQL Major Version is 18
pg_packages : [ pgsql-main, pgsql-common ] # pg kernel and common utils
#pg_extensions: [ pg18-time ,pg18-gis ,pg18-rag ,pg18-fts ,pg18-olap ,pg18-feat ,pg18-lang ,pg18-type ,pg18-util ,pg18-func ,pg18-admin ,pg18-stat ,pg18-sec ,pg18-fdw ,pg18-sim ,pg18-etl]
#----------------------------------------------#
# PASSWORD : https://pigsty.io/docs/setup/security/
#----------------------------------------------#
grafana_admin_password : pigsty
grafana_view_password : DBUser.Viewer
pg_admin_password : DBUser.DBA
pg_monitor_password : DBUser.Monitor
pg_replication_password : DBUser.Replicator
patroni_password : Patroni.API
haproxy_admin_password : pigsty
minio_secret_key : S3User.MinIO
etcd_root_password : Etcd.Root
... Deployment Use the slim.yml playbook for deployment.
Run it from the Pigsty source directory:
HA Cluster To deploy an HA cluster, add nodes to both the etcd and pg-meta groups.
This example uses three nodes:
all :
children :
etcd :
hosts :
10.10.10.10 : { etcd_seq : 1 }
10.10.10.11 : { etcd_seq : 2 } # <-- New
10.10.10.12 : { etcd_seq : 3 } # <-- New
pg-meta :
hosts :
10.10.10.10 : { pg_seq : 1, pg_role : primary }
10.10.10.11 : { pg_seq : 2, pg_role : replica } # <-- New
10.10.10.12 : { pg_seq : 3, pg_role : replica } # <-- New
vars :
pg_cluster : pg-meta
pg_users :
- { name : dbuser_meta ,password : DBUser.Meta ,pgbouncer : true ,roles : [dbrole_admin ] ,comment : pigsty admin user }
- { name : dbuser_view ,password : DBUser.Viewer ,pgbouncer : true ,roles : [dbrole_readonly] ,comment : read-only viewer }
pg_databases :
- { name : meta, baseline : cmdb.sql ,comment : pigsty meta database ,schemas : [pigsty] ,extensions : [ vector ]}
pg_crontab : [ '00 01 * * * /pg/bin/pg-backup full' ] # full backup daily at 1am
vars :
# omitted …… Was this page helpful?
Yes
No
Thanks—your feedback helps us improve this page.
What got in the way? (optional)
Missing information
Incorrect or outdated
Steps did not work
Hard to understand
Change response