Fiz este script para instalar o OpenERP no proveror webfaction - a solução mais barata que enontrei até agora.
a) Instalar postgre local
- criar um application com nome postgre e abrir a porta. Anote o numero da porta
- anote a senha que esta escrita em "Extra info"
b)
- criar website com nome openerp, e em content criar um "new aplication" custom com porta aberta.
- anote o numero da porta
2 - No SSH
a) Entre no SSH do seu webfaction pelo terminal (eu uso o putty)
b) Instalar o openerp
mkdir ~/webapps/openerp/
cd ~/webapps/openerp/
tar -zxvf openerp-7.0-latest.tar.gz --transform 's!^[^/]\+\($\|/\)!openerp\1!'
mv openerp openerp1
cd openerp1
mv * ..
cd ..
rm -r openerp1
python setup.py install
mkdir ~/usr
mkdir ~/usr/local
mkdir ~/usr/local/bin
cp openerp-server ~/usr/local/bin
mkdir ~/etc
mkdir ~/etc/init.d
mkdir ~/etc/init.d/openerp
mkdir ~/var
mkdir ~/var/lock
mkdir ~/var/log
mkdir ~/var/run
mkdir ~/var/lock/subsys
mkdir ~/var/log/openerp
mkdir ~/var/run/openerp
cp install/openerp-server.init ~/etc/init.d/openerp
cp install/openerp-server.conf ~/etc
chmod u+x ~/etc/init.d/openerp
c) edit o ~/etc/openerp-server.conf, fazendo com que ele tenha o texto abaixo (eu uso nano ~/etc/openerp-server.conf)
db_host = localhost
db_port = <porta do banco de dados>
db_user = openerp
db_password = openerp
3 - No seu PC
a) instale o pgAdminIII no seu computador
b) abra o servidor
propertite:
Name: postgre
host: localhost
port: porta do application do item 1a
usuario: seu usuario no webfaction
senha: senha do banco de dados gerada no item 1a
ssh tunnel:
username seu usuario no webfaction
senha sua senha no webfaction
c) criar login rule com nome openerp, senha openerp e com todas as permissoes
d) criar uma database openerp com o owner openerp criado acima
4 - NO SSH
a1) ou coloque no crontab (prefiro esta opcao pois todos os dias as 2:50am o serviço vai reiniciar)
env EDITOR=nano crontab -e
adicione a linha
50 2 * * * /home/<seu usuario no webfaction>/webapps/openerp/install/openerp-server.init restart
a2) ou execute o serviço no diretorio ~/webapps/openerp/openerp/install (veja configuracao 9)
./openerp-server.init restart
a3) ou execute o openerp-server (porta onde porta é o numero da porta do item 2)
screen
openerp-server --conf ~/etc/openerp-server.conf --xmlrpc-port=NUMERODAPORTA
saia da tela do putty com tudo rodando
5 - No browser
usando seu browser, entre no site usuario.webfaction.com:porta onde porta é o numero da porta do item 2. Voê pode associar um dominio ou subdominio a este serviço usando o
my.webfaction.com
6 - No SSH
Se houver necessiade de "MATAR" o serviço
pgrep -f "openerp"
e depois
kill <numero do serviço que foi listado acima>
7 - No SSH
- o arquivo openerp/install/openerp-server.init precisa ser assim:
#!/bin/bash
# openerp-server This shell script takes care of starting and stopping
# OpenERP server
#
# chkconfig: 345 95 05
# description: OpenERP server
#
# pidfile: /var/run/openerp-server.pid
# config: /etc/openerp-server.conf
### BEGIN INIT INFO
# Provides: openerp-server
# Required-Start: postgresql
# Required-Stop: postgresql
# Should-Start: $network harddrake
# Default-Start: 345
# Short-Description: Launches the OpenERP server.
# Description: This startup script launches the OpenERP server.
### END INIT INFO
# Source function library.
. /etc/rc.d/init.d/functions
PIDFILE=~/var/run/openerp/openerp-server.pid
LOCKFILE=~/var/lock/subsys/openerp-server
LOGFILE=~/var/log/openerp/openerp-server.log
PORTNUMBER=<NUMERO DA PORTA DO WEBSITE>
OPTS="--pidfile=$PIDFILE --logfile=$LOGFILE"
prog="openerp-server"
desc="OpenERP Server Daemon"
# check if the openerp-server conf file is present, then use it
if [ -f ~/etc/openerp-server.conf ]; then
OPTS="$OPTS -c ~/etc/openerp-server.conf"
fi
# Source function library
if [ -f /etc/init.d/functions ] ; then
. /etc/init.d/functions
elif [ -f /etc/rc.d/init.d/functions ] ; then
. /etc/rc.d/init.d/functions
else
exit 0
fi
# check the existence of the openerp-server script
[ -z "~/usr/local/bin/openerp-server" ] && exit 0
RETVAL=0
start() {
if [ -d /etc/openerp/start.d ] ; then
echo -n $"Preparing $desc: "
run-parts --exit-on-error /etc/openerp/start.d
RETVAL=$?
echo
[ $RETVAL -ne 0 ] && return $RETVAL
fi
echo -n $"Starting $desc ($prog): "
daemon --check openerp-server \
"setsid ~/usr/local/bin/openerp-server \
-c ~/etc/openerp-server.conf \
--xmlrpc-port=$PORTNUMBER \
--pidfile=$PIDFILE \
--logfile=$LOGFILE &"
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch $LOCKFILE
return $RETVAL
}
stop() {
echo -n $"Stopping $desc ($prog): "
kill -TERM `cat $PIDFILE` > /dev/null 2>&1
RETVAL=$?
if [ $RETVAL -eq 0 ] ; then
rm -f $LOCKFILE
echo_success
echo
else
echo_failure
echo
fi
if [ -d /etc/openerp/stop.d ] ; then
echo -n $"Clearing $desc: "
run-parts /etc/openerp/stop.d
echo
fi
return $RETVAL
}
restart() {
stop
start
}
condrestart() {
[ -e $LOCKFILE ] && restart || :
}
status() {
if [ -f $PIDFILE ] ; then
checkpid `cat $PIDFILE`
RETVAL=$?
if [ $RETVAL -eq 0 ] ; then
echo $"$prog is running..."
else
echo $"$prog is stopped"
fi
else
echo $"$prog is stopped"
fi
return $RETVAL
}
case "$1" in
start)
start
;;
stop)
stop
;;
restart|reload)
restart
;;
condrestart)
condrestart
;;
status)
status
;;
probe)
exit 0
;;
*)
echo $"Usage: $0 {start|stop|status|restart|condrestart|reload}"
exit 1
esac