Tutorial: Odoo 9 unter Ubuntu installieren

Odoo 9 App Übersicht

Odoo 9 ist seit dem 1.Oktober 2015 verfügbar und lockt mit einer Fülle neuer Features wie dem Website Builder, einem überarbeiteten e-Commerce und Vertragsmanagement Modul (zu Odoo 9 Keynotes).

Um sich schnell und unkompliziert diese neuen Features ansehen zu können, bietet sich die Installation von Odoo 9 in einer virtuellen Maschine (z.B. VirtualBox) an. Die Installation des Ubuntu Server Systems und Odoo 9 (ehemals OpenERP) ist in weniger als einer Stunde abgeschlossen. Danach kann man unkompliziert und ohne Risiko die neuen Fähigkeiten sowie sämtliche Apps des OpenSource ERP / CRM ausprobieren. Also worauf warten?

Hinweis: sämtliche Befehle werden im folgenden als Root-User ausgeführt. Nur wenn es ein anderer Benutzer sein muss, wird dies explizit erwähnt.

Updates des Servers

Auch wenn es sich um eine frische Ubuntu Installation handelt, sollte man immer zuerst das Basissystem aktualisieren. Außerdem installieren wir den Zeichensatz c.utf-8, da es dann garantiert keine Inkompatibilitäten zwischen ASCII und UTF8 bei der Anlage der Postgresql-Datenbank gibt.

apt-get update
apt-get upgrade -y
apt-get install -y locales
dpkg-reconfigure locales
locale-gen C.UTF-8
/usr/sbin/update-locale LANG=C.UTF-8
echo 'LC_ALL=C.UTF-8' >> /etc/environment

Postgresql installieren

Als nächstes Installieren wir die Datenbank. Odoo (ehemals OpenERP) setzt auf Postgresql, welche mit wenigen Befehlen installiert ist. Nach der Installation der Datenbank legen wir einen neuen Datenbankbenutzer “odoo” an.

apt-get install postgresql -y
su - postgres -c "createuser -s odoo"
service postgresql restart

Odoo Benutzer und Log-Datei anlegen

Odoo soll später unter einem eigenen Systembenutzer (und nicht dem Root-User) laufen. Dieser Benutzer mit dem Namen odoo soll sich nicht am System anmelden können, sondern sich lediglich um die Ausführung von Odoo kümmern. Deshalb wird das Home-Verzeichnis auch unter /opt/odoo angelegt.

adduser --system --quiet --shell=/bin/bash --home=/opt/odoo --gecos 'ODOO' --group odoo
mkdir /var/log/odoo
chown odoo: /var/log/odoo

Odoo Voraussetzungen installieren

Bevor wir zur eigentlichen Installation kommen, müssen eine Vielzahl von Voraussetzungen erfüllt sein. Dieses erledigen wir mit den folgenden Befehlen.

apt-get install wget git python-pip python-imaging python-setuptools python-dev libxslt-dev libxml2-dev libldap2-dev libsasl2-dev node-less postgresql-server-dev-all -y
wget http://download.gna.org/wkhtmltopdf/0.12/0.12.2.1/wkhtmltox-0.12.2.1_linux-trusty-amd64.deb

Weiterhin installieren wir das Webkit html-to-pdf. Dies machen wir mit den folgenden Befehlen.

dpkg -i wkhtmltox-0.12.2.1_linux-trusty-amd64.deb
apt-get install -f -y
dpkg -i wkhtmltox-0.12.2.1_linux-trusty-amd64.deb
cp /usr/local/bin/wkhtmltopdf /usr/bin
cp /usr/local/bin/wkhtmltoimage /usr/bin
rm wkhtmltox-0.12.2.1_linux-trusty-amd64.deb

Odoo 9 mit allen Abhängigkeiten installieren

Nachdem nun alle Voraussetzungen erfüllt sind, kommen wir zu eigentlichen Installation von Odoo. Mit den folgenden Befehlen wird das ca. 50 Megabyte große Odoo Paket von github runtergeladen und sämtlich Abhängigkeiten installiert. Dieser Vorgang dauert mit Abstand am längsten von allen Arbeitsschritten.

cd /opt/odoo
su odoo -c "git clone --depth 1 --single-branch --branch 9.0 https://www.github.com/odoo/odoo /opt/odoo/odoo-server/"
su odoo -c "mkdir -p /opt/odoo/custom/addons"
chown -R odoo:odoo /opt/odoo/*
pip install -r /opt/odoo/odoo-server/requirements.txt
easy_install pyPdf vatnumber pydot psycogreen suds ofxparse

Odoo konfigurieren

Nun ist es fast geschafft. Odoo 9 ist installiert und es bedarf nur noch ein paar Einstellungen um Odoo lauffähig zu machen. Konkret muss die odoo-server.conf angepasst werden.

cp /opt/odoo/odoo-server/debian/openerp-server.conf /etc/odoo-server.conf
chown odoo: /etc/odoo-server.conf
chmod 640 /etc/odoo-server.conf
nano /etc/odoo-server.conf

Bitte passen Sie die odoo-server.conf an, dass diese den folgenden Inhalt hat. Das geheime Passwort dürfen Sie natürlich beliebig setzen. Wählen Sie ein ausreichend sicheres Passwort.

[options]
; This is the password that allows database operations:
db_host = False
db_port = False
db_password = False
db_user = odoo
admin_passwd = HIER_STEHT_IHR_GEHEIMES_PASSWORT
logfile = /var/log/odoo/odoo-server.log
addons_path=/opt/odoo/odoo-server/addons,/opt/odoo/custom/addons

Nun wird noch ein Start-Script angelegt, dass man das ERP / CRM System bequem per service odoo-server start starten kann und dieses auch zum Autostart des Servers hinzufügen kann.

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

Kopieren Sie nun den vollständigen Inhalt in das Start-Script 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: Enterprise Business Applications
# Description: ODOO Business Applications
### END INIT INFO
PATH=/bin:/sbin:/usr/bin
DAEMON=/opt/odoo/odoo-server/openerp-server
NAME=odoo-server
DESC=odoo-server

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

# Specify an alternate config file (Default: /etc/openerp-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
}
_status() {
start-stop-daemon --status --quiet --pidfile $PIDFILE
return $?
}

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}."
;;

status)
echo -n "Status of ${DESC}: "
start-stop-daemon --status --quiet --pidfile $PIDFILE
_status && echo "running." || echo "stopped."
;;

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

esac
exit 0

Um nun Odoo automatisch bei jedem Neustart zu starten genügt der folgende Befehl.

update-rc.d odoo-server defaults

Herzlichen Glückwunsch! Odoo 9 ist nun installiert und kann über http://IHRE-IP:8069 aufgerufen werden.

Datenbank anlegen und loslegen

initiale Datenbank in Odoo anlegen

Beim ersten Aufruf von Odoo im Browser, müssen Sie eine initiale Datenbank anlegen. Natürlich funktioniert die Anlage nur, wenn Sie beim Master Passwort Ihr geheimes Passwort aus der odoo-server.conf eintragen. Die anderen Werte können Sie beliebig wählen.

Nach einem Klick auf “Create database” dauert es ca. 30 Sekunden, bis die Datenbank angelegt wurde und Sie in Ihrem fertig installiertem Odoo System landen. Sie sind nun als Administrator eingeloggt und können direkt mit der Installation der gewünschten Apps loslegen.

Natürlich ist dies nur eine absolute Basisinstallation von Odoo 9, welche nicht für den produktiven Einsatz gedacht ist. Für den produktiven Einsatz sind noch eine Reihe von Sicherheitseinstellungen zu treffen, um das System gründlich abzusichern. Alternativ können Sie auch einen ionas-Server Small Business kaufen. Dort ist Odoo 9 bereits vorinstalliert, abgesichert und mit einer zentralen Benutzerverwaltung und der VoIP-Telefonanlage integriert.

Korrupte Datenbank mit “demonstration data” löschen

Bei meinen ersten Testinstallationen kam es bei der Anlage einer neuen Datenbank mit Beispieldaten (demonstration data) zu einem reproduzierbarem Fehler. Die Fehlermeldung lautete Database creation error: Unable to use a closed cursor und sobald diese Datenbank verwendet wurde, war das System nicht mehr zu erreichen.

Mit den folgenden Befehlen können Sie Odoo beenden und die korrupte Datenbank löschen. Natürlich müssen Sie DATENBANKNAME durch den Namen der erzeugten Datenbank ersetzen.

service odoo-server stop
su postgres -c "dropdb DATENBANKNAME"
service odoo-server start
geschrieben von

Christoph Dyllick-Brenzinger

Christoph ist Gründer und Chefentwickler von datamate. Er ist ein absoluter Linux-Fan und hat schon früh seine Leidenschaft für Technik und Programmierung entdeckt. Seine langjährige Erfahrung als Unternehmensberater spürt man regelmäßig, wenn er nach optimalen Lösungen für die Kunden sucht. Wenn er nicht gerade den Tennisplatz unsicher macht oder bei Overwatch sein Liga-Ranking verbessert, verbringt Christoph seine Freizeit mit seiner Frau und seinen drei Kindern.