A gestão empresarial moderna exige agilidade, controle e flexibilidade. Para muitas empresas, especialmente pequenas e médias, a contratação de soluções SaaS caras pode representar um custo proibitivo a longo prazo. A alternativa robusta é o CRM self-hosted ou ERP open source, onde você mantém total soberania sobre os dados e a infraestrutura. Neste guia técnico, vamos detalhar como instalar Odoo na VPS Linux, transformando um servidor limpo em uma poderosa ferramenta de automação comercial e gestão.
O Odoo é uma suíte completa de aplicativos de negócios que inclui CRM, vendas, projeto, contabilidade e estoque. Rodar essa aplicação em seu próprio servidor próprio garante conformidade com LGPD, personalização profunda e integração direta com outros sistemas locais. Abaixo, apresentamos um roteiro validado para ambientes Debian/Ubuntu, o padrão da indústria para estabilidade.
1. Preparação do Ambiente: Requisitos de Hardware e Sistema
Antes de iniciar o processo de instalação, é crucial garantir que a sua infraestrutura atenda aos requisitos mínimos de performance. Odoo é uma aplicação Python pesada em operações de banco de dados; servidores fracos resultarão em latência alta e má experiência do usuário.
Requisitos Mínimos Recomendados:
- CPU: 2 vCores ou mais.
- RAM: No mínimo 4GB (8GB é o ideal para produção com múltiplos usuários).
- Disco: SSD NVMe recomendado para I/O rápido do PostgreSQL.
- Sistema Operacional: Ubuntu 22.04 LTS ou Debian 11/12.
Assumindo que você já possui acesso SSH ao seu servidor, o primeiro passo é atualizar o sistema operacional para garantir que todos os pacotes base estejam seguros e atualizados.
sudo apt update
sudo apt upgrade -y
Este comando sincroniza as listas de pacotes e instala as atualizações pendentes. Aguarde a conclusão antes de prosseguir para a criação do usuário dedicado, uma prática essencial de segurança que evita a execução de serviços como root.
2. Criação do Usuário Systemd para Odoo
Por questões de segurança e boas práticas de administração de sistemas, nunca execute o Odoo com privilégios de superusuário (root). Vamos criar um usuário dedicado chamado odoo16 (ou a versão desejada) que pertencerá ao grupo odoo.
sudo groupadd -r odoo
sudo useradd -m -g odoo -c "Odoo ERP User" -s /bin/bash odoo16
O sinalizador -m cria o diretório home do usuário, enquanto -s /bin/bash garante que o usuário tenha um shell interativo se necessário para depuração. Agora, precisamos instalar as dependências do sistema. O Odoo depende fortemente de bibliotecas Python e ferramentas de compilação.
3. Instalação e Configuração do Banco de Dados PostgreSQL
O Odoo utiliza o PostgreSQL como seu banco de dados principal. A instalação é direta, mas requer uma configuração específica para que o usuário odoo16 criado anteriormente possa se autenticar.
sudo apt install postgresql -y
Após a instalação, precisamos criar um superusuário no PostgreSQL com o mesmo nome do usuário Linux. Isso simplifica a autenticação usando ident peer (identidade local).
sudo su - postgres
createuser --superuser --createdb odoo16
exit
O comando su - postgres troca o usuário para o administrador nativo do banco de dados. O createuser define as permissões necessárias. Note que não definimos senha aqui, pois configuraremos a autenticação no arquivo pg_hba.conf posteriormente, preferindo a segurança da conexão local Unix socket.
4. Instalação das Dependências Python e Bibliotecas do Sistema
O Odoo é escrito em Python 3 e requer várias bibliotecas de sistema para manipulação de imagens (wkhtmltopdf), documentos XML e conexões web. Instale o conjunto completo de ferramentas:
sudo apt install -y git python3-pip build-essential wget python3-dev python3-venv python3-wheel libxslt1-dev libzip2-dev libldap2-dev libsasl2-dev python3-lxml
O pacote libxslt1-dev é crítico para a geração de PDFs e relatórios. O python3-lxml é essencial para o processamento XML do Odoo. Sem essas bibliotecas, a instalação falhará ou os módulos de relatório não funcionarão corretamente.
5. Download e Instalação do Código Fonte do Odoo
Existem duas formas principais de obter o Odoo: via PyPI (pip) ou clonando o repositório Git. Para ambientes de produção com controle de versão, recomendamos a instalação via pip em um ambiente virtual isolado.
sudo -u odoo16 -H git clone https://www.github.com/odoo/odoo --branch 16.0 --depth 1 /opt/odoo/odoo16
Este comando clona apenas a versão estável mais recente (16.0) diretamente para o diretório /opt/odoo/odoo16. O uso do usuário odoo16 garante que os arquivos tenham as permissões corretas.
Agora, crie um ambiente virtual Python para isolar as dependências do Odoo das outras aplicações do servidor:
sudo -u odoo16 -H python3 -m venv /opt/odoo/odoo16-venv
Ative o ambiente virtual e instale as dependências Python listadas no arquivo requirements.txt do projeto.
source /opt/odoo/odoo16-venv/bin/activate
cd /opt/odoo/odoo16
pip3 install wheel
pip3 install -r requirements.txt
A instalação via pip pode demorar alguns minutos dependendo da largura de banda. Se houver erros de compilação, verifique se as bibliotecas do sistema instaladas no passo 4 estão presentes.
6. Configuração do Arquivo de Configuração (odoo.conf)
O coração da instalação é o arquivo odoo.conf. Crie um diretório de configuração e o arquivo correspondente:
sudo mkdir /etc/odoo
sudo touch /etc/odoo/odoo.conf
sudo chown odoo16:odoo /etc/odoo/odoo.conf
Edite o arquivo com seu editor de texto preferido (nano ou vim) e insira as seguintes configurações:
[options]
; This is the password that allows database operations:
admin_passwd = my_admin_secret_password
db_host = False
db_port = False
db_user = odoo16
xmlrpc_port = 8069
logfile = /var/log/odoo16/odoo.log
logrotate = True
workers = 2
max_cron_threads = 1
limit_memory_hard = 2684354560
limit_memory_soft = 2147483648
Explicação das Diretivas Críticas:
- admin_passwd: Senha mestra para gerenciamento de banco de dados. Nunca use "admin". Altere para uma string complexa.
- db_user: Deve corresponder ao usuário criado no PostgreSQL.
- workers: Número de processos worker. A fórmula recomendada é (CPU * 2) + 1. Para um servidor com 2 CPUs, 5 workers é o máximo, mas recomendamos 2 ou 3 para iniciantes.
- limit_memory_hard/soft: Limites de memória em bytes. 2GB hard limit evita que o Odoo consuma toda a RAM e cause o OOM Killer do kernel.
Crie também o diretório de logs e dê permissão ao usuário odoo:
sudo mkdir /var/log/odoo16
sudo touch /var/log/odoo16/odoo.log
sudo chown odoo16:odoo /var/log/odoo16/odoo.log
7. Instalação do wkhtmltopdf (Crucial para Relatórios)
O Odoo usa o wkhtmltopdf para converter relatórios HTML em PDF. A versão padrão nos repositórios Ubuntu geralmente é antiga e não suporta cabeçalhos/rodapés corretamente. Recomendamos a instalação da versão 0.12.6, que é a mais compatível com o Odoo.
wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-3/wkhtmltox_0.12.6.1-3.jammy_amd64.deb
sudo apt install -y ./wkhtmltox_0.12.6.1-3.jammy_amd64.deb
Se estiver em Debian, ajuste o nome do pacote .deb correspondente à sua versão (bookworm/buster). Verifique a instalação executando wkhtmltopdf --version.
8. Configuração do Sistema de Serviço Systemd
Para garantir que o Odoo inicie automaticamente em caso de reinicialção e seja gerenciado facilmente, criaremos um serviço systemd.
sudo nano /etc/systemd/system/odoo16.service
Insira a seguinte configuração:
[Unit]
Description=Odoo16
Requires=postgresql.service
After=network.target postgresql.service
[Service]
Type=simple
User=odoo16
Group=odoo
ExecStart=/opt/odoo/odoo16-venv/bin/python3 /opt/odoo/odoo16/odoo-bin -c /etc/odoo/odoo.conf
WorkingDirectory=/opt/odoo/odoo16
[Install]
WantedBy=multi-user.target
Salve o arquivo, recarregue o daemon do systemd e inicie o serviço:
sudo systemctl daemon-reload
sudo systemctl enable --now odoo16
sudo systemctl status odoo16
O comando status mostrará se o serviço está ativo (running). Se houver erros, verifique o arquivo /var/log/odoo16/odoo.log para diagnósticos.
9. Configuração de Firewall e Acesso Web
O Odoo escuta na porta 8069 por padrão. Se você estiver usando UFW (Uncomplicated Firewall) no Ubuntu, libere a porta:
sudo ufw allow 8069/tcp
Para acesso externo seguro, é altamente recomendável colocar o Odoo atrás de um proxy reverso como Nginx ou Apache, que lida com SSL/TLS e redirecionamento HTTP para HTTPS. Embora fora do escopo deste guia básico, a configuração mínima de Nginx envolve redirecionar proxy_pass http://127.0.0.1:8069;.
10. Finalização da Instalação via Web
Agora que a infraestrutura está pronta, abra seu navegador e acesse http://SEU_IP_DO_SERVIDOR:8069. Você verá a tela de criação do banco de dados Odoo.
Passos na Interface Web:
- Dados do Banco: Insira o nome do banco de dados (ex:
odoo_db), o usuário (odoo16) e uma senha forte para o admin do banco. - Senha Mestra: A tela pedirá a senha mestra definida no arquivo
odoo.conf. - Informações da Empresa: Preencha nome, idioma (Português Brasil), e país.
- Módulos Iniciais: Selecione os aplicativos que deseja instalar (CRM, Vendas, etc.). Para um CRM self-hosted limpo, selecione apenas "CRM".
Clique em "Criar banco de dados". O processo levará alguns minutos. Ao finalizar, você será redirecionado para o painel de login. Use as credenciais definidas durante a criação do banco.
Conclusão e Próximos Passos
Você acabou de concluir a instalação de um ERP open source completo em sua própria infraestrutura. Este setup oferece controle total sobre seus dados e permite expansões futuras sem custos adicionais de licença.
Dicas de Manutenção:
- Faça backups regulares do banco PostgreSQL e do diretório
/etc/odoo. - Monitore o uso de memória, especialmente se adicionar muitos módulos personalizados.
- Mantenha o sistema operacional atualizado regularmente com
apt upgrade.
Com este vps linux tutorial, você está pronto para implementar automação comercial eficiente e escalável. Para personalizações avançadas, consulte a documentação oficial do desenvolvedor Odoo.