Español

Instalar PostgreSQL en un VPS Linux

PostgreSQL es una base de datos relacional fiable para aplicaciones web, analítica y cargas mixtas. Esta guía cubre la instalación en Ubuntu/Debian, la creación de una base de datos y la seguridad básica.

Requisitos previos

  • Ubuntu 20.04+ o Debian 11+ con sudo
  • Al menos 1 GB de RAM (2 GB+ para cargas más pesadas)

Instalación

1. Actualizar e instalar el servidor

Bash
sudo apt update && sudo apt upgrade -y sudo apt install -y postgresql postgresql-contrib

2. Activar y comprobar el servicio

Bash
sudo systemctl status postgresql sudo systemctl enable postgresql

Por defecto PostgreSQL escucha en localhost (127.0.0.1), adecuado para apps en el mismo VPS.

Crear usuario y base de datos de aplicación

Cambie al usuario del sistema postgres y abra psql:

Bash
sudo -u postgres psql

En psql (ajuste nombres y contraseña):

SQL
CREATE USER myapp WITH PASSWORD 'strong_password_here'; CREATE DATABASE myapp_db OWNER myapp; GRANT ALL PRIVILEGES ON DATABASE myapp_db TO myapp; \q

Pruebe la conexión:

Bash
psql -h 127.0.0.1 -U myapp -d myapp_db

Cadena de conexión típica

TEXT
postgresql://myapp:[email protected]:5432/myapp_db

Seguridad esencial

  1. Contraseña robusta para el rol de aplicación.
  2. Evite exponer PostgreSQL a Internet salvo que sea estrictamente necesario. Si debe hacerlo: cortafuegos estricto, listen_addresses, pg_hba.conf, preferiblemente VPN o túnel.
  3. Combine con UFW y Fail2ban para servicios públicos.

Acceso remoto (evitar salvo necesidad)

Edite postgresql.conf (ruta variable, a menudo /etc/postgresql/*/main/):

Config
listen_addresses = '*'

En pg_hba.conf, añada una línea restrictiva (ejemplo: IP de confianza):

TEXT
host myapp_db myapp 203.0.113.50/32 scram-sha-256

Luego:

Bash
sudo systemctl restart postgresql

Copias de seguridad

Volcado lógico:

Bash
sudo -u postgres pg_dump myapp_db > backup_myapp.sql

Restauración:

Bash
sudo -u postgres psql myapp_db < backup_myapp.sql

Programe copias de seguridad (cron) hacia almacenamiento externo.

Solución de problemas

  • Peer authentication failed: use -h 127.0.0.1 para TCP, o ajuste pg_hba.conf.
  • Connection refused: compruebe el estado del servicio y el puerto (5432 por defecto).

¿Necesita ayuda?

¿Preguntas sobre esta guía? Nuestro equipo y la comunidad están aquí para ayudarle.

Mantente al día con las últimas ofertas, descuentos y promociones especiales.

Ver promociones