Lauch Odoo on AWS instance

How to install Odoo on AWS instance

Binh Nguyen Xuan

This tutorial will show you how to install Odoo in your vps.

Install database and server dependencies

sudo apt-get install subversion git bzr bzrtools python-pip postgresql postgresql-contrib python-psycopg2 libpq-dev python-all-dev python-dev python-setuptools libxml2-dev libxslt1-dev libevent-dev libsasl2-dev libldap2-dev pkg-config libtiff5-dev libjpeg8-dev libjpeg-dev zlib1g-dev libfreetype6-dev liblcms2-dev liblcms2-utils libwebp-dev tcl8.6-dev tk8.6-dev python-tk libyaml-dev fontconfig

Check postgres is running. When I install postgres on my vps, I always face the problem come from locale.

sudo dpkg-reconfigure locales
sudo pg_createcluster 9.3 main --start
sudo /etc/init.d/postgresql start

or you can add 2 lines in /etc/environment and /etc/default/locale:

LC_ALL=en_US.UTF-8
LANG=en_US.UTF-8


Create odoo user (by version) and log directory

sudo adduser --system --home=/opt/odoo --group odoo
sudo mkdir /var/log/odoo


Install odoo from source
cd /opt/odoo/
git clone git@github.com:odoo/odoo.git


Create PostgresSQL User

sudo su - postgres
createuser odoo -U postgres -dRSP

CTRL + D to logout user postgres


Install dependencies for Odoo app by requirement file


Python dependencies

sudo pip install -r /opt/odoo/doc/requirements.txt
sudo pip install -r /opt/odoo/requirements.txt


Less CSS

wget -qO- https://deb.nodesource.com/setup | sudo bash -
sudo apt-get install nodejs
sudo ln -s /usr/bin/nodejs /usr/bin/node
sudo apt-get install -y npm
sudo npm install -g less less-plugin-clean-css
sudo apt-get install node-less


Wkhtmltopdf
Create a install file wkhtml_install.sh :

echo -e "\n---- Install WkHtmlToPdf 0.12.3 ----"
sudo wget -P /tmp/ http://download.gna.org/wkhtmltopdf/0.12/0.12.3/wkhtmltox-0.12.3_linux-generic-amd64.tar.xz
cd /tmp
tar xvfJ wkhtmltox-0.12.3_linux-generic-amd64.tar.xz
cd /usr/local/bin
sudo cp wkhtmltox/bin/wkhtmltoimage /usr/bin/
sudo cp wkhtmltox/bin/wkhtmltopdf /usr/bin/
echo -e "Wkhtmltopdf is installed!"


Odoo server conf

sudo cp /opt/odoo/debian/openerp-server.conf /etc/odoo-server.conf
sudo nano /etc/odoo-server.conf



Odoo Boot script

sudo nano /etc/init.d/odoo-server

#!/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: Odoo ERP
# Description: Odoo is a complete ERP business solution.
### END INIT INFO

PATH=/bin:/sbin:/usr/bin
# Change the Odoo source files location according your needs.
DAEMON=/opt/odoo/openerp-server
# Use the name convention of your choice 
NAME=odoo-server
DESC=odoo-server

# Specify the user name (Default: odoo).
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


Odoo files ownership and permissions


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


sudo chown -R odoo: /opt/odoo/


sudo chown odoo:root /var/log/odoo


sudo chown odoo: /etc/odoo-server.conf
sudo chmod 640 /etc/odoo-server.conf


Running Boot Script at Server Startup and Shutdown


sudo update-rc.d odoo-server defaults


sudo shutdown -r now


tail -f /var/log/odoo/odoo-server.log