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
Bashsudo apt update && sudo apt upgrade -y sudo apt install -y postgresql postgresql-contrib
2. Ativar e verificar o serviço
Bashsudo 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:
Bashsudo -u postgres psql
Em psql (ajuste nomes e palavra-passe):
SQLCREATE 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:
Bashpsql -h 127.0.0.1 -U myapp -d myapp_db
String de ligação típica
TEXTpostgresql://myapp:[email protected]:5432/myapp_db
Segurança essencial
- Palavra-passe forte para o role da aplicação.
- Evite expor PostgreSQL à Internet salvo necessidade estrita. Se precisar: firewall restritiva,
listen_addresses,pg_hba.conf, preferencialmente VPN ou túnel. - Combine com UFW e Fail2ban para serviços públicos.
Acesso remoto (evitar salvo necessidade)
Edite postgresql.conf (caminho varia, frequentemente /etc/postgresql/*/main/):
Configlisten_addresses = '*'
Em pg_hba.conf, adicione uma linha restritiva (exemplo: IP de confiança):
TEXThost myapp_db myapp 203.0.113.50/32 scram-sha-256
Depois:
Bashsudo systemctl restart postgresql
Backups
Cópia lógica:
Bashsudo -u postgres pg_dump myapp_db > backup_myapp.sql
Restaurar:
Bashsudo -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.1para TCP, ou ajustepg_hba.conf. - Connection refused: verifique o estado do serviço e a porta (
5432por predefinição).