Odoo na VPS: como instalar o ERP com Docker
Veja como instalar o Odoo numa VPS com Docker, do banco PostgreSQL ao proxy com HTTPS, com senha mestra, workers e backup do banco e dos arquivos.
Por Redação Eleven Host · @robson.direitodigital · 1 de novembro de 2026 · 8 min de leitura

Capa da Redação Eleven Host para o guia: Odoo na VPS: como instalar o ERP com Docker Arte: Eleven Host
Dá para instalar o Odoo na VPS com Docker: o Odoo é um sistema de gestão (ERP) de código aberto, e a instalação usa um contêiner de PostgreSQL e um do Odoo. Depois, você coloca um proxy com HTTPS na frente e define uma senha mestra forte.
O que é o Odoo e a diferença entre Community e Enterprise
O Odoo é um sistema de gestão empresarial. A edição Community é licenciada sob a LGPL versão 3, e a Enterprise usa a Odoo Enterprise Edition License v1.0, segundo a página de licenças da documentação oficial. Para decidir entre elas, veja o site do Odoo.
Há um caminho documentado de migração da Community para a Enterprise. Todo método começa com um backup do banco de dados, depois instala o módulo web_enterprise e, por fim, vincula o banco à assinatura Enterprise com o código recebido por e-mail.
Este guia usa a imagem oficial do Odoo no Docker Hub e a documentação de implantação da versão 18.0.
O que você precisa antes de começar
Você vai precisar de uma VPS com o Docker instalado e de um domínio apontado para o IP do servidor, para ativar o HTTPS no fim. Se ainda não tem clareza sobre o que é uma VPS, leia o guia de iniciantes sobre servidor VPS. Acompanhe o consumo do servidor depois da instalação e ajuste o plano de VPS se for preciso.
A imagem oficial exige um servidor PostgreSQL em execução, e é por isso que o primeiro contêiner é o do banco de dados.
Fixe a versão do Odoo na instalação. A tag latest hoje aponta para a versão 20, e trocar de versão principal exige scripts de migração: não adianta só baixar uma imagem nova.
Subir o PostgreSQL e o Odoo
O Docker Hub traz estes dois comandos. O primeiro sobe o PostgreSQL:
docker run -d -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo -e POSTGRES_DB=postgres --name db postgres:15
O segundo sobe o Odoo na porta 8069:
docker run -p 8069:8069 --name odoo --link db:db -t odoo
Esses comandos são o ponto de partida do Docker Hub e precisam de ajustes para uso real:
- Troque a senha do banco. O exemplo usa
odoocomo usuário e como senha. A documentação do Odoo diz para não usar senhas padrão do tipo admin/admin, nem em bancos de teste. Se mudar a senha do PostgreSQL, informe a nova ao Odoo pela variávelPASSWORD. As variáveisHOST(padrãodb),PORT(padrão5432),USER(padrãoodoo) ePASSWORD(padrãoodoo) controlam a conexão. - Fixe a versão. No lugar de
odoono fim do comando, use uma tag, comoodoo:18.0. As tags18.0,19.0e20.0existem no Docker Hub. - Use volumes. Sem um volume nomeado, o filestore (os anexos) se perde quando o contêiner é removido. Monte um volume em
/var/lib/odoo, que precisa coincidir com odata_dir. O banco também precisa de volume, e o comando do Docker Hub não traz um. - Entenda o --link. É um recurso legado do Docker. O exemplo de compose.yaml do Docker Hub, mostrado abaixo, é o caminho com o Docker Compose.
O Docker Hub também mostra um exemplo de compose.yaml com dois serviços, web (Odoo, porta 8069:8069) e db (PostgreSQL 15), que sobe com este comando:
docker compose up -d
O exemplo do Docker Hub fixa o odoo:17.0. Troque pela versão que você escolheu.
Primeiro acesso e criação do banco
Com os contêineres no ar, abra o Odoo no navegador pela porta 8069, usando o IP da VPS. Na primeira tela, o Odoo pede a criação do banco de dados; siga as instruções que aparecem. A senha mestra, tratada mais abaixo, protege as telas de gerenciamento de bancos.
Atenção a um ponto: nessa etapa o Odoo ainda está sem HTTPS, e a documentação alerta que ele transmite as informações de autenticação em texto claro. Use esse acesso só para a configuração inicial e passe logo para a próxima etapa, antes de cadastrar usuários e dados reais. Para saber o que está aberto no servidor, veja o guia Portas abertas no Linux: como ver com ss e lsof na VPS.
Onde rodar o Odoo
Nos comandos acima, o Odoo e o PostgreSQL ficam no mesmo servidor, cada um no seu contêiner.
VPS a partir de R$ 17,00/mês no Plano Bronze; confira na loja o que cada plano inclui. Ver os planos de VPS
Proxy reverso e HTTPS
A documentação é direta: uma implantação segura do Odoo deve usar HTTPS, e o proxy que termina o SSL também deve redirecionar as conexões sem criptografia para a porta segura. Quando o Odoo roda atrás de um proxy reverso, ative no arquivo de configuração:
proxy_mode = True
A própria documentação diz que essa opção só deve ficar ligada quando o Odoo está atrás de um proxy reverso. O exemplo de Nginx da documentação usa listen 443 ssl; e um server_name do seu domínio. Ele também define um upstream chamado odoochat, apontando para 127.0.0.1:8072, para o caminho /websocket.
No exemplo da documentação, a porta 8072 é a do processo de LiveChat. Em modo multiprocesso, a documentação diz que um worker dedicado de LiveChat é iniciado automaticamente e escuta na porta definida em --gevent-port.
Se preferir um servidor web com HTTPS automático, o guia Caddy na VPS: servidor web com HTTPS automático mostra outro caminho para o proxy. Com o proxy funcionando, o Odoo não precisa mais ficar exposto diretamente na porta 8069 para a internet.
Senha mestra, lista de bancos e dbfilter
Três configurações protegem o gerenciador de bancos do Odoo:
- admin_passwd. As telas de gerenciamento de bancos são protegidas por essa opção. A documentação diz que ela deve ser trocada do valor padrão
admine definida como um valor gerado aleatoriamente, para que terceiros não usem a interface. - list_db. Com
list_db = False, o Odoo desativa o gerenciador de bancos. A documentação recomenda fortemente desativá-lo em sistema exposto à internet. Com a senha mestra fraca, o gerenciador permite apagar ou baixar o banco pela web. - dbfilter. Define quais bancos cada acesso enxerga. Os exemplos da documentação são
dbfilter = ^mycompany.*$edbfilter = ^%d$. Em servidor com vários bancos, principalmente com o módulo de site, a documentação diz que o dbfilter precisa ser definido.
O arquivo de configuração padrão da imagem é /etc/odoo/odoo.conf, e você pode montar um diretório em /etc/odoo para usar o seu.
Workers e desempenho
O modo multiprocesso do Odoo é opcional: ele é ativado definindo a opção --workers com um número inteiro diferente de zero. A documentação traz uma regra prática: (número de CPUs x 2) + 1, e cerca de 1 worker para 6 usuários simultâneos. Ela também avisa que os workers de cron consomem CPU. Use esses números como ponto de partida e ajuste olhando o consumo real do servidor.
Sobre o banco, a documentação lembra que o PostgreSQL só aceita, por padrão, conexões por socket UNIX e por loopback. O comando do banco acima não publica a porta 5432 para fora; mantenha assim.
Backup do banco e dos arquivos
O Odoo guarda duas coisas que precisam de backup: o banco de dados PostgreSQL e o filestore, que fica em /var/lib/odoo. Copiar só um dos dois deixa a restauração incompleta, porque os anexos ficam fora do banco.
Por isso os volumes do passo anterior importam. Com o volume do filestore e o volume do PostgreSQL definidos, você sabe o que copiar. Agende a rotina e teste a restauração num servidor separado, antes de depender dela. Para compactar os arquivos antes de guardá-los, o guia Comando tar: como compactar e extrair arquivos na VPS ajuda.
Checklist de produção
- Versão do Odoo fixada em uma tag, sem
latest. - Senha do PostgreSQL trocada e informada ao Odoo.
- Volumes para o banco e para
/var/lib/odoo. - Proxy reverso com HTTPS e redirecionamento do tráfego sem criptografia.
proxy_mode = Trueativado, só por trás do proxy.admin_passwdtrocada por um valor aleatório.list_db = Falseedbfilterdefinidos.- Porta 8069 e porta do banco fechadas para a internet.
- Backup do banco e do filestore agendado, com restauração testada.
Quer o seu ERP rodando num servidor só seu? VPS a partir de R$ 17,00/mês no Plano Bronze; confira na loja o que cada plano inclui. Conhecer a VPS
Perguntas frequentes
É possível instalar o Odoo numa VPS?
Sim. Com o Docker, você sobe um contêiner de PostgreSQL e um do Odoo e depois configura o proxy com HTTPS.
Qual porta o Odoo usa?
A porta 8069 é a do acesso web nos comandos do Docker Hub. O LiveChat usa a 8072 no exemplo de Nginx da documentação.
Posso usar a tag latest do Odoo?
Evite em produção. Hoje a tag latest aponta para a versão 20, e trocar de versão principal exige scripts de migração.
Preciso de HTTPS para usar o Odoo?
A documentação diz que uma implantação segura deve usar HTTPS, porque o Odoo transmite as informações de autenticação em texto claro.
Como proteger o gerenciador de bancos?
Troque o admin_passwd por um valor aleatório e use list_db = False para desativar o gerenciador.