<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Tutorial on Pigsty v5.0</title>
    <link>https://pgsty.pro/categories/tutorial/</link>
    <description>Recent content in Tutorial on Pigsty v5.0</description>
    <generator>Hugo</generator>
    <language>en-US</language>
    
    
    
      <lastBuildDate>Sat, 11 Jan 2025 00:00:00 +0000</lastBuildDate>
    
    
      <atom:link href="https://pgsty.pro/categories/tutorial/index.xml" rel="self" type="application/rss+xml" />
    
    <item>
        <title>Get Started</title>
        <link>https://pgsty.pro/docs/setup/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/setup/</guid>
        <description>&lt;p&gt;Pigsty uses a scalable architecture design, suitable for both &lt;a href=&#34;https://pgsty.pro/docs/deploy/&#34;&gt;&lt;strong&gt;large-scale production environments&lt;/strong&gt;&lt;/a&gt; and &lt;a href=&#34;https://pgsty.pro/docs/setup/install/&#34;&gt;&lt;strong&gt;single-node development/demo environments&lt;/strong&gt;&lt;/a&gt;. This guide focuses on the latter.&lt;/p&gt;&#xA;&lt;p&gt;If you intend to learn about Pigsty, you can start with the &lt;a href=&#34;https://pgsty.pro/docs/setup/install/&#34;&gt;&lt;strong&gt;Quick Start&lt;/strong&gt;&lt;/a&gt; single-node deployment. A Linux virtual machine with 1C/2G is sufficient to run Pigsty.&lt;/p&gt;&#xA;&lt;p&gt;You can use a Linux MiniPC, free/discounted virtual machines provided by cloud providers, Windows WSL, or create a virtual machine on your own laptop for Pigsty deployment.&#xA;Pigsty provides out-of-the-box &lt;a href=&#34;https://pgsty.pro/docs/deploy/vagrant/&#34;&gt;&lt;strong&gt;Vagrant&lt;/strong&gt;&lt;/a&gt; templates and &lt;a href=&#34;https://pgsty.pro/docs/deploy/terraform/&#34;&gt;&lt;strong&gt;Terraform&lt;/strong&gt;&lt;/a&gt; templates to help you provision Linux VMs with one click locally or in the cloud.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Deployment</title>
        <link>https://pgsty.pro/docs/deploy/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/deploy/</guid>
        <description>&lt;p&gt;Unlike &lt;a href=&#34;https://pgsty.pro/docs/setup/&#34;&gt;&lt;strong&gt;Getting Started&lt;/strong&gt;&lt;/a&gt;, production Pigsty deployments require more &lt;a href=&#34;https://pgsty.pro/docs/deploy/planning/&#34;&gt;&lt;strong&gt;Architecture Planning&lt;/strong&gt;&lt;/a&gt; and &lt;a href=&#34;https://pgsty.pro/docs/deploy/prepare/&#34;&gt;&lt;strong&gt;Preparation&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;This chapter helps you understand the complete deployment process and provides best practices for production environments.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;Before deploying to production, we recommend testing in Pigsty&amp;rsquo;s &lt;a href=&#34;https://pgsty.pro/docs/deploy/sandbox/&#34;&gt;&lt;strong&gt;Sandbox&lt;/strong&gt;&lt;/a&gt; to fully understand the workflow.&#xA;Use &lt;a href=&#34;https://pgsty.pro/docs/deploy/vagrant/&#34;&gt;&lt;strong&gt;Vagrant&lt;/strong&gt;&lt;/a&gt; to create a local 4-node sandbox, or leverage &lt;a href=&#34;https://pgsty.pro/docs/deploy/terraform/&#34;&gt;&lt;strong&gt;Terraform&lt;/strong&gt;&lt;/a&gt; to provision larger simulation environments in the cloud.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://pgsty.pro/docs/concept/arch/&#34;&gt;&lt;img class=&#34;td-image&#34; src=&#34;https://pgsty.pro/img/pigsty/sandbox.png&#34; alt=&#34;pigsty-sandbox&#34; loading=&#34;lazy&#34; decoding=&#34;async&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;For production, you typically need at least three &lt;a href=&#34;https://pgsty.pro/docs/deploy/prepare/&#34;&gt;&lt;strong&gt;nodes&lt;/strong&gt;&lt;/a&gt; for high availability. You should understand Pigsty&amp;rsquo;s core &lt;a href=&#34;https://pgsty.pro/docs/concept/&#34;&gt;&lt;strong&gt;Concepts&lt;/strong&gt;&lt;/a&gt; and common administration procedures,&#xA;including &lt;a href=&#34;https://pgsty.pro/docs/setup/config/&#34;&gt;&lt;strong&gt;Configuration&lt;/strong&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/setup/playbook/&#34;&gt;&lt;strong&gt;Ansible Playbooks&lt;/strong&gt;&lt;/a&gt;, and &lt;a href=&#34;https://pgsty.pro/docs/deploy/security/&#34;&gt;&lt;strong&gt;Security Hardening&lt;/strong&gt;&lt;/a&gt; for enterprise compliance.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Inventory</title>
        <link>https://pgsty.pro/docs/concept/iac/inventory/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/concept/iac/inventory/</guid>
        <description>&lt;p&gt;Every Pigsty deployment corresponds to an &lt;strong&gt;Inventory&lt;/strong&gt; that describes key properties of the infrastructure and database clusters.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;configuration-file&#34;&gt;Configuration File&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty uses &lt;a href=&#34;https://docs.ansible.com/projects/ansible/latest/inventory_guide/intro_inventory.html&#34;&gt;&lt;strong&gt;Ansible YAML configuration format&lt;/strong&gt;&lt;/a&gt; by default,&#xA;with a single YAML configuration file &lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/pigsty.yml&#34;&gt;&lt;strong&gt;&lt;code&gt;pigsty.yml&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; as the inventory.&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-a35a81ff-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;bash&#34; data-td-line-count=&#34;2&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-a35a81ff-fence-0-viewport&#34; data-td-code-viewport&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;~/pigsty&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  ^---- pigsty.yml   &lt;span class=&#34;c1&#34;&gt;# &amp;lt;---- Default configuration file&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;You can directly edit this configuration file to customize your deployment, or use the &lt;a href=&#34;https://pgsty.pro/docs/concept/iac/configure/&#34;&gt;&lt;strong&gt;&lt;code&gt;configure&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; wizard script provided by Pigsty to automatically generate an appropriate configuration file.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Single-Node Installation</title>
        <link>https://pgsty.pro/docs/setup/install/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/setup/install/</guid>
        <description>&lt;p&gt;This is the Pigsty single-node install guide &lt;span class=&#34;td-badge td-badge--info&#34;&gt;Single Node&lt;/span&gt;. For multi-node HA production deployment, refer to the &lt;a href=&#34;https://pgsty.pro/docs/deploy/&#34;&gt;&lt;strong&gt;Deployment&lt;/strong&gt;&lt;/a&gt; docs.&lt;/p&gt;&#xA;&lt;p&gt;Pigsty single-node installation consists of three steps: &lt;a href=&#34;https://pgsty.pro/docs/setup/install/#install&#34;&gt;&lt;strong&gt;Install&lt;/strong&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/setup/install/#configure&#34;&gt;&lt;strong&gt;Configure&lt;/strong&gt;&lt;/a&gt;, and &lt;a href=&#34;https://pgsty.pro/docs/setup/install/#deploy&#34;&gt;&lt;strong&gt;Deploy&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;summary&#34;&gt;Summary&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://pgsty.pro/docs/deploy/prepare/&#34;&gt;&lt;strong&gt;Prepare&lt;/strong&gt;&lt;/a&gt; a &lt;a href=&#34;https://pgsty.pro/docs/deploy/prepare/#node&#34;&gt;&lt;strong&gt;node&lt;/strong&gt;&lt;/a&gt; with &lt;a href=&#34;https://pgsty.pro/docs/ref/linux/&#34;&gt;&lt;strong&gt;compatible OS&lt;/strong&gt;&lt;/a&gt;, and run as an &lt;a href=&#34;https://pgsty.pro/docs/deploy/admin/&#34;&gt;&lt;strong&gt;admin user&lt;/strong&gt;&lt;/a&gt; with nopass &lt;a href=&#34;https://pgsty.pro/docs/deploy/admin/#ssh&#34;&gt;&lt;strong&gt;&lt;code&gt;ssh&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; and &lt;a href=&#34;https://pgsty.pro/docs/deploy/admin/#sudo&#34;&gt;&lt;strong&gt;&lt;code&gt;sudo&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;:&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Choose a Pigsty download mirror:&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;td-tab-block td-tab-block--code&#34; data-td-tab=&#34;pigsty.io (Global)&#34; data-td-tab-group=&#34;download-mirror&#34; data-td-tab-value=&#34;global&#34; data-td-tab-kind=&#34;code&#34;&gt;&#xA;&lt;div class=&#34;td-tab-block__title&#34; data-td-tab-title&gt;pigsty.io (Global)&lt;/div&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-59168d38-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;bash&#34; data-td-line-count=&#34;1&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-59168d38-fence-0-viewport&#34; data-td-code-viewport&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -fsSL https://repo.pigsty.io/get &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; bash&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;/div&gt;&#xA;&lt;div class=&#34;td-tab-block td-tab-block--code&#34; data-td-tab=&#34;pigsty.cc (China)&#34; data-td-tab-value=&#34;china&#34; data-td-tab-kind=&#34;code&#34;&gt;&#xA;&lt;div class=&#34;td-tab-block__title&#34; data-td-tab-title&gt;pigsty.cc (China)&lt;/div&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-59168d38-fence-1&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;bash&#34; data-td-line-count=&#34;1&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-59168d38-fence-1-viewport&#34; data-td-code-viewport&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -fsSL https://repo.pigsty.cc/get &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; bash&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;This command runs the &lt;a href=&#34;https://pgsty.pro/docs/setup/install/#install&#34;&gt;&lt;strong&gt;install&lt;/strong&gt;&lt;/a&gt; script, downloads and extracts Pigsty source to your home directory and installs dependencies. Then complete &lt;a href=&#34;https://pgsty.pro/docs/setup/install/#configure&#34;&gt;&lt;strong&gt;Configure&lt;/strong&gt;&lt;/a&gt; and &lt;a href=&#34;https://pgsty.pro/docs/setup/install/#deploy&#34;&gt;&lt;strong&gt;Deploy&lt;/strong&gt;&lt;/a&gt;:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Docker Deployment</title>
        <link>https://pgsty.pro/docs/setup/docker/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/setup/docker/</guid>
        <description>&lt;p&gt;Pigsty is designed for native Linux, but can also run in Linux containers with systemd.&#xA;If you don&amp;rsquo;t have native Linux (e.g., &lt;strong&gt;macOS&lt;/strong&gt; or &lt;strong&gt;Windows&lt;/strong&gt;), use Docker to spin up a local single-node Pigsty for testing.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;quick-start&#34;&gt;Quick Start&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Enter the &lt;a href=&#34;https://github.com/pgsty/pigsty/tree/main/docker&#34;&gt;&lt;strong&gt;&lt;code&gt;docker/&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; dir in Pigsty source and launch with one command:&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-1c813497-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;bash&#34; data-td-line-count=&#34;2&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-1c813497-fence-0-viewport&#34; data-td-code-viewport&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; ~/pigsty/docker&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;make launch          &lt;span class=&#34;c1&#34;&gt;# Start container + generate config + deploy&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;After deployment, access services:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Web Interface</title>
        <link>https://pgsty.pro/docs/setup/webui/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/setup/webui/</guid>
        <description>&lt;p&gt;After &lt;a href=&#34;https://pgsty.pro/docs/setup/install/&#34;&gt;&lt;strong&gt;single-node installation&lt;/strong&gt;&lt;/a&gt;, you&amp;rsquo;ll have the &lt;a href=&#34;https://pgsty.pro/docs/infra/&#34;&gt;&lt;strong&gt;&lt;code&gt;INFRA&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; module installed on the current node, which includes an out-of-the-box Nginx web server.&lt;/p&gt;&#xA;&lt;p&gt;The default server configuration provides a WebUI graphical interface for displaying monitoring dashboards and unified proxy access to other component web interfaces.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;access&#34;&gt;Access&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;You can access this graphical interface by entering the deployment node&amp;rsquo;s IP address in your browser. By default, Nginx serves on standard ports &lt;code&gt;80/443&lt;/code&gt;.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Getting Started with PostgreSQL</title>
        <link>https://pgsty.pro/docs/setup/pgsql/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/setup/pgsql/</guid>
        <description>&lt;p&gt;&lt;a href=&#34;https://www.postgresql.org/&#34;&gt;&lt;strong&gt;PostgreSQL&lt;/strong&gt;&lt;/a&gt; (abbreviated as PG) is the world&amp;rsquo;s most advanced and popular open-source relational database. Use it to store and retrieve multi-modal data.&lt;/p&gt;&#xA;&lt;p&gt;This guide is for developers with basic Linux CLI experience but not very familiar with PostgreSQL, helping you quickly get started with PG in Pigsty.&lt;/p&gt;&#xA;&lt;p&gt;We assume you&amp;rsquo;re a personal user deploying in the default single-node mode. For prod multi-node HA cluster access, refer to &lt;a href=&#34;https://pgsty.pro/docs/pgsql/service/&#34;&gt;&lt;strong&gt;Prod Service Access&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;basics&#34;&gt;Basics&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;In the default &lt;a href=&#34;https://pgsty.pro/docs/setup/install/&#34;&gt;&lt;strong&gt;single-node installation&lt;/strong&gt;&lt;/a&gt; template, you&amp;rsquo;ll create a PostgreSQL database cluster named &lt;code&gt;pg-meta&lt;/code&gt; on the current node, with only one primary instance.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Customize Pigsty with Configuration</title>
        <link>https://pgsty.pro/docs/setup/config/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/setup/config/</guid>
        <description>&lt;p&gt;Besides using the &lt;a href=&#34;https://pgsty.pro/docs/concept/iac/configure/&#34;&gt;&lt;strong&gt;configuration wizard&lt;/strong&gt;&lt;/a&gt; to auto-generate configs, you can write Pigsty config files from scratch.&#xA;This tutorial guides you through building a complex &lt;a href=&#34;https://pgsty.pro/docs/concept/iac/inventory/&#34;&gt;&lt;strong&gt;inventory&lt;/strong&gt;&lt;/a&gt; step by step.&lt;/p&gt;&#xA;&lt;p&gt;If you define NODE, INFRA, ETCD, MINIO, and PGSQL in the &lt;a href=&#34;https://pgsty.pro/docs/concept/iac/inventory/&#34;&gt;&lt;strong&gt;inventory&lt;/strong&gt;&lt;/a&gt; upfront, &lt;code&gt;deploy.yml&lt;/code&gt; can deploy this core path in one run—but it hides the details. Optional modules such as Docker, Redis, Kafka, native MySQL, JUICE, and VIBE require their own playbooks.&lt;/p&gt;&#xA;&lt;p&gt;This doc breaks down all modules and playbooks, showing how to incrementally build from a simple config to a complete deployment.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Run Playbooks with Ansible</title>
        <link>https://pgsty.pro/docs/setup/playbook/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/setup/playbook/</guid>
        <description>&lt;p&gt;Pigsty uses &lt;a href=&#34;https://docs.ansible.com/&#34;&gt;&lt;strong&gt;Ansible&lt;/strong&gt;&lt;/a&gt; to manage clusters, a very popular large-scale/batch/automation ops tool in the SRE community.&lt;/p&gt;&#xA;&lt;p&gt;Ansible can use &lt;strong&gt;declarative&lt;/strong&gt; approach for server configuration management. All module deployments are implemented through a series of idempotent &lt;a href=&#34;https://pgsty.pro/docs/ref/playbook/&#34;&gt;&lt;strong&gt;Ansible playbooks&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;For example, in single-node deployment, you&amp;rsquo;ll use the &lt;a href=&#34;https://pgsty.pro/docs/setup/playbook/#deploy-playbook&#34;&gt;&lt;strong&gt;&lt;code&gt;deploy.yml&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; playbook. Pigsty has more &lt;a href=&#34;https://pgsty.pro/docs/ref/playbook/&#34;&gt;&lt;strong&gt;built-in playbooks&lt;/strong&gt;&lt;/a&gt;, you can choose to use as needed.&lt;/p&gt;&#xA;&lt;p&gt;Understanding Ansible basics helps with better use of Pigsty, but this is &lt;strong&gt;not required&lt;/strong&gt;, especially for single-node deployment.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Offline Installation</title>
        <link>https://pgsty.pro/docs/setup/offline/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/setup/offline/</guid>
        <description>&lt;p&gt;Pigsty &lt;a href=&#34;https://pgsty.pro/docs/setup/install/&#34;&gt;&lt;strong&gt;installs&lt;/strong&gt;&lt;/a&gt; from Internet upstream by default, but some envs are isolated from the Internet.&#xA;To address this, Pigsty supports offline installation using &lt;a href=&#34;https://pgsty.pro/docs/setup/offline/#offline-packages&#34;&gt;&lt;strong&gt;offline packages&lt;/strong&gt;&lt;/a&gt;.&#xA;Think of them as Linux-native Docker images.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;strong&gt;Offline packages&lt;/strong&gt; bundle all required RPM/DEB packages and dependencies; they are snapshots of the local APT/YUM repo after a normal &lt;a href=&#34;https://pgsty.pro/docs/setup/install/&#34;&gt;&lt;strong&gt;installation&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;In &lt;a href=&#34;https://pgsty.pro/docs/deploy/&#34;&gt;&lt;strong&gt;serious prod deployments&lt;/strong&gt;&lt;/a&gt;, we &lt;strong&gt;strongly recommend&lt;/strong&gt; using offline packages.&#xA;They ensure all future nodes have consistent software versions with the existing env,&#xA;and avoid online installation failures caused by upstream changes (quite common!),&#xA;guaranteeing you can run it independently forever.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Slim Installation</title>
        <link>https://pgsty.pro/docs/setup/slim/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/setup/slim/</guid>
        <description>&lt;p&gt;If you only want HA PostgreSQL database cluster itself without monitoring, infra, etc., consider &lt;strong&gt;Slim Installation&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Slim installation has no &lt;a href=&#34;https://pgsty.pro/docs/infra/&#34;&gt;&lt;strong&gt;&lt;code&gt;INFRA&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; module, no monitoring, no &lt;a href=&#34;https://pgsty.pro/docs/setup/offline/&#34;&gt;&lt;strong&gt;local repo&lt;/strong&gt;&lt;/a&gt;—just &lt;a href=&#34;https://pgsty.pro/docs/etcd/&#34;&gt;&lt;strong&gt;&lt;code&gt;ETCD&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; and &lt;a href=&#34;https://pgsty.pro/docs/pgsql/&#34;&gt;&lt;strong&gt;&lt;code&gt;PGSQL&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; and partial &lt;a href=&#34;https://pgsty.pro/docs/node/&#34;&gt;&lt;strong&gt;&lt;code&gt;NODE&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; functionality.&lt;/p&gt;&#xA;&lt;div class=&#34;td-callout td-callout--tip&#34; role=&#34;note&#34;&gt;&#xA;  &lt;div class=&#34;td-callout__title&#34;&gt;&lt;i class=&#34;td-callout__icon fa-solid fa-lightbulb&#34; aria-hidden=&#34;true&#34;&gt;&lt;/i&gt;&lt;span class=&#34;td-callout__label&#34;&gt;Slim installation is suitable for:&lt;/span&gt;&lt;/div&gt;&#xA;  &lt;div class=&#34;td-callout__body&#34;&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Only needing PostgreSQL database itself, no observability infra required.&lt;/li&gt;&#xA;&lt;li&gt;Extremely resource-constrained envs unwilling to bear infra overhead (~0.2 vCPU / 500MB on single node).&lt;/li&gt;&#xA;&lt;li&gt;Already having external monitoring system, wanting to use your own unified monitoring framework.&lt;/li&gt;&#xA;&lt;li&gt;Not needing the Grafana visualization dashboard component.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;  &lt;/div&gt;&#xA;&lt;/div&gt;&lt;div class=&#34;td-callout td-callout--warning&#34; role=&#34;note&#34;&gt;&#xA;  &lt;div class=&#34;td-callout__title&#34;&gt;&lt;i class=&#34;td-callout__icon fa-solid fa-triangle-exclamation&#34; aria-hidden=&#34;true&#34;&gt;&lt;/i&gt;&lt;span class=&#34;td-callout__label&#34;&gt;Limitations of slim installation:&lt;/span&gt;&lt;/div&gt;&#xA;  &lt;div class=&#34;td-callout__body&#34;&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;No &lt;a href=&#34;https://pgsty.pro/docs/infra/&#34;&gt;&lt;strong&gt;INFRA&lt;/strong&gt;&lt;/a&gt; module, cannot use WebUI and local software repo features.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/setup/offline/&#34;&gt;&lt;strong&gt;Offline Install&lt;/strong&gt;&lt;/a&gt; is limited to single-node mode; multi-node slim install can only be done online.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;  &lt;/div&gt;&#xA;&lt;/div&gt;&lt;hr&gt;&#xA;&lt;h2 id=&#34;overview&#34;&gt;Overview&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;To use slim installation, you need to:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Security Recommendations</title>
        <link>https://pgsty.pro/docs/setup/security/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/setup/security/</guid>
        <description>&lt;p&gt;The default configuration targets local demonstrations and development or testing on a trusted intranet. If other hosts can reach the deployment, complete at least three checks: credentials, network boundaries, and critical files.&lt;/p&gt;&#xA;&lt;p&gt;Production environments should also review the &lt;a href=&#34;https://pgsty.pro/docs/concept/sec/level/&#34;&gt;&lt;strong&gt;Security Model&lt;/strong&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/concept/sec/compliance/&#34;&gt;&lt;strong&gt;Compliance&lt;/strong&gt;&lt;/a&gt;, and &lt;a href=&#34;https://pgsty.pro/docs/deploy/security/&#34;&gt;&lt;strong&gt;Security Considerations&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;passwords&#34;&gt;Passwords&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty default credentials are public in the source code and documentation and must not be used directly in production.&lt;/p&gt;&#xA;&lt;p&gt;The configuration wizard can randomize built-in parameters and example credentials that it recognizes:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Install Pigsty for Production</title>
        <link>https://pgsty.pro/docs/deploy/install/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/deploy/install/</guid>
        <description>&lt;p&gt;This is the Pigsty production multi-node deployment guide. For single-node Demo/Dev setups, see &lt;a href=&#34;https://pgsty.pro/docs/setup/&#34;&gt;&lt;strong&gt;Getting Started&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;summary&#34;&gt;Summary&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://pgsty.pro/docs/deploy/prepare/&#34;&gt;&lt;strong&gt;Prepare&lt;/strong&gt;&lt;/a&gt; &lt;a href=&#34;https://pgsty.pro/docs/deploy/prepare/#node&#34;&gt;&lt;strong&gt;nodes&lt;/strong&gt;&lt;/a&gt; with &lt;a href=&#34;https://pgsty.pro/docs/deploy/admin/#ssh&#34;&gt;&lt;strong&gt;SSH access&lt;/strong&gt;&lt;/a&gt; following your &lt;a href=&#34;https://pgsty.pro/docs/deploy/planning/&#34;&gt;&lt;strong&gt;architecture plan&lt;/strong&gt;&lt;/a&gt;,&#xA;install a &lt;a href=&#34;https://pgsty.pro/docs/ref/linux/&#34;&gt;&lt;strong&gt;compatible Linux OS&lt;/strong&gt;&lt;/a&gt;, then execute with an &lt;a href=&#34;https://pgsty.pro/docs/deploy/admin/&#34;&gt;&lt;strong&gt;admin user&lt;/strong&gt;&lt;/a&gt; having passwordless &lt;a href=&#34;https://pgsty.pro/docs/deploy/admin/#ssh&#34;&gt;&lt;strong&gt;&lt;code&gt;ssh&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; and &lt;a href=&#34;https://pgsty.pro/docs/deploy/admin/#sudo&#34;&gt;&lt;strong&gt;&lt;code&gt;sudo&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;:&lt;/p&gt;&#xA;&lt;div class=&#34;td-code td-code--untitled&#34; id=&#34;td-code-889bf18e-fence-0&#34; data-td-code data-td-code-auto-id&#xA;     data-td-language=&#34;bash&#34; data-td-line-count=&#34;2&#34;&gt;&#xA;  &lt;div class=&#34;td-code__viewport&#34; id=&#34;td-code-889bf18e-fence-0-viewport&#34; data-td-code-viewport&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -fsSL https://repo.pigsty.io/get &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; bash&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;         &lt;span class=&#34;c1&#34;&gt;# International&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;curl -fsSL https://repo.pigsty.cc/get &lt;span class=&#34;p&#34;&gt;|&lt;/span&gt; bash&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;         &lt;span class=&#34;c1&#34;&gt;# Backup Mirror&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;This runs the &lt;a href=&#34;https://pgsty.pro/docs/deploy/install/#install&#34;&gt;&lt;strong&gt;install&lt;/strong&gt;&lt;/a&gt; script, downloading and extracting Pigsty source to your home directory with dependencies installed. Complete &lt;a href=&#34;https://pgsty.pro/docs/deploy/install/#configure&#34;&gt;&lt;strong&gt;configuration&lt;/strong&gt;&lt;/a&gt; and &lt;a href=&#34;https://pgsty.pro/docs/deploy/install/#deploy&#34;&gt;&lt;strong&gt;deployment&lt;/strong&gt;&lt;/a&gt; to finish.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Prepare Resources for Serious Deployment</title>
        <link>https://pgsty.pro/docs/deploy/prepare/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/deploy/prepare/</guid>
        <description>&lt;p&gt;Pigsty runs on nodes (physical machines or VMs). This document covers the planning and preparation required for deployment.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;node&#34;&gt;Node&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Pigsty currently runs on &lt;code&gt;Linux&lt;/code&gt; kernel with &lt;code&gt;x86_64&lt;/code&gt; / &lt;code&gt;aarch64&lt;/code&gt; architecture.&#xA;A &amp;ldquo;&lt;strong&gt;node&lt;/strong&gt;&amp;rdquo; refers to an SSH &lt;a href=&#34;https://pgsty.pro/docs/deploy/admin/#check-accessibility&#34;&gt;&lt;strong&gt;accessible&lt;/strong&gt;&lt;/a&gt; resource that provides a bare Linux OS environment.&#xA;It can be a physical machine, virtual machine, or a systemd-enabled container equipped with &lt;code&gt;systemd&lt;/code&gt;, &lt;code&gt;sudo&lt;/code&gt;, and &lt;code&gt;sshd&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Deploying Pigsty requires at least &lt;strong&gt;1&lt;/strong&gt; node. You can prepare more and deploy everything in one pass via &lt;a href=&#34;https://pgsty.pro/docs/setup/playbook/#playbooks&#34;&gt;&lt;strong&gt;playbooks&lt;/strong&gt;&lt;/a&gt;, or add nodes later.&#xA;The minimum spec requirement is &lt;code&gt;1C1G&lt;/code&gt;, but at least &lt;code&gt;1C2G&lt;/code&gt; is recommended. Higher is better—no upper limit. &lt;strong&gt;Parameters are auto-tuned based on available resources&lt;/strong&gt;.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Planning Architecture and Nodes</title>
        <link>https://pgsty.pro/docs/deploy/planning/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/deploy/planning/</guid>
        <description>&lt;p&gt;Pigsty uses a &lt;a href=&#34;https://pgsty.pro/docs/concept/arch/&#34;&gt;&lt;strong&gt;modular architecture&lt;/strong&gt;&lt;/a&gt;. You can combine modules like building blocks and express your intent through &lt;a href=&#34;https://pgsty.pro/docs/concept/iac/&#34;&gt;&lt;strong&gt;declarative configuration&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;common-patterns&#34;&gt;Common Patterns&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Here are common deployment patterns for reference. Customize based on your requirements:&lt;/p&gt;&#xA;&lt;div class=&#34;td-table-scroll td-table-scroll--full td-table-scroll--static&#34;&gt;&#xA;&lt;table class=&#34;full-width&#34;&gt;&#xA;  &lt;thead&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;Pattern&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/infra/&#34;&gt;&lt;strong&gt;INFRA&lt;/strong&gt;&lt;/a&gt;&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/etcd/&#34;&gt;&lt;strong&gt;ETCD&lt;/strong&gt;&lt;/a&gt;&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/&#34;&gt;&lt;strong&gt;PGSQL&lt;/strong&gt;&lt;/a&gt;&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/minio/&#34;&gt;&lt;strong&gt;MINIO&lt;/strong&gt;&lt;/a&gt;&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34;&gt;Description&lt;/th&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Single-node (&lt;a href=&#34;https://pgsty.pro/docs/conf/meta/&#34;&gt;&lt;strong&gt;&lt;code&gt;meta&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;)&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;/td&gt;&#xA;      &lt;td&gt;&lt;a href=&#34;https://pgsty.pro/docs/setup/install/&#34;&gt;&lt;strong&gt;Single-node deployment&lt;/strong&gt;&lt;/a&gt; default&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Slim deploy (&lt;a href=&#34;https://pgsty.pro/docs/conf/slim/&#34;&gt;&lt;strong&gt;&lt;code&gt;slim&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;)&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Database only, no monitoring infra&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Infra-only (&lt;a href=&#34;https://pgsty.pro/docs/conf/infra/&#34;&gt;&lt;strong&gt;&lt;code&gt;infra&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;)&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Monitoring infrastructure only&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Rich deploy (&lt;a href=&#34;https://pgsty.pro/docs/conf/rich/&#34;&gt;&lt;strong&gt;&lt;code&gt;rich&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;)&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;1&lt;/td&gt;&#xA;      &lt;td&gt;Single-node + object storage + local repo with all extensions&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;div class=&#34;td-table-scroll td-table-scroll--full td-table-scroll--static&#34;&gt;&#xA;&lt;table class=&#34;full-width&#34;&gt;&#xA;  &lt;thead&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;Multi-node Pattern&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/infra/&#34;&gt;&lt;strong&gt;INFRA&lt;/strong&gt;&lt;/a&gt;&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/etcd/&#34;&gt;&lt;strong&gt;ETCD&lt;/strong&gt;&lt;/a&gt;&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/&#34;&gt;&lt;strong&gt;PGSQL&lt;/strong&gt;&lt;/a&gt;&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/minio/&#34;&gt;&lt;strong&gt;MINIO&lt;/strong&gt;&lt;/a&gt;&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34;&gt;Description&lt;/th&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Two-node (&lt;a href=&#34;https://pgsty.pro/docs/conf/dual/&#34;&gt;&lt;strong&gt;&lt;code&gt;dual&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;)&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Semi-HA, tolerates specific node failure&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Three-node (&lt;a href=&#34;https://pgsty.pro/docs/conf/trio/&#34;&gt;&lt;strong&gt;&lt;code&gt;trio&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;)&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;3&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;3&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;3&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Standard HA, tolerates any one failure&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Four-node (&lt;a href=&#34;https://pgsty.pro/docs/conf/full/&#34;&gt;&lt;strong&gt;&lt;code&gt;full&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;)&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;1+3&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;/td&gt;&#xA;      &lt;td&gt;Demo setup, single INFRA/ETCD&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Production (&lt;a href=&#34;https://pgsty.pro/docs/conf/simu/&#34;&gt;&lt;strong&gt;&lt;code&gt;simu&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;)&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;3&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;n&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;n&lt;/td&gt;&#xA;      &lt;td&gt;2 INFRA, 3 ETCD&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;Large-scale (custom)&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;3&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;5&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;n&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;n&lt;/td&gt;&#xA;      &lt;td&gt;3 INFRA, 5 ETCD&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;Your architecture choice depends on reliability requirements and available resources.&#xA;Serious production deployments require at least &lt;strong&gt;3&lt;/strong&gt; nodes for &lt;a href=&#34;https://pgsty.pro/docs/deploy/planning/#three-node-setup&#34;&gt;&lt;strong&gt;HA configuration&lt;/strong&gt;&lt;/a&gt;.&#xA;With only &lt;strong&gt;2&lt;/strong&gt; nodes, use &lt;a href=&#34;https://pgsty.pro/docs/deploy/planning/#two-node-setup&#34;&gt;&lt;strong&gt;Semi-HA configuration&lt;/strong&gt;&lt;/a&gt;.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Setup Admin User and Privileges</title>
        <link>https://pgsty.pro/docs/deploy/admin/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/deploy/admin/</guid>
        <description>&lt;p&gt;Pigsty requires an OS &lt;strong&gt;admin user&lt;/strong&gt; with passwordless &lt;a href=&#34;https://pgsty.pro/docs/deploy/admin/#ssh&#34;&gt;&lt;strong&gt;SSH&lt;/strong&gt;&lt;/a&gt; and &lt;a href=&#34;https://pgsty.pro/docs/deploy/admin/#sudo&#34;&gt;&lt;strong&gt;Sudo&lt;/strong&gt;&lt;/a&gt; privileges on all managed nodes.&lt;/p&gt;&#xA;&lt;p&gt;This user must be able to SSH to all managed nodes and execute sudo commands on them.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;user&#34;&gt;User&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Typically use names like &lt;code&gt;dba&lt;/code&gt; or &lt;code&gt;admin&lt;/code&gt;, avoiding &lt;code&gt;root&lt;/code&gt; and &lt;code&gt;postgres&lt;/code&gt;:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Using &lt;code&gt;root&lt;/code&gt; for deployment is possible but not a production best practice.&lt;/li&gt;&#xA;&lt;li&gt;Using &lt;code&gt;postgres&lt;/code&gt; (&lt;a href=&#34;https://pgsty.pro/docs/pgsql/param/#pg_dbsu&#34;&gt;&lt;strong&gt;&lt;code&gt;pg_dbsu&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt;) as admin user is strictly prohibited.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;passwordless&#34;&gt;Passwordless&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;The passwordless requirement is optional if you can accept entering a password for every &lt;code&gt;ssh&lt;/code&gt; and &lt;code&gt;sudo&lt;/code&gt; command.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Sandbox</title>
        <link>https://pgsty.pro/docs/deploy/sandbox/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/deploy/sandbox/</guid>
        <description>&lt;p&gt;Pigsty provides a standard 4-node &lt;strong&gt;sandbox&lt;/strong&gt; environment for learning, testing, and feature demonstration.&lt;/p&gt;&#xA;&lt;p&gt;The sandbox uses fixed IP addresses and predefined identity identifiers, making it easy to reproduce various demo use cases.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;description&#34;&gt;Description&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;The default sandbox environment consists of 4 nodes, using the &lt;a href=&#34;https://github.com/pgsty/pigsty/blob/main/conf/ha/full.yml&#34;&gt;&lt;code&gt;ha/full.yml&lt;/code&gt;&lt;/a&gt; configuration template.&lt;/p&gt;&#xA;&lt;div class=&#34;td-table-scroll td-table-scroll--static&#34;&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;ID&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;IP Address&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;Node&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;PostgreSQL&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;INFRA&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;ETCD&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: center&#34;&gt;MINIO&lt;/th&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;10.10.10.10&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;meta&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;pg-meta-1&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;infra-1&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;etcd-1&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;minio-1&lt;/code&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;10.10.10.11&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;node-1&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;pg-test-1&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;3&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;10.10.10.12&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;node-2&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;pg-test-2&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;4&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;10.10.10.13&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;node-3&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;pg-test-3&lt;/code&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: center&#34;&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;The sandbox configuration can be summarized as the following config:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Vagrant</title>
        <link>https://pgsty.pro/docs/deploy/vagrant/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/deploy/vagrant/</guid>
        <description>&lt;p&gt;&lt;a href=&#34;https://www.vagrantup.com/&#34;&gt;&lt;strong&gt;Vagrant&lt;/strong&gt;&lt;/a&gt; is a popular local virtualization tool that creates local virtual machines in a declarative manner.&lt;/p&gt;&#xA;&lt;p&gt;Pigsty requires a Linux environment to run. You can use Vagrant to easily create Linux virtual machines locally for testing.&lt;/p&gt;&#xA;&lt;p&gt;The currently recommended and validated baselines are Rocky Linux 9.8 / 10.2, Debian 12.15 / 13.6, and Ubuntu 22.04.5 / 24.04.4 / 26.04.0. Major-version Vagrant aliases map to pinned box versions.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;quick-start&#34;&gt;Quick Start&#xA;&lt;/h2&gt;&#xA;&lt;h3 id=&#34;install-dependencies&#34;&gt;Install Dependencies&#xA;&lt;/h3&gt;&#xA;&lt;p&gt;First, ensure you have &lt;a href=&#34;https://www.vagrantup.com/&#34;&gt;&lt;strong&gt;Vagrant&lt;/strong&gt;&lt;/a&gt; and a virtual machine provider (such as &lt;a href=&#34;https://www.virtualbox.org/&#34;&gt;&lt;strong&gt;VirtualBox&lt;/strong&gt;&lt;/a&gt; or &lt;a href=&#34;https://libvirt.org/&#34;&gt;&lt;strong&gt;libvirt&lt;/strong&gt;&lt;/a&gt;) installed on your system.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Terraform</title>
        <link>https://pgsty.pro/docs/deploy/terraform/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/deploy/terraform/</guid>
        <description>&lt;p&gt;&lt;a href=&#34;https://www.terraform.io/&#34;&gt;&lt;strong&gt;Terraform&lt;/strong&gt;&lt;/a&gt; is a popular &amp;ldquo;Infrastructure as Code&amp;rdquo; tool that you can use to create virtual machines on public clouds with one click.&lt;/p&gt;&#xA;&lt;p&gt;Pigsty currently provides example Terraform templates for Alibaba Cloud, AWS (global and China), Azure, GCP, Tencent Cloud, Hetzner, Vultr, DigitalOcean, and Linode. The &lt;code&gt;aliyun-s3.tf&lt;/code&gt; template also creates a private OSS bucket and dedicated RAM read/write credentials for S3/pgBackRest scenarios.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;quick-start&#34;&gt;Quick Start&#xA;&lt;/h2&gt;&#xA;&lt;h3 id=&#34;install-terraform&#34;&gt;Install Terraform&#xA;&lt;/h3&gt;&#xA;&lt;p&gt;On macOS, you can use &lt;a href=&#34;https://brew.sh/&#34;&gt;&lt;strong&gt;Homebrew&lt;/strong&gt;&lt;/a&gt; to install Terraform:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Security Considerations</title>
        <link>https://pgsty.pro/docs/deploy/security/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/deploy/security/</guid>
        <description>&lt;p&gt;Pigsty defaults target development, testing, and demonstrations on a trusted intranet. A production deployment must configure credentials, network boundaries, authentication, certificates, backup, and audit according to its threat model.&lt;/p&gt;&#xA;&lt;p&gt;See &lt;a href=&#34;https://pgsty.pro/docs/concept/sec/&#34;&gt;&lt;strong&gt;Security and Compliance&lt;/strong&gt;&lt;/a&gt; for mechanisms and boundaries, and the &lt;a href=&#34;https://pgsty.pro/docs/concept/sec/compliance/#launch-hardening-checklist&#34;&gt;&lt;strong&gt;Launch Hardening Checklist&lt;/strong&gt;&lt;/a&gt; for executable checks. &lt;a href=&#34;https://pgsty.pro/docs/conf/safe/&#34;&gt;&lt;strong&gt;&lt;code&gt;ha/safe&lt;/code&gt;&lt;/strong&gt;&lt;/a&gt; is a hardening example, not a substitute for reviewing each control.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;confidentiality&#34;&gt;Confidentiality&#xA;&lt;/h2&gt;&#xA;&lt;h3 id=&#34;critical-files&#34;&gt;Critical Files&#xA;&lt;/h3&gt;&#xA;&lt;p&gt;Protect these assets:&lt;/p&gt;</description>
      </item>
    <item>
        <title>About</title>
        <link>https://pgsty.pro/docs/about/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/about/</guid>
        <description></description>
      </item>
    <item>
        <title>Operations SOP Index</title>
        <link>https://pgsty.pro/docs/sop/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/sop/</guid>
        <description>&lt;h2 id=&#34;getting-started-path&#34;&gt;Getting Started Path&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;td-table-scroll td-table-scroll--static&#34;&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Order&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Question&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Entry&lt;/th&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;1&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;What modules does Pigsty include?&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/concept/arch/&#34;&gt;&lt;strong&gt;Modular Architecture&lt;/strong&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/concept/arch/pgsql/&#34;&gt;&lt;strong&gt;PGSQL Architecture&lt;/strong&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/concept/model/pgsql/&#34;&gt;&lt;strong&gt;PGSQL Cluster Model&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;2&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;How do I get it running first?&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/setup/install/&#34;&gt;&lt;strong&gt;Quick Start&lt;/strong&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/setup/webui/&#34;&gt;&lt;strong&gt;Web UI&lt;/strong&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/setup/pgsql/&#34;&gt;&lt;strong&gt;PostgreSQL Quick Start&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;3&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;How should I read the config file?&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/concept/iac/&#34;&gt;&lt;strong&gt;Declarative Configuration&lt;/strong&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/setup/config/&#34;&gt;&lt;strong&gt;Configuration Guide&lt;/strong&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/concept/iac/parameter/&#34;&gt;&lt;strong&gt;Configuration Parameters&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;4&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;What should I prepare for production?&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/deploy/planning/&#34;&gt;&lt;strong&gt;Planning&lt;/strong&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/deploy/prepare/&#34;&gt;&lt;strong&gt;Preparation&lt;/strong&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/deploy/admin/&#34;&gt;&lt;strong&gt;Administration Model&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;5&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;How do I deploy a multi-node cluster?&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/deploy/install/&#34;&gt;&lt;strong&gt;Production Deployment&lt;/strong&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/setup/playbook/&#34;&gt;&lt;strong&gt;Playbooks&lt;/strong&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/pgsql/playbook/&#34;&gt;&lt;strong&gt;PGSQL Playbooks&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;6&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;How do I operate databases daily?&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/admin/&#34;&gt;&lt;strong&gt;PGSQL Administration&lt;/strong&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/pgsql/admin/cluster/&#34;&gt;&lt;strong&gt;Cluster Management&lt;/strong&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/pgsql/admin/user/&#34;&gt;&lt;strong&gt;User Management&lt;/strong&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/pgsql/admin/db/&#34;&gt;&lt;strong&gt;Database Management&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;7&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;How do I validate reliability?&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/concept/ha/&#34;&gt;&lt;strong&gt;PostgreSQL HA&lt;/strong&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/pgsql/admin/patroni/&#34;&gt;&lt;strong&gt;Patroni Management&lt;/strong&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/pgsql/backup/&#34;&gt;&lt;strong&gt;Backup &amp;amp; Restore&lt;/strong&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/pgsql/backup/restore/&#34;&gt;&lt;strong&gt;Restore Operations&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;task-index&#34;&gt;Task Index&#xA;&lt;/h2&gt;&#xA;&lt;div class=&#34;td-table-scroll td-table-scroll--static&#34;&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Task&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Read First&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Operation Entry&lt;/th&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Prepare servers, disks, networks, VIPs&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/deploy/prepare/&#34;&gt;&lt;strong&gt;Preparation&lt;/strong&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/deploy/planning/&#34;&gt;&lt;strong&gt;Planning&lt;/strong&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/ref/linux/&#34;&gt;&lt;strong&gt;Linux Compatibility&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/deploy/install/&#34;&gt;&lt;strong&gt;Production Deployment&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Prepare SSH, sudo, and admin users&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/deploy/admin/&#34;&gt;&lt;strong&gt;Administration Model&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/deploy/install/&#34;&gt;&lt;strong&gt;Production Deployment&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Build a local or cloud sandbox&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/deploy/sandbox/&#34;&gt;&lt;strong&gt;Sandbox&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/deploy/vagrant/&#34;&gt;&lt;strong&gt;Vagrant&lt;/strong&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/deploy/terraform/&#34;&gt;&lt;strong&gt;Terraform&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Single-node trial&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/setup/install/&#34;&gt;&lt;strong&gt;Quick Start&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;./configure -g&lt;/code&gt;, &lt;code&gt;./deploy.yml&lt;/code&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Multi-node production deployment&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/deploy/&#34;&gt;&lt;strong&gt;Deployment&lt;/strong&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/deploy/install/&#34;&gt;&lt;strong&gt;Production Deployment&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;./deploy.yml&lt;/code&gt;, &lt;code&gt;./pgsql.yml&lt;/code&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Deploy in an offline environment&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/setup/offline/&#34;&gt;&lt;strong&gt;Offline Installation&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/infra/admin/repo/&#34;&gt;&lt;strong&gt;Repository Management&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Choose a config template&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/concept/iac/template/&#34;&gt;&lt;strong&gt;Config Templates&lt;/strong&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/conf/&#34;&gt;&lt;strong&gt;Template List&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;./configure -c &amp;lt;template&amp;gt;&lt;/code&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Plan cluster, database, and user names&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/concept/model/pgsql/&#34;&gt;&lt;strong&gt;PGSQL Cluster Model&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pg_cluster&lt;/code&gt;, &lt;code&gt;pg_databases&lt;/code&gt;, &lt;code&gt;pg_users&lt;/code&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Create a PostgreSQL cluster&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/config/cluster/&#34;&gt;&lt;strong&gt;Cluster Instance Config&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/admin/cluster/&#34;&gt;&lt;strong&gt;Cluster Management&lt;/strong&gt;&lt;/a&gt;, &lt;code&gt;./pgsql.yml -l &amp;lt;cluster&amp;gt;&lt;/code&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Add business users&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/config/user/&#34;&gt;&lt;strong&gt;User/Role Config&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/admin/user/&#34;&gt;&lt;strong&gt;User Management&lt;/strong&gt;&lt;/a&gt;, &lt;code&gt;./pgsql-user.yml -l &amp;lt;cluster&amp;gt;&lt;/code&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Add business databases&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/config/db/&#34;&gt;&lt;strong&gt;Database Config&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/admin/db/&#34;&gt;&lt;strong&gt;Database Management&lt;/strong&gt;&lt;/a&gt;, &lt;code&gt;./pgsql-db.yml -l &amp;lt;cluster&amp;gt;&lt;/code&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Configure access endpoints&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/service/&#34;&gt;&lt;strong&gt;Service/Access&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;pg_services&lt;/code&gt;, &lt;code&gt;pg_default_services&lt;/code&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Modify HBA&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/config/hba/&#34;&gt;&lt;strong&gt;HBA Config&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/admin/hba/&#34;&gt;&lt;strong&gt;HBA Management&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Switchover&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/admin/patroni/&#34;&gt;&lt;strong&gt;Patroni Management&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;patronictl switchover&lt;/code&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;HA drills&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/concept/ha/&#34;&gt;&lt;strong&gt;PostgreSQL HA&lt;/strong&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/concept/ha/rpo/&#34;&gt;&lt;strong&gt;RPO&lt;/strong&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/concept/ha/rto/&#34;&gt;&lt;strong&gt;RTO&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/tutorial/drill/&#34;&gt;&lt;strong&gt;3-of-2 Failure Drill&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Configure VIP&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/concept/ha/svc/&#34;&gt;&lt;strong&gt;HA Service Access&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/tutorial/pg-vip/&#34;&gt;&lt;strong&gt;Configure PG VIP&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Configure backup policy&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/backup/policy/&#34;&gt;&lt;strong&gt;Backup Policy&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/backup/admin/&#34;&gt;&lt;strong&gt;Backup Admin Commands&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Perform PITR&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/concept/pitr/&#34;&gt;&lt;strong&gt;Point-in-Time Recovery&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/backup/restore/&#34;&gt;&lt;strong&gt;Restore Operations&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Recover dropped data, tables, or databases&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/tutorial/drop/&#34;&gt;&lt;strong&gt;Drop Recovery&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/tutorial/pitr/&#34;&gt;&lt;strong&gt;Manual Recovery&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Clone or fork a cluster&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/backup/cluster/&#34;&gt;&lt;strong&gt;Clone Database Cluster&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/tutorial/pg-fork/&#34;&gt;&lt;strong&gt;Fork Instance&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Use Silo for backups&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/minio/&#34;&gt;&lt;strong&gt;MINIO Module&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/minio/config/&#34;&gt;&lt;strong&gt;Silo Config&lt;/strong&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/pgsql/backup/repository/&#34;&gt;&lt;strong&gt;Backup Repository&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;View monitoring and alerts&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/concept/monitor/&#34;&gt;&lt;strong&gt;Monitoring System&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/monitor/&#34;&gt;&lt;strong&gt;PGSQL Monitoring&lt;/strong&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/pgsql/dashboard/&#34;&gt;&lt;strong&gt;PGSQL Dashboards&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Troubleshoot database failures&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/faq/&#34;&gt;&lt;strong&gt;PGSQL FAQ&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/tutorial/failure/&#34;&gt;&lt;strong&gt;Troubleshooting&lt;/strong&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/pgsql/admin/component/&#34;&gt;&lt;strong&gt;Component Management&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Scale PostgreSQL clusters&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/config/cluster/&#34;&gt;&lt;strong&gt;Cluster Instance Config&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/admin/cluster/&#34;&gt;&lt;strong&gt;Cluster Management&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Upgrade PostgreSQL&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/admin/upgrade/&#34;&gt;&lt;strong&gt;Version Upgrade&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/config/kernel/&#34;&gt;&lt;strong&gt;Kernel Versions&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Install or enable extensions&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/ext/&#34;&gt;&lt;strong&gt;Extensions&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/admin/ext/&#34;&gt;&lt;strong&gt;Extension Management&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Migrate existing databases&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/migration/&#34;&gt;&lt;strong&gt;Data Migration&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/playbook/#pgsql-migrationyml&#34;&gt;&lt;strong&gt;Migration Playbook&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Harden security&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/deploy/security/&#34;&gt;&lt;strong&gt;Security Considerations&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/concept/sec/ac/&#34;&gt;&lt;strong&gt;Access Control&lt;/strong&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/concept/sec/ca/&#34;&gt;&lt;strong&gt;CA &amp;amp; Certificates&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Manage domains and web entrypoints&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/infra/admin/domain/&#34;&gt;&lt;strong&gt;Domain Management&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/infra/admin/portal/&#34;&gt;&lt;strong&gt;Nginx Management&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Maintain infrastructure&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/infra/admin/&#34;&gt;&lt;strong&gt;INFRA Administration&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;code&gt;infra.yml&lt;/code&gt;, &lt;code&gt;infra-rm.yml&lt;/code&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Maintain Etcd&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/etcd/config/&#34;&gt;&lt;strong&gt;ETCD Config&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/etcd/admin/&#34;&gt;&lt;strong&gt;ETCD Management&lt;/strong&gt;&lt;/a&gt;, &lt;a href=&#34;https://pgsty.pro/docs/etcd/faq/&#34;&gt;&lt;strong&gt;ETCD FAQ&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Deploy app templates&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pigsty.io/docs/app/&#34;&gt;&lt;strong&gt;Applications&lt;/strong&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/docker/usage/&#34;&gt;&lt;strong&gt;Docker Module&lt;/strong&gt;&lt;/a&gt;, &lt;code&gt;./app.yml&lt;/code&gt;&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;preparation-and-deployment&#34;&gt;Preparation And Deployment&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;For production deployment, start with &lt;a href=&#34;https://pgsty.pro/docs/deploy/planning/&#34;&gt;&lt;strong&gt;Planning&lt;/strong&gt;&lt;/a&gt; and &lt;a href=&#34;https://pgsty.pro/docs/deploy/prepare/&#34;&gt;&lt;strong&gt;Preparation&lt;/strong&gt;&lt;/a&gt;. These two pages cover node count, disks, filesystems, networks, VIPs, domains, and software sources.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Tutorials</title>
        <link>https://pgsty.pro/docs/pgsql/tutorial/</link>
        <pubDate>Sat, 11 Jan 2025 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/tutorial/</guid>
        <description>&lt;p&gt;This section provides step-by-step tutorials for common PostgreSQL tasks and scenarios.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/tutorial/citus/&#34;&gt;&lt;strong&gt;Citus Cluster&lt;/strong&gt;&lt;/a&gt;: Deploy and manage Citus distributed clusters&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/tutorial/drill/&#34;&gt;&lt;strong&gt;Disaster Drill&lt;/strong&gt;&lt;/a&gt;: Emergency recovery when 2 of 3 nodes fail&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/tutorial/pg-vip/&#34;&gt;&lt;strong&gt;PG VIP&lt;/strong&gt;&lt;/a&gt;: Configure L2 VIP for PostgreSQL clusters&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
      </item>
    <item>
        <title>Deploy HA Citus Cluster</title>
        <link>https://pgsty.pro/docs/pgsql/tutorial/citus/</link>
        <pubDate>Sat, 11 Jan 2025 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/tutorial/citus/</guid>
        <description>&lt;p&gt;Citus is a PostgreSQL extension that transforms PostgreSQL into a distributed database, enabling horizontal scaling across multiple nodes to handle large amounts of data and queries.&lt;/p&gt;&#xA;&lt;p&gt;Patroni v3.0+ provides native high-availability support for Citus, simplifying the setup of Citus clusters. Pigsty also provides native support for this.&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://docs.citusdata.com/en/stable/get_started/what_is_citus.html&#34;&gt;What is Citus&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://patroni.readthedocs.io/en/latest/citus.html&#34;&gt;Patroni Citus Support&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;div class=&#34;td-callout td-callout--note&#34; role=&#34;note&#34;&gt;&#xA;  &lt;div class=&#34;td-callout__title&#34;&gt;&lt;i class=&#34;td-callout__icon fa-solid fa-circle-info&#34; aria-hidden=&#34;true&#34;&gt;&lt;/i&gt;&lt;span class=&#34;td-callout__label&#34;&gt;Note&lt;/span&gt;&lt;/div&gt;&#xA;  &lt;div class=&#34;td-callout__body&#34;&gt;&#xA;&lt;p&gt;Citus 13.x supports PostgreSQL 18, 17, 16, 15, and 14. The Pigsty extension repository provides Citus ARM64 packages.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Quick Start</title>
        <link>https://pgsty.pro/docs/pgsql/ext/start/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/ext/start/</guid>
        <description>&lt;p&gt;Using extensions in Pigsty requires four steps: &lt;strong&gt;Download&lt;/strong&gt;, &lt;strong&gt;Install&lt;/strong&gt;, &lt;strong&gt;Config&lt;/strong&gt;, and &lt;strong&gt;Create&lt;/strong&gt;.&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;Download&lt;/strong&gt;: Download extension packages to the local repository (the default local repository only guarantees the base kernel and &lt;code&gt;pgsql-main&lt;/code&gt; package set)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Install&lt;/strong&gt;: Install extension packages on cluster nodes&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Config&lt;/strong&gt;: Some extensions need to be preloaded or configured with parameters&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Create&lt;/strong&gt;: Execute &lt;code&gt;CREATE EXTENSION&lt;/code&gt; in the database to create the extension&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;declarative-configuration&#34;&gt;Declarative Configuration&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Declare extensions in the Pigsty configuration manifest, and they will be automatically installed and created during cluster initialization:&lt;/p&gt;</description>
      </item>
    <item>
        <title>Install</title>
        <link>https://pgsty.pro/docs/pgsql/ext/install/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/pgsql/ext/install/</guid>
        <description>&lt;p&gt;Pigsty uses the operating system&amp;rsquo;s package manager (yum/apt) to install extension packages.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;h2 id=&#34;related-parameters&#34;&gt;Related Parameters&#xA;&lt;/h2&gt;&#xA;&lt;p&gt;Two parameters are used to specify extensions to install:&lt;/p&gt;&#xA;&lt;div class=&#34;td-table-scroll td-table-scroll--static&#34;&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Parameter&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Purpose&lt;/th&gt;&#xA;      &lt;th scope=&#34;col&#34; style=&#34;text-align: left&#34;&gt;Default Behavior&lt;/th&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/param/#pg_packages&#34;&gt;&lt;code&gt;pg_packages&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Global common packages&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Ensure present (no upgrade)&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;    &lt;tr&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;&lt;a href=&#34;https://pgsty.pro/docs/pgsql/param/#pg_extensions&#34;&gt;&lt;code&gt;pg_extensions&lt;/code&gt;&lt;/a&gt;&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Cluster-specific extensions&lt;/td&gt;&#xA;      &lt;td style=&#34;text-align: left&#34;&gt;Install latest version&lt;/td&gt;&#xA;    &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&#xA;&lt;p&gt;&lt;code&gt;pg_packages&lt;/code&gt; is typically used to specify base components needed by all clusters (PostgreSQL kernel, Patroni, pgBouncer, etc.) and essential extensions.&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;pg_extensions&lt;/code&gt; is used to specify extensions needed by specific clusters.&lt;/p&gt;</description>
      </item>
    <item>
        <title>Quick Start</title>
        <link>https://pgsty.pro/docs/kafka/start/</link>
        <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
        
        <guid>https://pgsty.pro/docs/kafka/start/</guid>
        <description>&lt;p&gt;This tutorial starts from a minimal single-node cluster, walking through topic creation and message read/write; it then deploys a separate, secured three-node cluster with application users, ACLs, quotas, and production topics; finally, it demonstrates core parameter changes, client access, monitoring verification, and pre-launch checks.&lt;/p&gt;&#xA;&lt;div class=&#34;td-callout td-callout--note&#34; role=&#34;note&#34;&gt;&#xA;  &lt;div class=&#34;td-callout__title&#34;&gt;&lt;i class=&#34;td-callout__icon fa-solid fa-circle-info&#34; aria-hidden=&#34;true&#34;&gt;&lt;/i&gt;&lt;span class=&#34;td-callout__label&#34;&gt;Tutorial Scope&lt;/span&gt;&lt;/div&gt;&#xA;  &lt;div class=&#34;td-callout__body&#34;&gt;&#xA;&lt;p&gt;Here, &amp;ldquo;from scratch&amp;rdquo; means starting before any Kafka is deployed. You will need a working Pigsty admin node with the base &lt;a href=&#34;https://pgsty.pro/docs/infra/&#34;&gt;&lt;code&gt;INFRA&lt;/code&gt;&lt;/a&gt; services already deployed; if you don&amp;rsquo;t have one yet, complete the &lt;a href=&#34;https://pgsty.pro/docs/setup/install/&#34;&gt;Pigsty quick install&lt;/a&gt; first. The target nodes require SSH/sudo access and must be manageable by the &lt;a href=&#34;https://pgsty.pro/docs/node/&#34;&gt;&lt;code&gt;NODE&lt;/code&gt;&lt;/a&gt; module.&lt;/p&gt;</description>
      </item>
    
  </channel>
</rss>
