A instalação de um sistema ERP (Enterprise Resource Planning) robusto e flexível em uma VPS Linux é uma das decisões mais estratégicas para empresas que buscam independência tecnológica e controle total sobre seus dados. O Odoo, reconhecido mundialmente como a solução ERP open source mais popular, oferece um ecossistema completo que abrange desde gestão financeira e estoque até CRM, e-commerce e RH. Neste tutorial técnico, explicamos detalhadamente como instalar odoo vps linux, garantindo uma configuração estável, segura e otimizada para produção.
Diferente de soluções SaaS (Software as a Service) onde os dados ficam retidos em servidores de terceiros, o modelo CRM self-hosted permite que você hospede sua própria instância. Isso elimina mensalidades por usuário, permite personalizações profundas no código e garante a conformidade com regulamentações locais de proteção de dados. Embora existam variações na terminologia global, como 部署odoo (instalação do Odoo), o processo técnico fundamental permanece consistente em ambientes Debian-based, sendo o Ubuntu a distribuição preferida pela comunidade devido à sua estabilidade e suporte.
Pré-requisitos e Preparação do Ambiente
Antes de iniciar a instalação, é crucial ter uma infraestrutura mínima preparada. Para rodar um Odoo produtivo com bom desempenho, recomendamos uma VPS com pelo menos 2 vCPUs e 4GB de RAM. Sistemas operacionais baseados em Debian, como Ubuntu Server (versões LTS 20.04 ou 22.04), são os mais documentados e suportados.
O primeiro passo é acessar seu servidor via SSH com um usuário com privilégios sudo. Em seguida, atualize o sistema operacional para garantir que todas as bibliotecas de sistema estejam na versão mais recente, o que previne conflitos de dependências durante a instalação do banco de dados e das ferramentas Python.
sudo apt update
sudo apt upgrade -y
Após a atualização, instale as ferramentas essenciais de gerenciamento de pacotes e versionamento. O Git será necessário para baixar o código-fonte ou extensões futuras, enquanto o curl será útil para verificar conectividade e baixar scripts.
sudo apt install git curl wget -y
Criando um Usuário Dedicado para o Odoo
Por questões de segurança e boas práticas de administração de sistemas, nunca execute aplicações complexas como o Odoo com o usuário root. O ideal é criar um usuário específico do sistema chamado odoo16 (ou a versão correspondente que você está instalando) para rodar o serviço. Isso isola os processos da aplicação e limita os danos em caso de vulnerabilidade.
Crie o usuário com o comando abaixo. A opção --system indica que é um usuário de sistema, não humano, e a opção -d /opt/odoo define seu diretório home padrão. Se você planeja usar PostgreSQL no mesmo servidor, adicione este usuário ao grupo do banco de dados para permitir autenticação peer.
sudo groupadd --system odoo
sudo useradd --system -g odoo -d /opt/odoo -s /bin/bash odoo
Caso esteja instalando o PostgreSQL na mesma máquina (recomendado para ambientes de pequeno a médio porte), crie também o usuário do banco de dados com o mesmo nome. Isso facilita a configuração de autenticação local sem precisar de senhas complexas no arquivo pg_hba.conf.
sudo -u postgres createuser --system -l -s odoo
Instalando e Configurando o PostgreSQL
O Odoo utiliza o PostgreSQL como seu banco de dados relacional. É fundamental instalar a versão estável mais recente disponível no repositório do seu Ubuntu, pois versões antigas podem não suportar tipos de dados ou funcionalidades modernas do framework Odoo.
sudo apt install postgresql -y
Após a instalação, o serviço deve estar rodando automaticamente. Verifique o status com:
sudo systemctl status postgresql
Não é necessário configurar senhas para o usuário odoo no PostgreSQL se você seguiu o passo de criar o usuário do sistema com o mesmo nome, pois a autenticação "peer" permitirá que o processo do Odoo, rodando como esse usuário, acesse o banco diretamente. No entanto, é recomendável definir uma senha forte para o superusuário do PostgreSQL (postgres) para administração futura.
sudo -u postgres psql
ALTER USER postgres WITH PASSWORD 'sua_senha_forte_aqui';
\q
Instalando Dependências Python e Bibliotecas de Sistema
O núcleo do Odoo é escrito em Python, mas ele depende de diversas bibliotecas externas para manipulação de imagens, geração de PDFs, comunicação com protocolos web e criptografia. Instalar essas dependências no nível do sistema operacional (via apt) é muito mais estável do que tentar gerenciá-las apenas via pip.
Execute o comando abaixo para instalar todas as bibliotecas necessárias. Note a inclusão do python3-dev, essencial para compilar módulos C, e do wkhtmltopdf, crucial para a geração correta de relatórios em PDF dentro do Odoo.
sudo apt install python3-pip python3-dev libxml2-dev libxslt1-dev libldap2-dev libsasl2-dev libssl1.1 libffi-dev libjpeg-dev zlib1g-dev libpq-dev libfreetype6-dev liblcms2-dev libwebp-dev tcl8.6-dev tk8.6-dev libharfbuzz-dev libfribidi-dev libxcb1-dev libxml2-dev xfonts-75dpi xfonts-100dpi -y
Atenção especial ao wkhtmltopdf. A versão padrão nos repositórios Ubuntu pode ser antiga e gerar relatórios com quebras de página incorretas. Para produção, recomenda-se baixar o pacote compilado especificamente da fonte oficial do projeto wkhtmltopdf ou usar uma versão patcheada se disponível no seu repositório.
Instalando Dependências Python via Pip
Agora que o ambiente do sistema está pronto, precisamos instalar as bibliotecas Python específicas que o Odoo exige. Em vez de instalar globalmente, é uma boa prática criar um ambiente virtual ou instalar diretamente no site-packages do sistema se estiver seguindo este guia passo a passo simplificado. Para este tutorial, instalaremos as dependências globais para garantir compatibilidade imediata.
sudo pip3 install Babel decorator docutils ebaysdk gdata greenlet html2text Jinja2 lxml lxml-html-clean mailchecker Mako MarkupSafe mock ofx psycopg2-binary pydot pygobject pyldap python-dateutil python-dotenv python-openid pytz pyyaml qrcode reportlab requests six suds-jurko vatnumber vobject Werkzeug XlsxWriter xlwt xlrd zeep
Se você preferir um ambiente isolado, pode criar um virtualenv com python3 -m venv /opt/odoo/venv, ativar com source /opt/odoo/venv/bin/activate e instalar as bibliotecas dentro dele. No entanto, a instalação global via apt para as dependências do sistema facilita a manutenção inicial.
Baixando o Código Fonte do Odoo
Existem duas formas principais de obter o Odoo: através do repositório oficial GitHub (recomendado para versões específicas e desenvolvimento) ou através dos pacotes binários oficiais. Para ter controle total e a capacidade de atualizar facilmente, baixaremos o código fonte.
sudo su - odoo
git clone https://www.github.com/odoo/odoo --depth 1 --branch 16.0 --single-branch /opt/odoo/odoo16
exit
O comando acima clona o repositório para a pasta /opt/odoo/odoo16. A flag --depth 1 economiza espaço e tempo ao baixar apenas a versão mais recente, ignorando o histórico completo do Git. Certifique-se de alterar 16.0 para a versão desejada (ex: 17.0, 15.0).
Agora, instale os pacotes Python adicionais necessários especificamente para esta versão do código clone:
sudo -u odoo pip3 install -r /opt/odoo/odoo16/requirements.txt
Criando o Arquivo de Configuração
O Odoo não vem com um arquivo de configuração pronto para produção. É necessário criar um arquivo odoo.conf que define como o serviço se comportará. Crie este arquivo no diretório home do usuário odoo.
sudo nano /etc/odoo.conf
Cole a seguinte configuração base. Ajuste os parâmetros conforme sua necessidade:
[options]
; This is the password that allows database operations:
admin_passwd = admin
db_host = False
db_port = False
db_user = odoo
db_password = False
; Absolute path where the server will store configuration and data backups (if no config file is specified)
addons_path = /opt/odoo/odoo16/addons,/opt/odoo/odoo16/custom/addons
; Database settings
db_maxconn = 64
; HTTP Port
xmlrpc_port = 8069
; Log level
log_level = info
; Worker count (adjust based on CPU cores)
workers = 2
Explicação dos parâmetros críticos:
- admin_passwd: Senha mestra para gerenciar bancos de dados. Mude "admin" imediatamente após a instalação.
- db_user: Deve corresponder ao usuário do PostgreSQL criado anteriormente.
- workers: Define quantos processos filhos o Odoo cria. A fórmula recomendada é (2 * CPU_count) + 1, mas para VPS pequenas, 2 a 4 workers são suficientes. O worker 0 é usado para longpolling (chat).
Criando Diretório de Addons Personalizados
O Odoo permite adicionar módulos personalizados em um diretório separado do código core. Isso facilita atualizações futuras sem sobrescrever suas modificações.
sudo mkdir /opt/odoo/odoo16/custom/addons
sudo chown odoo:odoo /opt/odoo/odoo16/custom/addons
Criando o Serviço Systemd
Para que o Odoo inicie automaticamente com o servidor e seja gerenciado facilmente, criaremos um arquivo de serviço systemd.
sudo nano /etc/systemd/system/odoo16.service
Cole a seguinte definição de serviço:
[Unit]
Description=Odoo16
Requires=postgresql.service
After=network.target postgresql.service
[Service]
Type=simple
User=odoo
Group=odoo
ExecStart=/usr/bin/python3 /opt/odoo/odoo16/odoo-bin -c /etc/odoo.conf
Restart=on-failure
SuccessExitStatus=0
[Install]
WantedBy=multi-user.target
Este serviço garante que o PostgreSQL esteja iniciado antes do Odoo e reinicia a aplicação automaticamente em caso de falha.
Iniciando e Verificando o Serviço
Agora, recarregue o daemon systemd para reconhecer o novo serviço e inicie o Odoo.
sudo systemctl daemon-reload
sudo systemctl start odoo16
sudo systemctl enable odoo16
Verifique se o serviço está rodando sem erros:
sudo systemctl status odoo16
Se tudo estiver correto, a saída deve indicar "active (running)". Você pode acessar o Odoo navegando para http://seu-ip-da-vps:8069. A primeira vez que você acessar, será solicitado que crie um banco de dados. Use a senha definida em admin_passwd.
Habilitando HTTPS com Nginx (Produção Obrigatória)
Acesso via HTTP é inseguro e não recomendado para sistemas ERP que lidam com dados sensíveis. Para transformar seu sistema erp gratuito em uma solução profissional, instale o Nginx como proxy reverso e configure um certificado SSL.
sudo apt install nginx certbot python3-certbot-nginx -y
Configure um bloco de servidor no Nginx. Edite ou crie o arquivo em /etc/nginx/sites-available/odoo:
server {
listen 80;
server_name seu-dominio.com www.seu-dominio.com;
access_log /var/log/nginx/odoo.access.log;
error_log /var/log/nginx/odoo.error.log;
location / {
proxy_pass http://127.0.0.1:8069;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
location ~* /web/static/ {
expires 30d;
access_log off;
}
}
Ative a configuração e teste o Nginx:
sudo ln -s /etc/nginx/sites-available/odoo /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
Finalmente, obtenha o certificado SSL com Certbot:
sudo certbot --nginx -d seu-dominio.com -d www.seu-dominio.com
O Certbot reconfigurará automaticamente o Nginx para redirecionar HTTP para HTTPS e carregar os certificados.
Considerações Finais sobre Manutenção
Com a instalação concluída, seu ambiente ERP open source está pronto. Lembre-se de configurar backups regulares do banco de dados PostgreSQL e do diretório de configurações. O comando pg_dump é sua melhor aliado:
sudo -u postgres pg_dump -Fc odoo_db_name > backup_odoo.sql
Além disso, mantenha seu servidor atualizado com sudo apt update && sudo apt upgrade e monitore os logs em /var/log/syslog ou diretamente no diretório de log do Odoo se configurado. A segurança é contínua: altere senhas padrão, restrinja o acesso SSH e mantenha o firewall ativo.
Seguindo estes passos, você não apenas cumpriu o objetivo de instalar odoo vps linux, mas também estabeleceu uma base sólida para escalar sua operação com confiança, aproveitando todo o poder do CRM self-hosted e da flexibilidade que apenas o código aberto pode proporcionar.