Skip to content
PostgreSQL with pgAdmin 4 product logo
  • AWSAvailable on Amazon Web Services
  • Azure· nextMicrosoft Azure is next on the roadmap
  • GCP· nextGoogle Cloud is next on the roadmap
Available

PostgreSQL with pgAdmin 4

PostgreSQL 18.6 from the official PGDG repository with pgAdmin 4 and Webmin - a database server ready for remote clients the moment it boots. Remote connections use scram-sha-256, tuning is safe for small instances, and no database password is stored in the image: local administration uses socket peer authentication, and pgAdmin's secrets are regenerated per instance.

Version
v18.6
Operating system
Ubuntu 24.04 LTS
Architecture
x86_64
Support
Community

What's installed

Every package and version on the image. Nothing else is installed.

  • PostgreSQL 18.6
  • pgAdmin 4 9.17
  • Apache 2.4.58 (pgAdmin host)
  • Webmin 2.660

Licensing Open source (PostgreSQL License), no licence key required

Deploy anywhere

PostgreSQL with pgAdmin 4 on AWS.

Microsoft Azure and Google Cloud are next on the roadmap. One clean-room build, one first-boot credential model, one patch cadence — identical on every cloud you run. Every identifier below is the real one; copy it and launch.

  1. AWS

    Amazon Web Services

    AMI · v18.6

    Available

    AWS AMI ID

    ami-0973c17201afda9f7
    Released
    September 12, 2026
    Root volume
    gp3 · 20 GiB

    Instance types

    • t3a.medium
    • t3.medium
    • t3a.large
    • m6a.large

    Regions

    • us-east-1

Getting started

From launch to signed in, step by step.

  1. Launch in us-east-1 with TCP 22, 80, 5432 and 8000 open; wait about two minutes.

  2. Open http://<instance-public-ip>/ for a landing page with versions and connection examples. pgAdmin 4 is at /pgadmin4 with username admin@example.com.

  3. Connect to PostgreSQL on port 5432 as role postgres: psql -h <instance-public-ip> -p 5432 -U postgres -d postgres. Webmin is on port 8000 as root or admin. The password for all three is your EC2 Instance ID (for example i-0123456789abcdef0).

  4. SSH as ubuntu with your key pair. Change passwords with sudo bash /home/ubuntu/iscripts/pass_postgres.sh (any role), pass_pgadmin.sh or pass_webmin.sh.

  5. Tuning lives in /etc/postgresql/18/main/conf.d/99-provencloud.conf. Open 5432 only to the addresses that need it, never to 0.0.0.0/0.

Security posture

What this image does and does not ship with, one fact per line.

  • Clean-room build on Canonical's official Ubuntu 24.04 LTS image: every component comes from its own official repository or release, nothing is copied from any third-party image, and the finished image was scanned for third-party vendor strings before capture.

  • No usable credential ships in the image; passwords are set on your instance at first boot from EC2 instance metadata (IMDSv2) and the scripts that set them delete themselves afterwards.

  • SSH is key-only, root login over SSH is refused, and build-time SSH keys, shell history and logs were removed before imaging.

  • PostgreSQL is the product here, so it listens on all interfaces with scram-sha-256 for remote clients; the security group is the gate, and the landing page deliberately never prints the Instance ID.

  • Local administration uses peer authentication over the Unix socket, which means no PostgreSQL password is stored anywhere in the image. pgAdmin keeps its users and its three Flask secrets in one SQLite file, so first boot rebuilds that database from scratch - the only path that regenerates SECRET_KEY, SECURITY_PASSWORD_SALT and CSRF_SESSION_KEY per instance.

  • The password-change script passes values to psql on stdin with psql's own quoting, never interpolated into SQL by hand.

  • The bundled password tools enforce at least 10 characters with upper- and lower-case letters, a number and a symbol, and verify the new credential with a real sign-in before reporting success.

  • The image is HTTP-only by design so it works at a bare IP with no certificate warnings: terminate TLS at a load balancer or add a certificate before exposing it publicly, and restrict port 22 and any admin ports to trusted IP ranges in your security group.