Português

Instalar PostgreSQL num VPS Linux

PostgreSQL é uma base de dados relacional fiável para aplicações web, analytics e cargas mistas. Este guia cobre a instalação no Ubuntu/Debian, criação de base de dados e segurança básica.

Pré-requisitos

  • Ubuntu 20.04+ ou Debian 11+ com sudo
  • Pelo menos 1 GB RAM (2 GB+ para cargas mais pesadas)

Instalação

1. Atualizar e instalar o servidor

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

2. Ativar e verificar o serviço

Bash
sudo systemctl status postgresql sudo systemctl enable postgresql

Por predefinição, o PostgreSQL escuta em localhost (127.0.0.1), adequado para apps no mesmo VPS.

Criar utilizador e base de dados da aplicação

Mude para o utilizador de sistema postgres e abra psql:

Bash
sudo -u postgres psql

Em psql (ajuste nomes e palavra-passe):

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

Teste a ligação:

Bash
psql -h 127.0.0.1 -U myapp -d myapp_db

String de ligação típica

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

Segurança essencial

  1. Palavra-passe forte para o role da aplicação.
  2. Evite expor PostgreSQL à Internet salvo necessidade estrita. Se precisar: firewall restritiva, listen_addresses, pg_hba.conf, preferencialmente VPN ou túnel.
  3. Combine com UFW e Fail2ban para serviços públicos.

Acesso remoto (evitar salvo necessidade)

Edite postgresql.conf (caminho varia, frequentemente /etc/postgresql/*/main/):

Config
listen_addresses = '*'

Em pg_hba.conf, adicione uma linha restritiva (exemplo: IP de confiança):

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

Depois:

Bash
sudo systemctl restart postgresql

Backups

Cópia lógica:

Bash
sudo -u postgres pg_dump myapp_db > backup_myapp.sql

Restaurar:

Bash
sudo -u postgres psql myapp_db < backup_myapp.sql

Agende backups (cron) para armazenamento externo.

Resolução de problemas

  • Peer authentication failed: use -h 127.0.0.1 para TCP, ou ajuste pg_hba.conf.
  • Connection refused: verifique o estado do serviço e a porta (5432 por predefinição).

Precisa de ajuda?

Dúvidas sobre este guia? A nossa equipa e a comunidade estão disponíveis para ajudar.

Fique a par das últimas ofertas, descontos e promoções especiais.

Ver promoções