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

OpenVPN + LinOTP: Autenticação OTP
Segurança

OpenVPN + LinOTP: Autenticação OTP

Métricas do Instagram: medir e otimizar
Marketing

Métricas do Instagram: medir e otimizar

Recuperar fotos/Vídeos Ver uma vez no WhatsApp
Mobile

Recuperar fotos/Vídeos Ver uma vez no WhatsApp

Instalar Icecast 2.3.3 no CentOS 6.3
Streaming

Instalar Icecast 2.3.3 no CentOS 6.3

Widget de chamada Google Voice no seu site
Tutoriais

Widget de chamada Google Voice no seu site

Como ver posts que você curtiu no Instagram
Redes Sociais

Como ver posts que você curtiu no Instagram