Installation von odoo 10 unter Ubuntu Server 16.04 LTS

Anfang Oktober 2016 wurde im Rahmen der odoo Experience die Version 10 von odoo veröffentlicht. Im folgenden beschreibe ich die Installation von odoo 10 unter Ubuntu 16.04 LTS. Basis für diese Beschreibung ist meine Installationsbeschreibung für odoo 9.

Voraussetzungen

Voraussetzung für diese Anleitung ist ein frisch installiertes Ubuntu 16.04 LTS in der Server-Version. Es ist egal, ob Ubuntu auf einer physischen Maschine oder in einer virtuellen Maschine (VM) läuft.

Als Hardwarevoraussetzungen reichen zumindest für den Anfang eine CPU mit zwei Kernen und 4 GB RAM (in einer VM entsprechend 2 vCPUs und 4 GB vRAM) sowie 50 GB Festplattenplatz.

Hier geht es zur offiziellen Anleitung für den Download und die Installation von Ubuntu Server.

Alle für odoo 10 benötigten Anwendungen werden im weiteren Verlauf dieser Anleitung installiert. Es reicht also aus, Ubuntu in der absoluten Basisversion, ohne Anwendungspakete, zu installieren.

Legen Sie bitte während der Installation von Ubuntu einen User an, mit dem Sie sich zukünftig anmelden. Alle weiteren Useraccounts für odoo 10 werden im weiteren Verlauf angelegt.

Ubuntu ist installiert, was kommt jetzt?

Ganz einfach: Führen Sie die beschriebenen Schritte als User mit root-Rechten aus (am besten Copy & Paste in die Ubuntu-Kommandozeile). Alternativ finden Sie am Ende einen Link auf ein Github-Repository mit einem vollständigen Installationsskript, das alle Schritte zusammenfasst und dadurch die Installation quasi zu einem Einzeiler macht.

Dieses Skript ist auch der Grund, warum manche Befehle vielleicht etwas ungewohnt aussehen. Sie sind so aufgebaut, dass sie im Skript ohne weitere Benutzerinteraktion ausgeführt werden können.

Es geht los…

Zunächst installieren Sie die aktuellen Updates für Ubuntu. Das schadet nie, auch wenn Sie das ISO-Image zur Installation von Ubuntu grade erst runtergeladen haben. Melden Sie sich dazu mit dem bei der Installation von Ubuntu angelegten Benutzer an und wechseln mit

sudo su

in eine root-Shell. Sie müssen dabei Ihr Userpasswort eintippen. Dann bringen Sie Ubuntu auf den aktuellsten Stand:

apt-get update
apt-get upgrade -y
apt-get dist-upgrade -y
apt-get autoremove -y

Falls nötig, starten Sie Ubuntu anschließend neu, melden sich an und wechseln wieder in eine root-Shell.

Ubuntu-Pakete

Als Nächstes installieren Sie alle für odoo benötigten Ubuntu-Pakete:

apt-get install gcc unzip python2.7 python-dev python-pychart python-gnupg python-pil python-zsi python-ldap python-lxml python-dateutil libxslt1.1 libxslt1-dev libldap2-dev libsasl2-dev python-pip poppler-utils xfonts-base xfonts-75dpi xfonts-utils libxfont1 xfonts-encodings xzip xz-utils python-openpyxl python-xlrd python-decorator python-requests python-pypdf python-gevent npm nodejs node-less node-clean-css git mcrypt keychain software-properties-common python-passlib libjpeg-dev libfreetype6-dev zlib1g-dev libpng12-dev -y
apt-get install postgresql-9.5 postgresql-client postgresql-client-common postgresql-contrib-9.5 postgresql-server-dev-9.5 -y

PostgreSQL

Bei der Installation von PostgreSQL wird der User „postgres“ angelegt. Wechseln Sie mit

su postgres

in eine Shell mit diesem User. Für diesen Wechsel wird kein Passwort benötigt.

Führen Sie dann die folgenden Befehle aus, um den Datenbankuser für odoo anzulegen. Vergeben Sie bitte ein Passwort Ihrer Wahl, nicht unbedingt das unten stehende „password“.

cd /var/lib/postgresql

psql <<EOF
    create role odoo with password 'password';
    alter role odoo CREATEROLE;
    alter role odoo CREATEDB;
    alter role odoo CREATEUSER;
    alter role odoo LOGIN;
    \q
EOF

exit

Python

Sie sind jetzt wieder als root unterwegs. Im nächsten Schritte werden die grundlegenden Python-Pakete installiert:

easy_install --upgrade pip
pip install BeautifulSoup BeautifulSoup4 passlib pillow dateutils polib unidecode flanker simplejson enum py4j

Node.js

odoo 10 benötigt Node.js. Das wird mit den folgenden Befehlen installiert:

npm install -g npm
npm install -g less-plugin-clean-css
npm install -g less

ln -s /usr/bin/nodejs /usr/bin/node
rm /usr/bin/lessc
ln -s /usr/local/bin/lessc /usr/bin/lessc

odoo10.conf

Laden Sie mit

wget https://github.com/pragmasoft-de/odoo10-scripts/blob/master/odoo10.conf.template

die Vorlage für die odoo-Konfig-Datei herunter und kopieren diese mit

cd /etc
mkdir odoo
cd odoo
cp odoo10.conf.template ./odoo10.conf

in das Verzeichnis /etc/odoo. Anschließend ersetzen Sie die in der Datei enthaltenen Platzhalter mit

sed -i s/{{admin_passwd}}/ODOO_ADMIN_PASSWD/ odoo10.conf
sed -i s/{{db_password}}/PG_ROLE_ODOO_PWD/ odoo10.conf
sed -i s/{{db_user}}/PG_ROLE_ODOO_NAME/ odoo10.conf
sed -i s/{{interface_ip}}/INTERFACE_IP/ odoo10.conf

mit den passenden Werten. Ändern Sie dazu die Ausdrücke in Großbuchstaben in die von Ihnen gewünschten Werte.

ODOO_ADMIN_PASSWD ist das Master-Passwort für odoo, das Sie zum Verwalten der Datenbanken (anlegen, sichern, zurücksichern, löschen) benötigen.

PG_ROLE_ODOO_PWD ist das Passwort für den odoo-Datenbankuser, das Sie weiter oben angegeben haben.

PG_ROLE_ODOO_NAME ist der Name des odoo-Datenbankusers (normalerweise odoo).

INTERFACE_IP ist die IP-Adresse, auf der odoo Anfragen entgegennimmt. Setzen Sie die Adresse bitte auf die des externen Interfaces Ihres odoo-Servers.

wkhtmltopdf

odoo benötigt wkhtmltopdf, um Reports im PDF-Format erzeugen zu können. Da die in den Ubuntu-Paketquellen enthaltene Version mit odoo nicht funktioniert, installieren Sie die korrekte Version folgendermaßen:

cd /tmp
mkdir wkhtmltopdf
cd wkhtmltopdf
wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
unxz wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
tar xvf wkhtmltox-0.12.4_linux-generic-amd64.tar
cd wkhtmltox/bin
cp * /usr/local/bin/
cd /usr/bin
ln -s /usr/local/bin/wkhtmltopdf ./wkhtmltopdf
cd /tmp
rm -rf wkhtmltopdf

Useraccounts

odoo benötigt einen eigenen Ubuntu-User. Dieser wird hier angelegt und mit einem Passwort ausgestattet:

useradd -m -U ODOO_USER_NAME
echo "ODOO_USER_NAME:ODOO_USER_PWD" | chpasswd

Ersetzen Sie dabei ODOO_USER_NAME mit dem Namen des Users (normalerweise odoo) und ODOO_USER_PWD mit dem Passwort Ihrer Wahl.

Vergeben Sie mit

echo "postgres:PG_USER_PWD" | chpasswd

ein Passwort für den User postgres. Statt PG_USER_PWD verwenden Sie auch hier bitte ein Passwort, das Ihren Anforderungen entspricht.

Logfile für odoo

Erzeugen Sie das Verzeichnis für die Logfiles von odoo:

cd /var/log
mkdir odoo
chown odoo.odoo odoo

Beim Befehl chown verwenden Sie dabei den Namen des oben angelegten Ubuntu-Users in der Syntax USERNAME.GRUPPENNAME. Da die Gruppe den selben Namen wie der User hat, lautet der Parameter odoo.odoo, wenn Sie bisher der Anleitung gefolgt sind.

Und jetzt odoo

odoo 10 wird mit den folgenden Befehlen aus dem offiziellen Github-Repository installiert:

cd /opt
mkdir odoo

cd odoo
git clone https://github.com/odoo/odoo --depth 1 -b 10.0
ln -s odoo ./odoo10

Der Download aus dem Repository kann ein wenig dauern.

odoo bringt eine Datei mit, in der alle benötigten Python-Packages enthalten sind. Diese Packages installieren Sie mit

cd odoo10
pip install -r requirements.txt

Dieser Installationsschritt benötigt einige Minuten, bis er fertig ist.

Service zum Starten und Stoppen von odoo 10

Damit odoo 10 beim Start des Ubuntu-Servers automatisch gestartet wird, muss der entsprechende Service angelegt werden. Wechseln Sie mit

cd

ins Homeverzeichnis des root-Users und laden Sie mit

wget https://github.com/pragmasoft-de/odoo10-scripts/blob/master/odoo10.service

die Datei für den Service herunter. Aktivieren Sie den Service mit

cd /etc/systemd/system
cp /root/odoo10.service .
chmod 644 odoo10.service
systemctl preset odoo10.service

Sicherheit

Aus Sicherheitsgründen sollten sich die User odoo und postgres nicht an einer Shell anmelden können. Um die Anmeldung zu verhindern, führen Sie folgende Befehle aus:

usermod -s /bin/false odoo
usermod -s /bin/false postgres

odoo 10 starten

Starten Sie den odoo-Server mit

service odoo10 start

und testen Sie die Verbindung, indem Sie im Browser die URL

http://ip-des-ubuntu-servers:8069

eingeben. Sie sollten dann die Seite zur Datenbankverwaltung erhalten. Hier können Sie Ihre erste odoo-Datenbank anlegen. Hier wird das weiter oben vergebene Master-Passwort benötigt.

Und jetzt?

Viel Spaß mit odoo 10!

Eins noch: das versprochene Installationsskript

Hier noch die Info, wo Sie das oben angekündigte vollständige Installationsskript finden:

git clone https://github.com/pragmasoft-de/odoo10-scripts

Die Hinweise zum Ausführen des Skripts finden Sie unter

https://github.com/pragmasoft-de/odoo10-scripts

Installation von odoo 9 unter Ubuntu Server 16.04 LTS

Das hier ist nicht die erste Anleitung für die Installation von odoo 9 unter Ubuntu. Und es wird auch sicher nicht die letzte sein. Ich beschreibe hier aber eine Vorgehensweise, die sich in der Praxis bewährt hat. Also „Best Practice“ im besten Sinne.

Voraussetzungen

Basis dieser Anleitung ist ein frisch installiertes Ubuntu 16.04 LTS in der Server-Version. Es ist egal, ob Ubuntu auf einer physischen Maschine oder in einer virtuellen Maschine (VM) läuft.

Als Hardwarevoraussetzungen reichen zumindest für den Anfang eine CPU mit zwei Kernen und 4 GB RAM (in einer VM entsprechend 2 vCPUs und 4 GB vRAM) sowie 50 GB Festplattenplatz.

Hier geht es zur offiziellen Anleitung für den Download und die Installation von Ubuntu Server.

Alle für odoo 9 benötigten Anwendungen werden im weiteren Verlauf dieser Anleitung installiert. Es reicht also aus, Ubuntu in der absoluten Basisversion, ohne Anwendungspakete, zu installieren.

Legen Sie bitte während der Installation von Ubuntu einen User an, mit dem Sie sich zukünftig anmelden. Alle weiteren Useraccounts für odoo 9 werden im weiteren Verlauf angelegt.

Ubuntu ist installiert, was kommt jetzt?

Ganz einfach: Führen Sie die beschriebenen Schritte als User mit root-Rechten aus (am besten Copy & Paste in die Ubuntu-Kommandozeile). Alternativ finden Sie am Ende einen Link auf ein Github-Repository mit einem vollständigen Installationsskript, das alle Schritte zusammenfasst und dadurch die Installation quasi zu einem Einzeiler macht.

Dieses Skript ist auch der Grund, warum manche Befehle vielleicht etwas ungewohnt aussehen. Sie sind so aufgebaut, dass sie im Skript ohne weitere Benutzerinteraktion ausgeführt werden können.

Es geht los…

Zunächst installieren Sie die aktuellen Updates für Ubuntu. Das schadet nie, auch wenn Sie das ISO-Image zur Installation von Ubuntu grade erst runtergeladen haben. Melden Sie sich dazu mit dem bei der Installation von Ubuntu angelegten Benutzer an und wechseln mit

sudo su -

in eine root-Shell. Sie müssen dabei Ihr Userpasswort eintippen. Dann bringen Sie Ubuntu auf den aktuellsten Stand:

apt-get update
apt-get upgrade -y
apt-get dist-upgrade -y
apt-get autoremove -y

Falls nötig, starten Sie Ubuntu anschließend neu, melden sich an und wechseln wieder in eine root-Shell.

Ubuntu-Pakete

Als Nächstes installieren Sie alle für odoo benötigten Ubuntu-Pakete:

apt-get install gcc unzip python2.7 python-dev python-pychart python-gnupg python-pil python-zsi python-ldap python-lxml python-dateutil libxslt1.1 libxslt1-dev libldap2-dev libsasl2-dev python-pip poppler-utils xfonts-base xfonts-75dpi xfonts-utils libxfont1 xfonts-encodings xzip xz-utils python-openpyxl python-xlrd python-decorator python-requests python-pypdf python-gevent npm nodejs node-less node-clean-css git mcrypt keychain software-properties-common python-passlib libjpeg-dev libfreetype6-dev zlib1g-dev libpng12-dev -y
apt-get install postgresql-9.5 postgresql-client postgresql-client-common postgresql-contrib-9.5 postgresql-server-dev-9.5 -y

PostgreSQL

Bei der Installation von PostgreSQL wird der User „postgres“ angelegt. Wechseln Sie mit

su postgres

in eine Shell mit diesem User. Für diesen Wechsel wird kein Passwort benötigt.

Führen Sie dann die folgenden Befehle aus, um den Datenbankuser für odoo anzulegen. Vergeben Sie bitte ein Passwort Ihrer Wahl, nicht unbedingt das unten stehende „password“.

cd /var/lib/postgresql

psql <<EOF
    create role odoo with password 'password';
    alter role odoo CREATEROLE;
    alter role odoo CREATEDB;
    alter role odoo CREATEUSER;
    alter role odoo LOGIN;
    \q
EOF

exit

Python

Sie sind jetzt wieder als root unterwegs. Im nächsten Schritte werden die grundlegenden Python-Pakete installiert:

easy_install --upgrade pip

pip install BeautifulSoup BeautifulSoup4 passlib pillow dateutils polib unidecode flanker simplejson enum py4j

Node.js

odoo benötigt ab der Version 9 Node.js. Das wird mit den folgenden Befehlen installiert:

npm install -g npm
npm install -g less-plugin-clean-css
npm install -g less

ln -s /usr/bin/nodejs /usr/bin/node
rm /usr/bin/lessc
ln -s /usr/local/bin/lessc /usr/bin/lessc

odoo9.conf

Laden Sie mit

wget https://github.com/pragmasoft-de/odoo9-scripts/blob/master/odoo9.conf.template

die Vorlage für die odoo-Konfig-Datei herunter und kopieren diese mit

cd /etc
mkdir odoo
cd odoo
cp odoo9.conf.template ./odoo9.conf

in das Verzeichnis /etc/odoo. Anschließend ersetzen Sie die in der Datei enthaltenen Platzhalter mit

sed -i s/{{admin_passwd}}/ODOO_ADMIN_PASSWD/ odoo9.conf
sed -i s/{{db_password}}/PG_ROLE_ODOO_PWD/ odoo9.conf
sed -i s/{{db_user}}/PG_ROLE_ODOO_NAME/ odoo9.conf
sed -i s/{{interface_ip}}/INTERFACE_IP/ odoo9.conf

mit den passenden Werten. Ändern Sie dazu die Ausdrücke in Großbuchstaben in die von Ihnen gewünschten Werte.

ODOO_ADMIN_PASSWD ist das Master-Passwort für odoo, das Sie zum Verwalten der Datenbanken (anlegen, sichern, zurücksichern, löschen) benötigen.

PG_ROLE_ODOO_PWD ist das Passwort für den odoo-Datenbankuser, das Sie weiter oben angegeben haben.

PG_ROLE_ODOO_NAME ist der Name des odoo-Datenbankusers (normalerweise odoo).

INTERFACE_IP ist die IP-Adresse, auf der odoo Anfragen entgegennimmt. Setzen Sie die Adresse bitte auf die des externen Interfaces Ihres odoo-Servers.

wkhtmltopdf

odoo benötigt wkhtmltopdf, um Reports im PDF-Format erzeugen zu können. Da die in den Ubuntu-Paketquellen enthaltene Version mit odoo nicht funktioniert, installieren Sie die korrekte Version folgendermaßen:

cd /tmp
mkdir wkhtmltopdf
cd wkhtmltopdf
wget http://download.gna.org/wkhtmltopdf/0.12/0.12.3/wkhtmltox-0.12.3_linux-generic-amd64.tar.xz
unxz wkhtmltox-0.12.3_linux-generic-amd64.tar.xz
tar xvf wkhtmltox-0.12.3_linux-generic-amd64.tar
cd wkhtmltox/bin
cp * /usr/local/bin/
cd /usr/bin
ln -s /usr/local/bin/wkhtmltopdf ./wkhtmltopdf
cd /tmp
rm -rf wkhtmltopdf

Useraccounts

odoo benötigt einen eigenen Ubuntu-User. Dieser wird hier angelegt und mit einem Passwort ausgestattet:

useradd -m -U ODOO_USER_NAME
echo "ODOO_USER_NAME:ODOO_USER_PWD" | chpasswd

Ersetzen Sie dabei ODOO_USER_NAME mit dem Namen des Users (normalerweise odoo) und ODOO_USER_PWD mit dem Passwort Ihrer Wahl.

Vergeben Sie mit

echo "postgres:PG_USER_PWD" | chpasswd

ein Passwort für den User postgres. Statt PG_USER_PWD verwenden Sie auch hier bitte ein Passwort, das Ihren Anforderungen entspricht.

Logfile für odoo

Erzeugen Sie das Verzeichnis für die Logfiles von odoo:

cd /var/log
mkdir odoo
chown odoo.odoo odoo

Beim Befehl chown verwenden Sie dabei den Namen des oben angelegten Ubuntu-Users in der Syntax USERNAME.GRUPPENNAME. Da die Gruppe den selben Namen wie der User hat, lautet der Parameter odoo.odoo, wenn Sie bisher der Anleitung gefolgt sind.

Und jetzt odoo

odoo 9 wird mit den folgenden Befehlen aus dem offiziellen Github-Repository installiert:

cd /opt
mkdir odoo

cd odoo
git clone https://github.com/odoo/odoo --depth 1 -b 9.0
ln -s odoo ./odoo9

Der Download aus dem Repository kann ein wenig dauern.

odoo bringt eine Datei mit, in der alle benötigten Python-Packages enthalten sind. Diese Packages installieren Sie mit

cd odoo9
pip install -r requirements.txt

Dieser Installationsschritt benötigt einige Minuten, bis er fertig ist.

Service zum Starten und Stoppen von odoo 9

Damit odoo 9 beim Start des Ubuntu-Servers automatisch gestartet wird, muss der entsprechende Service angelegt werden. Wechseln Sie mit

cd

ins Homeverzeichnis des root-Users und laden Sie mit

wget https://github.com/pragmasoft-de/odoo9-scripts/blob/master/odoo9.service

die Datei für den Service herunter. Aktivieren Sie den Service mit

cd /etc/systemd/system
cp /root/odoo9.service .
chmod 644 odoo9.service
systemctl preset odoo9.service

Sicherheit

Aus Sicherheitsgründen sollten sich die User odoo und postgres nicht an einer Shell anmelden können. Um die Anmeldung zu verhindern, führen Sie folgende Befehle aus:

usermod -s /bin/false odoo
usermod -s /bin/false postgres

odoo 9 starten

Starten Sie den odoo-Server mit

service odoo9 start

und testen Sie die Verbindung, indem Sie im Browser die URL

http://ip-des-ubuntu-servers:8069

eingeben. Sie sollten dann die Seite zur Datenbankverwaltung erhalten. Hier können Sie Ihre erste odoo-Datenbank anlegen. Hier wird das weiter oben vergebene Master-Passwort benötigt.

Und jetzt?

Viel Spaß mit odoo 9!

Eins noch: das versprochene Installationsskript

Hier noch die Info, wo Sie das oben angekündigte vollständige Installationsskript finden:

git clone https://github.com/pragmasoft-de/odoo9-scripts

Die Hinweise zum Ausführen des Skripts finden Sie unter

https://github.com/pragmasoft-de/odoo9-scripts