Create a user for the OpenERP application
sudo adduser --system --quiet --shell=/bin/bash --home=/opt/odoo --gecos 'ODOO' --group odoo
Install PostgreSQL database and add odoo as a postgres superuser
sudo apt-get install postgresql -y
sudo su – postgres -c “createuser -s odoo” 2> /dev/null || true
Add password to openerp postgres user
sudo su postgres
psql template1
ALTER ROLE odoo WITH password 'XXXXX';
\q
exit
Change the postgesql.conf file to accept connections on all interfaces (development use only)
sudo vi /etc/postgresql/9.3/main/postgresql.conf
Find the listen parameter and remove the # and listen to adress *
listen_address = '*'
Change the pg_hba.conf file to change the way authentication takes place
sudo vi /etc/postgresql/9.3/main/pg_hba.conf
Find the following line
[AdSense-A]
local all all peer
hosts all all 127.0.0.1/32 md5
to:
local all all md5
hosts all all 127.0.0.1/32 md5
If you want to connect to the postgres database from your machine you need to add a new line to the Ipv4 part of this file: Example is for a network 192.168.1.0/24.
host all all 192.168.1.0/24 MD5
Install the required dependicies for ODOO
sudo apt-get install python-dateutil python-feedparser python-gdata python-ldap \
python-libxslt1 python-lxml python-mako python-openid python-psycopg2 \
python-pybabel python-pychart python-pydot python-pyparsing python-reportlab \
python-simplejson python-tz python-vatnumber python-vobject python-webdav \
python-werkzeug python-xlwt python-yaml python-zsi python-docutils \
python-psutil bzr git wget python-mock python-unittest2 python-jinja2 -y
Install latest gdata-python-client from http://code.google.com/p/gdata-python-client/downloads/list
wget http://gdata-python-client.googlecode.com/files/gdata-2.0.17.tar.gz
tar zxvf gdata-2.0.17.tar.gz
cd gdata-2.0.17/
sudo python setup.py install
Install ODOO 7.0 from Github
sudo su - odoo
git clone https://www.github.com/odoo/odoo --branch 7.0
chown -R odoo: *
exit
Configure the ODOO application
sudo cp /opt/odoo/odoo/install/openerp-server.conf /etc/odoo-server.conf
sudo chown odoo: /etc/odoo-server.conf
sudo chmod 640 /etc/odoo-server.conf
In the /etc/odoo-server.conf file you need to following lines.
sudo vi /etc/odoo-server.conf
change the line: (in vi use a to start editing)
db_user = openerp
db_password = false
with:
db_user = odoo
db_password = XXXXXX
(the password setup with the ALTER ROLE command)
addons_path = /opt/odoo/odoo/addons
logfile = /var/log/odoo/odoo-server.log
Save the file (ESC :w)
[AdSense-B]
Create a dir for the log file and give the correct permissions
sudo mkdir /var/log/odoo
sudo chown odoo:root /var/log/odoo
Check if the server works
sudo su odoo
python /opt/odoo/odoo/openerp-server --config=/etc/odoo-server.conf
Check it using your brwoser and go to: http://[ip or dns name of server]:8069
You should see the login screen or database creation of ODOO
Press CTRL+C to stop the server and use exit to get out of the openerp user shell
Installing a boot script (if you want a boot script)
sudo vi /etc/init.d/odoo-server
Use the follwing script: (first press the a to add lines and copy the script)
#!/bin/sh
### BEGIN INIT INFO
# Provides: odoo-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: Business Applications
# Description: ODOO Business Applications.
### END INIT INFO
PATH=/bin:/sbin:/usr/bin
DAEMON=/opt/odoo/odoo/openerp-server
NAME=odoo-server
DESC=odoo-server
# Specify the user name (Default: openerp).
USER=odoo
# Specify an alternate config file (Default: /etc/odoo-server.conf).
CONFIGFILE="/etc/odoo-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
Save the file (ESC :w)
Check if the server works
sudo chmod 755 /etc/init.d/odoo-server
sudo chown root: /etc/init.d/odoo-server
sudo /etc/init.d/odoo-server start
You should now be able to view the logfile and see that the server has started
less /var/log/odoo/odoo-server.log
and check it using your brwoser and go to: http://[ip or dns name of server]:8069
You should see the login screen or database creation of OpenERP
Change the (super)admin password of openerp. Click on Manage Databases (perhaps you’re already here). Change the password.
It adds the password in plain text in the /etc/odoo-server.conf file, that’s why we changed the permissions on this file!
Stop the server
sudo /etc/init.d/odoo-server stop
Automatic Startup and Shutdown
sudo update-rc.d odoo-server defaults
If you reboot the server everything should be working.
Thank you for this blog.
The path has been changed sudo cp /opt/odoo/odoo/install/openerp-server.conf /etc/odoo-server.conf
cp /opt/odoo/debian/install/openerp-server.conf
Thank you for this guide.
Everything works just fine.
(I only had to remove ‘carriage return’ from the script which i copied and paste in dos-format. Unix newbie.)
Thank you very much!
I only had some problems with the script, because saved in DOS format. After removing ‘carriage return’ (^M) everything was fine.
thank you, it worked!
just one thing: occurences of “/opt/odoo/server/openerp-server” should be “/opt/odoo/odoo/openerp-server” for me to work properly. all the rest was fine.
AWESOME!!! Thank you so much!
I think this is the first “Install odoo….” Nice one!
At this moment I’m making a script to take a sneakpeak at odoo version 8.
Should be finished this evening.
after the execution of this command:
ALTER ROLE WITH Odoo password ‘XXXXX’;
it shows me this error message
ERROR: role “Odoo” does not exist
help me please
I think you had an error running: sudo su – postgres -c “createuser -s odoo” 2> /dev/null || true
Or you should use odoo as user/role name in Postgres and not Odoo
Hope this helps.
André
Hi André,
actually I stumbled upon the same error, following your instructions, or so it seems. Here’s what I did:
wouter@casa:~$ sudo su – postgres -c “createuser -s odoo” 2> /dev/null || true
[sudo] password for wouter:
wouter@casa:~$ sudo su postgres
postgres@casa:/home/wouter$ psql template1
psql (9.3.4, server 9.1.13)
Type “help” for help.
template1=# ALTER ROLE odoo WITH password ‘XX’;
ERROR: role “odoo” does not exist
template1=#
best,
Wouter
sudo su – postgres -c “createuser -s odoo” seems to work
2> /dev/null || true may be the problem