Como instalar o PostgreSQL 16 em uma VPS Ubuntu
O PostgreSQL é o banco de dados relacional open-source mais avançado do mundo. Para servidores de banco de dados de produção, a instalação nativa (sem Docker) oferece melhor performance e controle. Este guia usa o repositório oficial PGDG (PostgreSQL Global Development Group) para instalar o PostgreSQL 16 no Ubuntu 24.04.
Pré-requisitos
- VPS mínima: 2 vCPU · 2 GB RAM · 20 GB SSD (Runstack Basic ou superior)
- Sistema: Ubuntu 24.04 LTS
- Acesso root ou usuário com sudo
- Porta 5432 liberada no firewall apenas para IPs específicos (não expor publicamente)
Instalação passo a passo
- 1
Atualizar o sistema
Sincronize os repositórios e aplique atualizações.
bashapt update && apt upgrade -y apt install -y curl ca-certificates - 2
Adicionar o repositório oficial PGDG
O repositório oficial do PostgreSQL garante acesso às versões mais recentes e patches de segurança antes do Ubuntu.
bash# Instalar o helper de configuração do repositório apt install -y postgresql-common # Executar o script de configuração do repositório PGDG /usr/share/postgresql-common/pgdg/apt.postgresql.org.shDicaO script detecta automaticamente a versão do Ubuntu (noble para 24.04) e configura o repositório correto. Pressione Enter para confirmar quando solicitado. - 3
Instalar o PostgreSQL 16
Instale o PostgreSQL 16 com os pacotes principais.
bashapt update apt install -y postgresql-16 - 4
Verificar a instalação e o serviço
Confirme que o PostgreSQL está rodando como serviço systemd.
bashsystemctl status postgresql systemctl is-enabled postgresql # Verificar a versão instalada psql --version # Verificar que o cluster está ativo pg_lsclustersDicaO PostgreSQL é instalado e iniciado automaticamente como serviço systemd. O cluster padrão é `main` rodando na porta 5432. - 5
Configurar o usuário administrador
Defina uma senha segura para o superusuário `postgres`.
bash# Acessar o PostgreSQL como usuário postgres do sistema sudo -u postgres psql -- No prompt do psql: ALTER USER postgres PASSWORD 'troque_por_senha_muito_forte'; \qAtençãoDefina uma senha forte para o usuário postgres antes de configurar qualquer acesso de rede. - 6
Criar banco de dados e usuário de aplicação
Boa prática: nunca conecte aplicações com o usuário `postgres`. Crie um usuário e banco dedicados.
bashsudo -u postgres psql << 'SQLEOF' -- Criar usuário de aplicação CREATE USER meu_app WITH PASSWORD 'senha_app_forte'; -- Criar banco de dados CREATE DATABASE meu_banco OWNER meu_app; -- Verificar \du \l \q SQLEOF - 7
Configurar acesso remoto (opcional)
Por padrão, o PostgreSQL só aceita conexões locais. Para permitir conexões de outros servidores (ex.: sua aplicação em outro VPS), edite as configurações de rede.
bash# Editar postgresql.conf para escutar em todas as interfaces nano /etc/postgresql/16/main/postgresql.conf # Localizar e alterar a linha: # listen_addresses = 'localhost' # Para: # listen_addresses = '*' # Editar pg_hba.conf para permitir conexões do IP da aplicação nano /etc/postgresql/16/main/pg_hba.conf # Adicionar no final (substitua pelo IP real da aplicação): # host meu_banco meu_app 10.0.0.5/32 scram-sha-256 # Reiniciar para aplicar systemctl restart postgresqlAtençãoNUNCA configure listen_addresses = '*' sem também configurar regras específicas no pg_hba.conf e no firewall. Expor o PostgreSQL publicamente sem restrições é uma vulnerabilidade crítica. - 8
Configurar firewall UFW
Libere a porta 5432 apenas para os IPs que precisam de acesso ao banco.
bashufw allow 22/tcp comment 'SSH' # Liberar PostgreSQL APENAS para IP específico da aplicação ufw allow from 10.0.0.5 to any port 5432 comment 'PostgreSQL - app server' # NÃO faça: ufw allow 5432/tcp (expõe para todos os IPs) ufw --force enable ufw status verboseAtençãoSubstitua 10.0.0.5 pelo IP real do servidor de aplicação. Nunca abra a porta 5432 para 0.0.0.0. - 9
Testar a conexão
Confirme que o banco está acessível com as credenciais criadas.
bash# Teste de conexão local psql -U meu_app -d meu_banco -c "SELECT version();" # Teste de conexão remota (do servidor de aplicação) # psql -h IP-DO-POSTGRES -U meu_app -d meu_banco -c "SELECT version();"
$ runstack deploy --plan starter
Não quer configurar manualmente?
Não quer configurar manualmente? Implante o PostgreSQL em menos de 3 minutos com a Runstack. Infraestrutura da OPEN DATACENTER, com servidores no Brasil.
Troubleshooting
Perguntas frequentes
[VERIFICAR antes de publicar]
- 1. Confirme a versão estável atual do PostgreSQL em postgresql.org — em 2026 pode ser a versão 17.
- 2. Verifique o caminho do arquivo de configuração (/etc/postgresql/16/main/) — muda conforme a versão instalada.