# Configuración de PostgreSQL 11 en Ubuntu 20.04
## Actualizar sistema y dependencias
```
sudo apt update
sudo apt list --upgradable
sudo apt upgrade
sudo reboot
```
## Configurar el Firewall
```
sudo ufw app list
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status
```
## Importar la clave de firma del repositorio:
```
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
```
## Agregar el repositorio APT de PostgreSQL 11
```
RELEASE=$(lsb_release -cs)
```
```
echo "deb http://apt.postgresql.org/pub/repos/apt/ ${RELEASE}"-pgdg main | sudo tee /etc/apt/sources.list.d/pgdg.list
```
## Verificar el contenido del archivo del repositorio
```
cat /etc/apt/sources.list.d/pgdg.list
```
> deb http://apt.postgresql.org/pub/repos/apt/ focal-pgdg main
## Instalación de PostgreSQL 11 en Ubuntu 20.04
```
sudo apt update
```
```
sudo apt -y install postgresql-11
```
## Verificar el estado de PostgreSQL
```
systemctl status postgresql
```
> 
## Chequear el acceso al servidor de base de datos PostgreSQL
```
sudo ss -tunelp | grep 5432
```
## Crear usuario y base de datos para PostgreSQL
Ingresamos a PostgreSQL
```
sudo -u postgres psql
```
Creamos el usuario con permisos de administrador
```
CREATE ROLE name_user WITH LOGIN SUPERUSER CREATEDB CREATEROLE PASSWORD ‘P4sw0rd’ ;
```
Creamos la base de datos para el usuario
```
CREATE DATABASE my_db WITH OWNER name_user;
```
Salimos de PostgreSQL
```
exit
```
## Configurar el archivo pg_hba.conf
Editamos el archivo pg_hba.conf
```
sudo nano /etc/postgresql/11/main/pg_hba.conf
```
> Modificar peer por md5

> Modificar 127.0.0.1/32 por all

Reiniciamos el servicio PostgreSQL
```
sudo systemctl restart postgresql
```
## Configurar el acceso remoto a PostgreSQL
Editamos el archivo postgresql.conf
```
sudo nano /etc/postgresql/11/main/postgresql.conf
```
> Modificar 'localhost' por '*' y guardamos los cambios

Reiniciamos el servicio PostgreSQL
```
sudo systemctl restart postgresql
```
## Habilitar los puertos en el Firewall
```
sudo ufw allow postgresql
```
Verificamos los puertos
```
sudo ufw status
```
Chequeamos el acceso remoto al servidor de PostgreSQL
```
sudo ss -tunelp | grep 5432
```

### Conexión remota habilitada