Howto/Odoo Installation

Achtung!

Die Verwendung dieses Howto geschieht auf eigene Gefahr. Bei Problemen mit der Anleitung melde dies bitte in der dazugehörigen Diskussion und wende dich zusätzlich an den Verfasser des Howtos.

Hinweis:

Diese Howto-Anleitung wurde von christian99x am 5.6.2018 unter Ubuntu 16.04 und am 27.10.2018 unter Ubuntu 18.04 erfolgreich getestet.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

  1. Installation von Programmen

  2. Starten von Programmen

  3. Ein Terminal öffnen

  4. Einen Editor öffnen

  5. Root-Rechte

Inhaltsverzeichnis
  1. Useranlage
  2. Datenbank
  3. Abhängigkeiten installieren
  4. Installation
  5. Konfiguration
  6. Startscript
  7. Automatisierung
  8. Weitere Schritte
  9. Troubleshooting
  10. Links

./odoo-logo.png

Odoo 🇬🇧 ist ein in Python programmiertes Enterprise-Resource-Planning System. Die Software setzt eine PostgreSQL Datenbank voraus und lässt sich in nahezu allen Details an gegebene Anforderungen anpassen. Weitere Informationen sind auf der Herstellerseite verfügbar.

Dieses HowTo soll die nötigen Schritte vorstellen, um eine lauffähige Installation der Odoo Community Edition auf einem Ubuntu Server 14.04 LTS/16.04 LTS/16.10 vorzunehmen. Odoo ist ein außerordentlich mächtiges und komplexes Tool, welches bei entsprechendem Wissen auf nahezu alle Anforderungen maßgeschneidert werden kann. Die Community Edition wird von Odoo kostenfrei zur Verfügung gestellt, inkludiert allerdings keinerlei Support. Darüber hinausgehend wird auch die kostenpflichtige Cloud- und die Enterpriseversion angeboten. Eine Übersicht über die verschiedenen Versionen befindet sich auf der Herstellerseite.

Um Odoo auf einem Ubuntu System zu betreiben empfiehlt sich die auf der Herstellerseite vorgestellte Vorgehensweise, die aktuellste Version aus dem git Repository zu laden und anschließend entsprechend zu konfigurieren.

Der größte Vorteil dieser Vorgehensweise dürfte die – wenn auch unter Umständen ungewohnte – Möglichkeit sein, per git pull Updates direkt vom Hersteller einzuspielen. Weiters gibt sie einem die Möglichkeit, präzise nach Vorgabe/Wunsch zu installieren und später bei fast immer unvermeidlichen Anpassungen nicht nachbessern zu müssen. Auch für Entwicklungs- oder Testsysteme birgt dieser Ansatz große Vorteile, da man ohne großen Aufwand verschiedene Installationen/Versionen parallel betreiben kann.

Useranlage

Als erstes muß ein Benutzer angelegt werden, der Zugriffsberechtigung für die Installationsordner hat und mit dessen ID die erforderlichen Serverprozesse gestartet werden:

sudo adduser -system -home=/opt/odoo -group odoo 

Der Parameter -system bewirkt dabei, dass der angelegte Benutzer keine zugeordnete Login-Shell hat, was aber nicht bedeutet, dass man ich nicht für Shellbefehle verwenden kann:

sudo su - odoo -s /bin/bash 

Datenbank

Odoo setzt PostgreSQL voraus, die Installation gestaltet sich angenehm unkompliziert:

sudo apt-get install postgresql 

Damit nicht mit dem root-User der Postgres Datenbank gearbeitet werden muss, sollte ein neuer Benutzer angelegt werden:

sudo su - postgres
createuser --createdb --username postgres --no-createrole --no-superuser --pwprompt odoo
Enter password for new role: ************
Enter it again: ************
exit 

Abhängigkeiten installieren

Damit die in Odoo implementierten Fähigkeiten und Services funktionieren können, müssen einige Abhängigkeiten erfüllt werden:

Paketliste zum Kopieren:

sudo apt-get install python3-dev python3-pip wkhtmltopdf git npm libxml2-dev libxslt1-dev libevent-dev libpq-dev libjpeg-dev poppler-utils libldap2-dev libsasl2-dev 

Oder mit apturl die Pakete installieren. Link: apt://python3-dev,python3-pip,wkhtmltopdf,git,npm,libxml2-dev,libxslt1-dev,libevent-dev,libpq-dev,libjpeg-dev,poppler-utils,libldap2-dev,libsasl2-dev

Installation

Die Installation von Odoo wird, wie eingangs erwähnt, durch git vorgenommen, da man durch diese Vorgehensweise die Möglichkeit hat, die Software sehr schnell und unkompliziert zu aktualisieren. Außerdem hat man auf diese Weise Zugriff auf die aktuellsten Versionen, noch bevor sie als Paket zur Verfügung stehen. Dies kann hilfreich sein, wenn man beispielsweise von einem Bug betroffen ist, der zwar schon behoben, aber noch nicht in den apt Repositories verfügbar ist.

Sollte git noch nicht auf dem System vorhanden sein muß es installiert werden:

Paketliste zum Kopieren:

sudo apt-get install git 

Oder mit apturl die Pakete installieren. Link: apt://git

Mit dem zuvor erstellten Benutzer werden nun die Dateien per git heruntergeladen:

sudo su - odoo -s /bin/bash
mkdir odoo11
cd odoo11
git clone https://www.github.com/odoo/odoo --depth 1 --branch 11.0 --single-branch .
exit 

Python Module installieren

sudo pip3 install -r requirements.txt 

Less installieren

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

Konfiguration

Im Repository ist bereits eine rudimentäre Konfigurationsdatei für den Server vorhanden, diese kann man als Basis für die eigene Installation verwenden:

sudo cp /opt/odoo/odoo11/debian/odoo.conf /etc/odoo11.conf
sudo chown odoo: /etc/odoo11.conf
sudo chmod 0640 /etc/odoo11.conf 

Die Datei sollte nicht von jedem gelesen werden können, da sich Datenbankzugänge darin befinden. In diesem Fall dürfen nur die User root und odoo schreibend, Mitglieder der Gruppe odoo lesend zugreifen.

Um den Odoo Server starten zu können sind einige kleine Anpassungen in der Konfigurationsdatei vorzunehmen. Dies kann mit einem Texteditor wie z. B. nano erledigt werden. Wichtig ist, den Editor von einem ausreichend berechtigten User aufzurufen, um die vorgenommenen Änderungen auch speichern zu können:

sudo nano -w /etc/odoo11.conf 

In der Konfigurationsdatei müssen die Pfadangaben zu Addon- und Logverzeichnis sowie die Datenbankverbindung (wie zuvor angelegt) angegeben werden:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
db_host = localhost
db_maxconn = 64
db_name = False
db_password = ************
db_port = 5432
db_template = template1
db_user = odoo
addons_path = /opt/odoo/odoo11/addons
logfile = /var/log/odoo/odoo11.log
; Für jede Installation muß ein eigener Port angegeben werden, Standard: 8069
;xmlrpc_port = 8069

Der in der Konfigurationsdatei angegebene Ordner für die Logiles muß manuell erstellt werden, da dieser nicht automatisch angelegt wird:

sudo mkdir /var/log/odoo
sudo chown odoo:root /var/log/odoo 

Der erste Test:

sudo su - odoo -s /bin/bash
/opt/odoo/odoo11/odoo-bin 

Der Server wird dadurch auf der aktuellen Konsole gestartet und man kann dort die Meldungen, die sonst in das angegebene Logfile geschrieben würden, mitverfolgen. Tauchen bei diesem ersten Test keine Fehler auf, kann man den Server mit der Tastenkombination Strg + C beenden.

Hinweis:

Läuft bereits eine andere Instanz auf dem Standardport 8069, muß man mittels Parametrisierung des Aufrufs einen anderen, nicht benutzten Port angeben:

/opt/odoo/odoo11/odoo-bin --xmlrpc-port=8070 

Per

exit 

verläßt man die für den User odoo geöffnete Shell.

Startscript

Um den Server nicht immer von der Shell ausführen zu müssen empfiehlt es sich, ein Startscript zu erstellen und dieses ggf. automatisch ausführen zu lassen. Bei Einsatz von SysVinit gibt es ein vorbereitetes Script, das man als Basis nutzen kann:

sudo cp /opt/odoo/odoo11/debian/init /etc/init.d/odoo11 

Da die Pfadangaben nicht mit der vorliegenden Installation übereinstimmen muß man folgende Variablen anpassen:

1
2
3
DAEMON=/opt/odoo/odoo11/odoo-bin
CONFIG=/etc/odoo11.conf
LOGFILE=/var/log/odoo/odoo11.log

Abschließend setzt man die Berechtigungen für das Script:

sudo chmod 0755 /etc/init.d/odoo11
sudo chown root: /etc/init.d/odoo11 

Für Systemd wird ein Startscript mitgeliefert, welches man benutzen kann

sudo cp /opt/odoo/odoo11/debian/odoo.service /etc/systemd/system/ 

Auch hier muss man die Pfadangabe entsprechend anpassen:

1
ExecStart=/opt/odoo/odoo11/odoo-bin --config /etc/odoo11.conf --logfile /var/log/odoo/odoo11.log

Test des Servers mit Startscript

./odoo-appscreen.png

Start des Odoo Servers mit SysVinit:

sudo service odoo10 start 

Start des Odoo Servers mit Systemd:

sudo systemctl start odoo11.service 

Die Meldungen lassen sich im Logfile verfolgen:

sudo less /var/log/odoo/odoo11.log 

Sollten hier keinerlei Auffälligkeiten oder Fehler/Warnungen verzeichnet sein kann man sich der weiteren Konfiguration durch das Webfrontend zuwenden. Dafür ruft man im Browser sinngemäß die folgende Adresse auf:

http://serveradresse:8069

Nachdem dies der erste Aufruf ist und es dementsprechend noch keine Datenbank für Odoo gibt, wird man sofort zum Datenbank Management weitergeleitet. Das Passwort für dem administrativen Benutzer wird als Klartext in der Konfigurationsdatei gespeichert, daher ist es sehr wichtig, die Zugriffsrechte auf diese Datei gewissenhaft zu setzen. Der letzte Funktionstest ist, den Server per Script zu stoppen und zu kontrollieren, ob dies erfolgreich durchgeführt wird.

SysVinit:

sudo service odoo11 stop 

Systemd:

sudo systemctl odoo11.service stop 

Der Vorgang lässt sich sowohl im Logfile verfolgen (s. o.) als auch über die Prozessliste kontrollieren. Hierfür sucht man in der Ausgabe des Befehls ps nach dem Begriff "odoo":

ps aux | grep odoo 

Läuft eine Instanz des Odoo Servers, sollte jetzt ein Suchergebnis ausgegeben werden, das in etwa wie folgt aussieht:

1
odoo     10769 52.0  1.3 441684 51384 ?        Sl   14:00   0:00 python /opt/odoo/odoo10/odoo-bin --config /etc/odoo10.conf --logfile /var/log/odoo/odoo10.log

Automatisierung

Soll der Odoo Server automatisch beim Systemstart gestartet und beim Herunterfahren gestoppt werden bindet man das Script entsprechend ein.

SysVinit:

sudo update-rc.d odoo11 defaults 

Systemd:

sudo systemctl enable odoo11.service 

Nach einem Neustart des gesamten Systems sollte der Odoo Server automatisch gestartet sein, was sich anhand des Logfiles und der Prozessliste kontrollieren läßt.

Weitere Schritte

Auf der zuvor erwähnten Konfigurationsseite (Datenbank Management System) kann man die zu verwendende Datenbank konfigurieren, im Anschluß sollte man unbedingt das Passwort für den administrativen Benutzer vom Standard "admin" auf einen sicheren Wert ändern. Wie bereits erwähnt ist Odoo ein überaus mächtiges und komplexes Werkzeug, das nach der hier beschriebenen Installation noch einige Konfigurations- und Einrichtungsarbeit erfordert, bevor es wirklich genutzt werden kann. Um Odoo besser kennenzulernen empfiehlt es sich, bei der Ersteinrichtung Beispieldaten in die Datenbank schreiben zu lassen, damit man dadurch eine bessere Vorstellung von den Fähigkeiten dieses ERP Systems bekommen kann.

Troubleshooting

Sollte es bei der Installation von PostgreSQL zu Fehlermeldungen bezüglich falsch gesetzter oder nicht vorhandener locales kommen, muß man sicherstellen, daß auf Server und Client die entsprechenden Einstellungen kompatibel zueinander sind. Verbindet man sich per SSH mit einem Ubuntu 14.04 in Standardkonfiguration werden clientseitig mitgeschickte locales berücksichtigt. Dies kann zu Problemen führen, wenn diese locales nicht auf dem Server vorhanden sind. Lösen kann man dieses Problem auf zwei Wegen:

Deaktivieren von clientseitig mitgeschickten locales in der SSH Serverkonfiguration durch Auskommentieren der Option AcceptEnv

1
2
3
4
5
# /etc/ssh/sshd-config
...
# Allow client to pass locale environment variables
#AcceptEnv LANG LC_*
...

Installation der benötigten locales auf dem Server (im Beispiel deutsch)

  • language-pack-de

Paketliste zum Kopieren:

sudo apt-get install language-pack-de 

Oder mit apturl die Pakete installieren. Link: apt://language-pack-de

Nach einem Neustart des SSH-Servers sollte das Problem behoben sein.