Guia de tecnologias

Instalar e automatizar OpenERP (Servidor e Web)

6 min read Administração Atualizado 02 Oct 2025
Instalar e automatizar OpenERP (Servidor e Web)
Instalar e automatizar OpenERP (Servidor e Web)

Intenção principal

Instalar, testar e automatizar o OpenERP Server e o Web Client em um servidor Linux (Ubuntu), garantindo que os serviços iniciem/terminem corretamente e gravem logs acessíveis.

Passo 7 — Instalar o script de inicialização do servidor

O último passo para o servidor é instalar um script que inicia e encerra o serviço automaticamente e executa a aplicação com o usuário correto. Abaixo está o script usado neste guia. Cole-o em /etc/init.d/ e chame-o de openerp-server.

#!/bin/sh

### BEGIN INIT INFO
# Provides:             openerp-server
# Required-Start:       $remote_fs $syslog
# Required-Stop:        $remote_fs $syslog
# Should-Start:         $network
# Should-Stop:          $network
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    Enterprise Resource Management software
# Description:          Open ERP is a complete ERP and CRM software.
### END INIT INFO

PATH=/bin:/sbin:/usr/bin
DAEMON=/opt/openerp/server/bin/openerp-server.py
NAME=openerp-server
DESC=openerp-server

# Specify the user name (Default: openerp).
USER=openerp

# Specify an alternate config file (Default: /etc/openerp-server.conf).
CONFIGFILE="/etc/openerp-server.conf"

# pidfile
PIDFILE=/var/run/$NAME.pid

# Additional options that are passed to the Daemon.
DAEMON_OPTS="-c $CONFIGFILE"

[ -x $DAEMON ] || exit 0
[ -f $CONFIGFILE ] || exit 0

checkpid() {
    [ -f $PIDFILE ] || return 1
    pid=`cat $PIDFILE`
    [ -d /proc/$pid ] && return 0
    return 1
}

case "${1}" in
        start)
                echo -n "Starting ${DESC}: "

                start-stop-daemon --start --quiet --pidfile ${PIDFILE} \
                        --chuid ${USER} --background --make-pidfile \
                        --exec ${DAEMON} -- ${DAEMON_OPTS}

                echo "${NAME}."
                ;;

        stop)
                echo -n "Stopping ${DESC}: "

                start-stop-daemon --stop --quiet --pidfile ${PIDFILE} \
                        --oknodo

                echo "${NAME}."
                ;;

        restart|force-reload)
                echo -n "Restarting ${DESC}: "

                start-stop-daemon --stop --quiet --pidfile ${PIDFILE} \
                        --oknodo

                sleep 1

                start-stop-daemon --start --quiet --pidfile ${PIDFILE} \
                        --chuid ${USER} --background --make-pidfile \
                        --exec ${DAEMON} -- ${DAEMON_OPTS}

                echo "${NAME}."
                ;;

        *)
                N=/etc/init.d/${NAME}
                echo "Usage: ${NAME} {start|stop|restart|force-reload}" >&2
                exit 1
                ;;
esac

exit 0

Depois de salvar o arquivo em /etc/init.d/openerp-server, torne-o executável e defina o proprietário como root:

sudo chmod 755 /etc/init.d/openerp-server  
sudo chown root: /etc/init.d/openerp-server

Em seguida, crie o diretório de logs configurado no arquivo de configuração do servidor e dê permissão de escrita ao usuário openerp:

sudo mkdir /var/log/openerp  
sudo chown openerp:root /var/log/openerp

Importante: manter logs acessíveis pelo usuário da aplicação é essencial para diagnosticar falhas e evitar erros de permissão em tempo de execução.

Passo 8 — Testar o servidor

Inicie o servidor com:

sudo /etc/init.d/openerp-server start

Verifique o arquivo de log para confirmar que o servidor iniciou corretamente:

less /var/log/openerp/openerp-server.log

Se o servidor não iniciar, volte e verifique permissões, caminho do daemon e arquivo de configuração. Não prossiga até resolver o problema.

Se estiver usando o cliente GTK, conecte-o ao servidor. Você deverá ver uma tela de primeiro acesso indicando que o servidor aceita conexões e ainda não há banco de dados configurado:

Tela de primeiro acesso do OpenERP mostrando a opção de bancos de dados

Recomendo alterar a senha de super admin imediatamente. Por padrão é “admin”. O super admin pode criar/backup/restaurar/remover bancos de dados. No cliente GTK, vá em Arquivo → Databases → Administrator Password para alterar.

Observação: a senha de super admin é gravada em texto simples em /etc/openerp-server.conf, portanto as permissões restritas (root e openerp) são necessárias.

Nota técnica: alterar a senha via cliente pode reescrever o arquivo de configuração, removendo comentários e reordenando entradas. Isso parece ser comportamento da aplicação.

Verifique também o stop do serviço:

sudo /etc/init.d/openerp-server stop

Cheque o log e a lista de processos para confirmar que parou.

Passo 9 — Automatizar inicialização e encerramento do servidor

Se tudo estiver OK, registre o script para inicializar automaticamente com o sistema:

sudo update-rc.d openerp-server defaults

Você pode reiniciar o servidor para testar. Após o boot, confirme com:

ps aux | grep openerp

Um processo em execução deve aparecer algo parecido com:

openerp 708 3.8 5.8 181716 29668 ? Sl 21:05 0:00 python /opt/openerp/server/bin/openerp-server.py -c /etc/openerp-server.conf

Verifique também os logs.

Passo 10 — Configurar e automatizar o Web Client

O web client é outra aplicação que serve OpenERP via navegador. A instalação segue os mesmos passos (configuração, script de inicialização, teste e automatização). A configuração padrão do web client pode ser encontrada em /opt/openerp/web/doc/openerp-web.cfg e um exemplo é mostrado abaixo.

[global]
server.environment = "development"

# Some server parameters that you may want to tweak
server.socket_host = "0.0.0.0"
server.socket_port = 8080

# Sets the number of threads the server uses
server.thread_pool = 10

tools.sessions.on = True
tools.sessions.persistent = False

# Simple code profiling
server.profile_on = False
server.profile_dir = "profile"

# if this is part of a larger site, you can set the path
# to the TurboGears instance here
#server.webpath = ""

# Set to True if you are deploying your App behind a proxy
# e.g. Apache using mod_proxy
#tools.proxy.on = True

# If your proxy does not add the X-Forwarded-Host header, set
# the following to the *public* host url.
#tools.proxy.base = 'http://mydomain.com'

# logging
#log.access_file = "/var/log/openerp-web/access.log"
log.error_file = "/var/log/openerp/openerp-web-error.log"
log.access_level = "INFO"
log.error_level = "INFO"

# Set to false to disable CSRF checks
tools.csrf.on = True

# replace builtin traceback tools by cgitb
tools.log_tracebacks.on: False
tools.cgitb.on: True
# a default install can probably avoid logging those via cgitb as they're
# available in the server log
tools.cgitb.ignore=(
    openobject.errors.Concurrency,
    openobject.errors.TinyException)

# OpenERP Server
openerp.server.host = 'localhost'
openerp.server.port = '8070'
openerp.server.protocol = 'socket'
openerp.server.timeout = 450

# Web client settings
[openerp-web]
# filter dblists based on url pattern?
# NONE: No Filter
# EXACT: Exact Hostname
# UNDERSCORE: Hostname_
# BOTH: Exact Hostname or Hostname_

dblist.filter = 'NONE'

# whether to show Databases button on Login screen or not
dbbutton.visible = True

# will be applied on company logo
company.url = ''

Copie esse arquivo para /etc/openerp-web.conf e ajuste proprietário e permissões como no servidor:

sudo chown openerp:root /etc/openerp-web.conf  
sudo chmod 640 /etc/openerp-web.conf

Exemplo do script de boot do web client (coloque em /etc/init.d/openerp-web, proprietário root, executável):

#!/bin/sh

### BEGIN INIT INFO
# Provides:             openerp-web
# Required-Start:       $remote_fs $syslog
# Required-Stop:        $remote_fs $syslog
# Should-Start:         $network
# Should-Stop:          $network
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    OpenERP Web - the Web Client of the OpenERP
# Description:          Open ERP is a complete ERP and CRM software.
### END INIT INFO

PATH="/sbin:/bin:/usr/sbin:/usr/bin"
DAEMON="/opt/openerp/web/openerp-web.py"
NAME="openerp-web"
DESC="openerp-web"

# Specify the user name (Default: openerp).
USER=openerp

# Specify an alternate config file (Default: /etc/openerp-web.conf).
CONFIGFILE="/etc/openerp-web.conf"

# pidfile
PIDFILE=/var/run/$NAME.pid

# Additional options that are passed to the Daemon.
DAEMON_OPTS="-c $CONFIGFILE"

[ -x $DAEMON ] || exit 0
[ -f $CONFIGFILE ] || exit 0

checkpid() {
    [ -f $PIDFILE ] || return 1
    pid=`cat $PIDFILE`
    [ -d /proc/$pid ] && return 0
    return 1
}

case "${1}" in
        start)
                echo -n "Starting ${DESC}: "

                start-stop-daemon --start --quiet --pidfile ${PIDFILE} \
                        --chuid ${USER} --background --make-pidfile \
                        --exec ${DAEMON} -- ${DAEMON_OPTS}

                echo "${NAME}."
                ;;

        stop)
                echo -n "Stopping ${DESC}: "

                start-stop-daemon --stop --quiet --pidfile ${PIDFILE} \
                        --oknodo

                echo "${NAME}."
                ;;

        restart|force-reload)
                echo -n "Restarting ${DESC}: "

                start-stop-daemon --stop --quiet --pidfile ${PIDFILE} \
                        --oknodo

                sleep 1

                start-stop-daemon --start --quiet --pidfile ${PIDFILE} \
                        --chuid ${USER} --background --make-pidfile \
                        --exec ${DAEMON} -- ${DAEMON_OPTS}

                echo "${NAME}."
                ;;

        *)
                N=/etc/init.d/${NAME}
                echo "Usage: ${NAME} {start|stop|restart|force-reload}" >&2
                exit 1
                ;;
esac

exit 0

Defina permissões e teste:

sudo chmod 755 /etc/init.d/openerp-web  
sudo chown root: /etc/init.d/openerp-web
sudo /etc/init.d/openerp-web start

O web client, por padrão, serve na porta 8080. Acesse via navegador:

http://meu-ip-ou-dominio:8080

Teste o stop e, se OK, registre para inicialização automática:

sudo /etc/init.d/openerp-web stop
sudo update-rc.d openerp-web defaults

Agora, após reiniciar o servidor, OpenERP (servidor e web client) devem subir automaticamente.


Verificação rápida e checklist operacional

Use este checklist antes de considerar a instalação concluída:

  • Arquivos de script em /etc/init.d/ com dono root e modo 755.
  • Arquivos de configuração em /etc/ com dono openerp:root e modo 640.
  • Diretório /var/log/openerp existe e é gravável por openerp.
  • PID files são criados em /var/run/ quando os serviços iniciam.
  • Serviços iniciam e param com os comandos sudo /etc/init.d/ start|stop.
  • update-rc.d foi executado para ambos os serviços.
  • A porta 8070 (servidor) e 8080 (web, se usado) estão acessíveis conforme esperado.
  • Senha super admin alterada e armazenada com permissões restritas.

Mini-metodologia de implantação (3 fases)

  1. Preparação: valide usuário openerp, permissões e dependências do Python.
  2. Implantação: copie configs, instale scripts em /etc/init.d/, ajuste permissões.
  3. Teste e automação: start/stop manuais, verificar logs, registrar com update-rc.d e reiniciar para validar o boot.

Checklist por função

Administrador de sistema:

  • Validar permissões de arquivos e diretórios.
  • Configurar update-rc.d e testar reboot.
  • Monitorar logs periodicamente.

Operações / DevOps:

  • Integrar healthchecks e alertas (ex.: checar /var/log/openerp/openerp-server.log e processos).
  • Automatizar deploy de configurações com ferramenta de gestão (Ansible, Puppet, etc.).

Desenvolvedor:

  • Confirmar que o servidor usa a porta esperada (8070) e o web client 8080.
  • Testar conexões do cliente GTK e do browser.

Segurança e endurecimento básico

  • Proteja /etc/openerp-server.conf e /etc/openerp-web.conf com dono openerp:root e modo 640.
  • Evite senha padrão do super admin; crie uma senha forte e única.
  • Se expor web client publicamente, coloque-o atrás de um proxy reverso (Nginx/Apache) com TLS e cabeçalhos X-Forwarded configurados.
  • Considere firewall (ufw/iptables) para limitar acesso às portas 8070/8080 somente a endereços autorizados.
  • Faça backups regulares dos bancos de dados e teste restaurações.

Diagnóstico e resolução rápida

Se o serviço não iniciar:

  • Verifique permissões de /var/log/openerp e de /etc/openerp-server.conf.
  • Abra o último trecho do log: tail -n 200 /var/log/openerp/openerp-server.log.
  • Confirme o binário apontado por DAEMON existe e é executável: ls -l /opt/openerp/server/bin/openerp-server.py.
  • Confira se outro processo está usando a porta com: sudo netstat -plnt | grep 8080 (ou 8070).

Critérios de aceitação

  • Serviços openerp-server e openerp-web iniciam com sucesso e criam seus PID files.
  • Logs mostram mensagens de startup sem erros fatais.
  • Conexão via Cliente GTK ou navegador retorna tela de login do OpenERP.
  • Senha do super admin alterada e arquivo de configuração protegido.

Quando esta abordagem falha ou limitações

  • Em instalações modernas com systemd, prefira criar unit files systemd em vez de scripts init.d; os scripts init.d ainda funcionam, mas podem não oferecer recursos avançados de gerenciamento.
  • Se você tiver múltiplas instâncias ou balanceamento, scripts locais não substituem orquestração centralizada.

Resumo

Seguir estes passos garante que o OpenERP Server e o Web Client estejam corretamente instalados, testados e configurados para iniciar automaticamente no boot. Verifique logs, proteja credenciais e considere usar systemd ou uma solução de orquestração para ambientes maiores.

Nota: este guia foca na instalação e automação do serviço. A configuração funcional e o uso do OpenERP (criação de bases, módulos, personalizações) ficam fora do escopo.

Autor
Edição

Materiais semelhantes

Instalar e usar Podman no Debian 11
Containers

Instalar e usar Podman no Debian 11

Apt‑pinning no Debian: guia prático
Administração de sistemas

Apt‑pinning no Debian: guia prático

Injete FSR 4 com OptiScaler em qualquer jogo
Tecnologia

Injete FSR 4 com OptiScaler em qualquer jogo

DansGuardian e Squid com NTLM no Debian Etch
Infraestrutura

DansGuardian e Squid com NTLM no Debian Etch

Corrigir erro de instalação no Android
Android

Corrigir erro de instalação no Android

KNetAttach: Pastas de Rede remota no KDE
KDE

KNetAttach: Pastas de Rede remota no KDE