Instalar Odoo na VPS Linux: Guia Completo Passo a Passo

12 min de leitura Tutoriais de Hospedagem
Instalar Odoo na VPS Linux: Guia Completo Passo a Passo

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.

Esse tutorial foi útil?

Comentários (0)

Seja o primeiro a comentar.

Deixe seu comentário

Seu comentário será analisado antes de ser publicado.

0/2000