PIGSTY

pgAdmin

Launch the official GUI Admin Tool for PostgreSQL

pgAdmin is the most popular and feature rich Open Source administration and development platform for PostgreSQL, the most advanced Open Source database in the world.


Quick Start

Pigsty has built-in (but optional) support for pgAdmin, it launches pgadmin with Docker Compose:

./docker.yml
./app.yml -e app=pgadmin

The default port for pgadmin is 8885, and you can access it through IP:Port : http://10.10.10.10:8885.

The default credentials are defined in .env, username: admin@pigsty.cc, password: pigsty.


Customize

Customize the pgadmin configuration in /opt/pgadmin/.env and manage it with docker compose.

You can also customize the apps parameter and override default .env configuration with:

all:
  children:

    infra:
      hosts:
        10.10.10.10: { infra_seq: 1 }
      vars:
        docker_enabled: true
        app: pgadmin  # specify app name (pgadmin) to be installed (in the apps)
        apps:         # define all applications
          supabase:   # the definition of pgadmin app
            conf:     # override /opt/supabase/.env

              PGADMIN_DEFAULT_EMAIL: your@email.com
              PGADMIN_DEFAULT_PASSWORD: yourPassword

              PGADMIN_LISTEN_ADDRESS: 0.0.0.0
              PGADMIN_PORT: 8885
              PGADMIN_SERVER_JSON_FILE: /pgadmin4/servers.json
              PGADMIN_REPLACE_SERVERS_ON_STARTUP: true

To launch the application, run:

./app.yml -l infra

Domain & Cert

To access pgadmin through nginx (rather than access port 8885 directly), configure the infra portal with:

pigsty.yml
all:
  vars:
    infra_portal:
      home         : { domain: h.pigsty }
      grafana      : { domain: g.pigsty ,endpoint: "${admin_ip}:3000" , websocket: true }
      prometheus   : { domain: p.pigsty ,endpoint: "${admin_ip}:9090" }
      alertmanager : { domain: a.pigsty ,endpoint: "${admin_ip}:9093" }
      blackbox     : { endpoint: "${admin_ip}:9115" }
      loki         : { endpoint: "${admin_ip}:3100" }

      # add pgadmin upstream server definition here
      pgadmin      : { domain: adm.pigsty  ,endpoint: "127.0.0.1:8885" }

Then run make nginx to update nginx config, and configure local static DNS record <your_ip_address> adm.pigsty in /etc/hosts or local / public DNS server.

Pigsty will issue self-signed SSL certs for the domains listed in infra_portal automatically. If you want to use real domain names, define cerbot entry and run make cert, check SSL Certs for details.

all:
  vars:        # make sure your domain name (adm.pigsty.cc) is resolved to your public IP
    certbot_sign: true   # sign real HTTPS certs with certbot (Internet access required!)
    infra_portal:
      pgadmin : { domain: adm.pigsty.cc  ,endpoint: "127.0.0.1:8885", certbot: adm.pigsty.cc }