This page provides a practical baseline setup for PostgreSQL on Linux hosts with current best practices for DevOps environments.
For modern Debian/Ubuntu systems, install the latest PostgreSQL version:
# Update package index
sudo apt update
# Install PostgreSQL (defaults to latest available version)
sudo apt install -y postgresql postgresql-contrib
# Or install a specific version (e.g., PostgreSQL 18)
sudo apt install -y postgresql-18 postgresql-client-18 postgresql-contrib-18
For RHEL-family distributions:
# Install PostgreSQL server
sudo dnf install -y postgresql-server postgresql-contrib
# Initialize the database (required on RHEL-family)
sudo postgresql-setup --initdb
# For specific version installation (e.g., PostgreSQL 18)
sudo dnf install -y postgresql18-server postgresql18-contrib
sudo /usr/pgsql-18/bin/postgresql-18-setup initdb
# Enable auto-start on boot
sudo systemctl enable postgresql
# Start the service
sudo systemctl start postgresql
# Check service status
sudo systemctl status postgresql
# Check PostgreSQL version
psql --version
# Connect to PostgreSQL as default user
sudo -u postgres psql
# From within psql, check server version
SELECT version();
\q
After installation, perform these essential tasks:
# Switch to postgres user
sudo -u postgres psql
# Create a new database user (replace 'myuser' with your desired username)
CREATE USER myuser WITH PASSWORD 'securepassword';
# Create a new database owned by the user
CREATE DATABASE mydatabase OWNER myuser;
# Grant privileges
GRANT ALL PRIVILEGES ON DATABASE mydatabase TO myuser;
# Exit psql
\q
/etc/postgresql/18/main/ (version-dependent)/var/lib/postgresql/18/main//var/log/postgresql//var/lib/pgsql/data/ (or /var/lib/pgsql/18/data/)/var/lib/pgsql/data//var/lib/pgsql/data/log/ (location depends on logging configuration)shared_buffers (up to 8GB)pg_hba.conf with appropriate authentication methods# Check available PostgreSQL packages
apt-cache search postgresql # On Debian/Ubuntu
dnf search postgresql # On RHEL-family
# Check installed PostgreSQL packages
dpkg -l | grep postgresql # On Debian/Ubuntu
rpm -qa | grep postgresql # On RHEL-family
postgresql-setup --initdb.