Wie installiere ich die ERP-Software Odoo auf einem Ubuntu 24.04 Server?

Odoo (früher bekannt als OpenERP) ist eine selbst gehostete Suite von über 10.000 offenen Odoo ist eine kostenlose und quelloffene ERP-Lösung für verschiedene Arten von Unternehmen. Odoo, ehemals OpenERP, ist eine ERP- und CRM-Lösung und mehr. Es bietet Kundenbeziehungsmanagement (CRM), Vertriebspipeline, Projektmanagement, Fertigung, Rechnungsstellung, Buchhaltung, eCommerce und vieles mehr.

Odoo ist eine der kompletten ERP-Lösungen für dein Unternehmen. Es verfügt standardmäßig über 30 Kernmodule und bietet mehr als 4500 Community-Module, um deine verschiedenen Unternehmen zu unterstützen.

In diesem Lernprogramm installierst du das Open-Source-ERP Odoo auf dem Ubuntu 24.04 Server. Du wirst die neueste stabile Version von Odoo 17 installieren und konfigurieren, die PostgreSQL-Datenbank für Odoo einrichten und schließlich Nginx als Reverse Proxy für die Odoo-Anwendung einrichten.

Voraussetzungen

Um mit diesem Tutorial zu beginnen, brauchst du die folgenden Voraussetzungen:

  • Einen Ubuntu 24.04-Server – In diesem Beispiel wird ein Ubuntu-Server mit dem Hostnamen „odoo-server“ verwendet.
  • Einen Nicht-Root-Benutzer mit sudo root/administrator-Rechten – oder du kannst auch den Root-Benutzer verwenden.
  • Einen Domainnamen, der auf die IP-Adresse des Servers zeigt – für die Produktion benötigst du einen Domainnamen für die Odoo-Installation.

Installieren der Abhängigkeiten

Um Odoo zu installieren, musst du zunächst einige Paketabhängigkeiten auf deinem Ubuntu-System installieren. Odoo ERP ist eine Webanwendung, die hauptsächlich in Python geschrieben wurde, daher musst du auch einige Python-Pakete installieren.

Bevor du mit der Installation der Pakete beginnst, führe den folgenden apt-Befehl aus, um deinen Paketindex zu aktualisieren und aufzufrischen.

sudo apt update

Repo aktualisieren

Als nächstes installierst du die Paketabhängigkeiten für odoo mit dem folgenden apt-Befehl. Diese Installation umfasst die neueste Version von Python, Build-Essentials zum Kompilieren von Python-Paketen und einige Bibliotheken, die von odoo benötigt werden.

sudo apt install git wget python3 build-essential libzip-dev python3-dev libxslt1-dev python3-pip libldap2-dev python3-wheel libsasl2-dev python3-venv python3-setuptools node-less libjpeg-dev xfonts-75dpi xfonts-base libxrender1 libpq-dev libffi-dev fontconfig

Wenn du dazu aufgefordert wirst, gib y ein, um zu bestätigen, und drücke ENTER, um fortzufahren. Und schon beginnt die Installation.

deps installieren

Sobald Python und andere Abhängigkeiten installiert sind, wird im nächsten Schritt Node.js installiert, das zur Erzeugung statischer Dateien verwendet wird, sowie das Paket wkhtmltopdf zur Erstellung von PDF-Berichten.

Nodejs installieren

Um Odoo zu installieren, musst du sicherstellen, dass Node.js auf deinem System installiert ist. Node.js wird verwendet, um statische Dateien für Odoo-Webanwendungen zu erzeugen. In diesem Schritt installierst du Node.js 20 aus dem Drittanbieter-Repository Nodesource.

Führe den folgenden Befehl aus, um das Nodesource-Repository für Node.js 20 herunterzuladen und einzurichten.

sudo curl -sL https://deb.nodesource.com/setup_20.x | sudo -E bash -

Mit diesem Befehl wird das Installationsskript heruntergeladen und ausgeführt. Das Installer-Skript richtet dann automatisch das Repository für Node.js ein, fügt den GPG-Schlüssel hinzu und aktualisiert automatisch den Paketindex auf deinem System.

Nodejs Repo hinzufügen

Als nächstes führst du den folgenden apt-Befehl aus, um das Node.js-Paket zu installieren. Wenn du dazu aufgefordert wirst, bestätige mit y und drücke ENTER, um fortzufahren.

sudo apt install nodejs

nodejs installieren

Sobald Node.js installiert ist, führe den folgenden npm-Befehl aus, um das Paket„rtlcss“ zu installieren.

Das Paket„rtlcss“ wird für Odoo benötigt, vor allem wenn du die Rechts-nach-Links-Benutzeroberfläche für bestimmte Sprachen wie Arabisch und Hebräisch verwendest.

sudo npm install -g rtlcss

rtlcss installieren

Installation von Wkhtmltopdf

Für das Open-Source-ERP odoo muss das Paket wkhtmltopdf installiert werden. Dieses Paket wird für die Umwandlung von HTML-Seiten in PDF und verschiedene Bildformate über das Qt Webkit benötigt. Das wkhtmltopdf-Paket wird manuell über das .deb-Paket auf dem Ubuntu-System installiert.

Führe den folgenden Befehl aus, um die .deb-Datei des Wkhtmltopdf-Pakets herunterzuladen.

cd /tmp
wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-3/wkhtmltox_0.12.6.1-3.jammy_amd64.deb

Installiere das Wkhtmltopdf-Paket mit dem unten stehenden dpkg-Befehl.

sudo dpkg -i wkhtmltox_0.12.6.1-3.jammy_amd64.deb

Wenn du eine Fehlermeldung erhältst, wie z.B. ein fehlendes Paket, behebe sie mit dem folgenden apt-Befehl.

sudo apt install -f

wkhtmltopdf installieren

Nachdem Wkhtmltopdf installiert ist, kannst du die Binärdatei des Wkhtmltopdf-Pakets überprüfen, die standardmäßig im Verzeichnis„/usr/local/bin“ verfügbar ist. Du solltest zwei Programme sehen: „wkhtmltopdf“ und„wkhtmltoimage„.

ls /usr/local/bin

Führe nun den folgenden Befehl aus, um die Umgebungsvariable $PATH zu überprüfen und stelle sicher, dass das Verzeichnis„/usr/local/bin“ im binären $PATH verfügbar ist. Andernfalls wird das Wkhtmltopdf-Paket nicht richtig funktionieren.

echo $PATH

Führe abschließend den folgenden Befehl aus, um sicherzustellen, dass der Binärpfad für das Wkhtmltopdf-Paket verfügbar ist. Wenn das Wkhtmltopdf-Paket verfügbar ist, solltest du eine Ausgabe mit dem vollständigen Pfad des Wkhtmltopdf-Pakets erhalten.

which wkhtmltopdf
which wkhtmltoimage

wkhtmltopdf prüfen

Installation des PostgreSQL-Datenbank-Servers

Das Open-Source-ERP odoo unterstützt Datenbanken wie MySQL, SQLite und PostgreSQL. In diesem Schritt wirst du PostgreSQL als Standarddatenbank für deine odoo-Installation installieren und verwenden. Du wirst auch die PostgreSQL-Rolle einrichten und Änderungen an der PostgreSQL-Konfiguration vornehmen.

Führe den folgenden apt-Befehl aus, um den PostgreSQL-Datenbankserver zu installieren. Wenn du zur Bestätigung aufgefordert wirst, gib y ein und drücke ENTER.

sudo apt install postgresql

install postgresql

Nachdem PostgreSQL installiert ist, führe den folgenden Befehl aus, um PostgreSQL zu überprüfen und sicherzustellen, dass der Dienst aktiviert ist und läuft.

sudo systemctl is-enabled postgresql
sudo systemctl status postgresql

In der folgenden Ausgabe kannst du sehen, dass der PostgreSQL-Dienst aktiviert ist und beim Systemstart automatisch ausgeführt wird. Und der Status von PostgreSQL ist running.

postgresqlk prüfen

Als Nächstes wirst du eine neue Rolle für Odoo erstellen. Führe den folgenden Befehl aus, um dich mit dem Benutzer„postgres“ anzumelden und eine neue Rolle mit dem Namen„odoo“ zu erstellen.

su - postgres
createuser -sdP odoo

Gib das Passwort für die neue Rolle„odoo“ ein und wiederhole es.

Melde dich nun mit dem Befehl psql in der PostgreSQL-Shell an.

psql

Führe die folgende Abfrage aus, um die Liste der Rollen in PostgreSQL zu überprüfen und stelle sicher, dass die Rolle„odoo“ verfügbar ist.

\du

Gib nun„\q“ ein, um die PostgreSQL-Shell zu verlassen. Dann gibst du„exit“ ein, um dich als PostgreSQL-Benutzer abzumelden.

Postgres-Benutzer anlegen und überprüfen

Nachdem du nun eine Rolle für odoo erstellt hast, testest du die Authentifizierung für die Rolle „odoo“.

Melde dich als„postgres„-Benutzer an und überprüfe die „odoo“-Rolle, indem du dich mit dem Befehl psql in die PostgreSQL-Shell einloggst (siehe unten).

su - postgres
psql -h 127.0.0.1 -U odoo -d postgres

Nachdem du dich eingeloggt hast, überprüfst du sie mit der folgenden Abfrage.

\conn

Du solltest nun sehen, dass du mit der Rolle„odoo“ mit PostgreSQL verbunden bist.

mit Postgresql verbinden

An dieser Stelle ist die Vorbereitung der PostgreSQL-Datenbank für odoo nun abgeschlossen. Als Nächstes beginnst du mit der Odoo-Installation, indem du den Quellcode herunterlädst und die Python-Abhängigkeiten installierst.

Herunterladen von Odoo 17

Für diese Demo wirst du odoo v17 mit dem Benutzer „odoo“ einrichten und ausführen. Also erstellst du jetzt einen neuen Unix-Benutzer „odoo“ und lädst die neueste Version des Quellcodes von odoo 17 herunter.

Führe den folgenden Befehl aus, um einen neuen Benutzer„odoo“ anzulegen. In diesem Beispiel wäre das Standard-Home-Verzeichnis für den Benutzer„odoo„/opt/odoo“ und die Standard-Shell ist bash.

sudo adduser --system --group --home=/opt/odoo --shell=/bin/bash odoo

Verschiebe nun das Arbeitsverzeichnis nach„/opt/odoo“ und lade den Quellcode von odoo mit dem folgenden git-Befehl herunter. In diesem Beispiel wirst du odoo 17 installieren.

cd /opt/odoo
git clone https://github.com/odoo/odoo.git --depth 1 --branch 17.0 --single-branch odoo-server

Du solltest nun das neue Verzeichnis„odoo-server“ innerhalb des Verzeichnisses„/opt/odoo“ erhalten.

Zum Schluss führst du den folgenden Befehl aus, um die Eigentumsrechte am odoo-Quellcode auf den Benutzer und die Gruppe„odoo“ zu ändern.

sudo chown -R odoo:odoo /opt/odoo/odoo-server

Nachdem du den odoo-Quellcode heruntergeladen hast, beginnst du als Nächstes mit der Installation der Python-Paketabhängigkeiten für odoo.

Installation der Python-Abhängigkeiten für Odoo

In diesem Schritt richtest du die virtuelle Python-Umgebung für odoo ein und installierst die Python-Abhängigkeiten mit dem Befehl pip3.

Verschiebe das Arbeitsverzeichnis nach „/opt/odoo/odoo-server“ und erstelle eine neue virtuelle Python-Umgebung „venv“ mit dem folgenden Befehl.

cd /opt/odoo/odoo-server
python3 -m venv venv

Aktiviere anschließend die virtuelle Python-Umgebung „venv“ mit dem folgenden Befehl.

source venv/bin/activate

Nachdem du die virtuelle Python-Umgebung aktiviert hast, siehst du, dass sich deine aktuelle Shell wie folgt ändert: „(venv) root@hostname...“.

Führe nun den folgenden pip3-Befehl aus, um das Python-Paket wheel zu installieren und installiere die Python-Abhängigkeiten von odoo über die Datei requirements.txt.

pip3 install wheel
pip3 install -r requirements.txt

deps odoo installieren

Nachdem die Python-Abhängigkeiten installiert sind, führe den folgenden Befehl aus, um die virtuelle Python-Umgebung „venv“ zu verlassen.

deactivate

Du hast nun den odoo-Quellcode heruntergeladen und die Python-Abhängigkeiten installiert. Als Nächstes wirst du eine neue Konfiguration und ein neues Verzeichnis für die Odoo-Installation erstellen.

Odoo-Konfiguration erstellen

Erstelle eine neue Konfigurationsdatei„/etc/odoo.conf“ mit dem folgenden nano-Editor.

sudo nano /etc/odoo.conf

Füge die folgende Konfiguration in die Datei ein. Achte darauf, dass du den„admin_passwd“ und die Details Datenbankbenutzer und Passwort mit deinen Daten änderst.

[options]
; This is the password that allows database operations:
admin_passwd = adminpassodoo
db_host = 127.0.0.1
db_port = 5432
db_user = odoo
db_password = odoo
addons_path = /opt/odoo/odoo-server/addons
xmlrpc_port = 8069
logfile = /var/log/odoo/odoo-server.log
log_level = debug

Speichere die Datei und beende den Editor.

Ändere nun den Eigentümer der Odoo-Konfigurationsdatei „/etc/odoo.conf“ auf den Systembenutzer „odoo“.

sudo chown odoo:odoo /etc/odoo.conf

Als Nächstes führst du den folgenden Befehl aus, um ein neues Verzeichnis zu erstellen, in dem die Logs für odoo gespeichert werden sollen.

sudo mkdir /var/log/odoo

Dann änderst du den Eigentümer des Odoo-Log-Verzeichnisses„/var/log/odoo“ auf den Benutzer„odoo“ und änderst die Berechtigung auf 755.

sudo chown odoo:odoo /var/log/odoo
sudo chmod 755 /var/log/odoo

Odoo als Systemd-Dienst ausführen

Jetzt kannst du odoo manuell über die Kommandozeile starten. Um es einfacher zu machen, kannst du odoo als Systemd-Dienst ausführen. So kannst du odoo über den Befehl systemctl verwalten.

Du wirst nun eine neue systemd-Dienstdatei erstellen und odoo als systemd-Dienst ausführen.

Um zu beginnen, erstelle eine neue systemd-Dienstdatei „/lib/systemd/system/odoo-server.service“ mit dem folgenden nano-Editor.

sudo nano /lib/systemd/system/odoo-server.service

Füge die folgende Konfiguration in die Datei ein.

[Unit]
Description=Odoo 17.0 Service
Requires=postgresql.service
After=network.target postgresql.service
[Service]
Type=simple
SyslogIdentifier=odoo
PermissionsStartOnly=true
User=odoo
Group=odoo
ExecStart=/opt/odoo/odoo-server/venv/bin/python3 /opt/odoo/odoo-server/odoo-bin -c /etc/odoo.conf
StandardOutput=journal+console

[Install]
WantedBy=multi-user.target

Speichere die Datei und beende den Editor, wenn du fertig bist.

Als Nächstes lädst du den systemd Manager neu, um die neue Servicedatei mit dem folgenden systemctl-Befehl anzuwenden.

sudo systemctl daemon-reload

Starte und aktiviere den Dienst „odoo-server“ mit dem folgenden Befehl.

sudo systemctl start odoo-server
sudo systemctl enable odoo-server

Odoo-Dienst einrichten

Überprüfe abschließend den odoo-Dienst, um sicherzustellen, dass er läuft.

sudo systemctl status odoo-server

Du solltest die Ausgabe erhalten, dass der Dienst„odoo-server“ läuft.

odoo prüfen

Odoo mit Nginx Reverse Proxy betreiben

Der empfohlene Weg, Odoo in der Produktion einzusetzen, ist die Verwendung des Reverse Proxy. So kannst du Odoo nur auf dem Localhost ausführen und alle Client-Zugriffe werden über den Reverse Proxy abgewickelt.

In diesem Schritt installierst du den Nginx-Webserver und richtest ihn als Reverse-Proxy für die odoo-Webanwendung ein. Außerdem wird die Odoo-Installation mit SSL gesichert. Bevor du mit der Konfiguration von Nginx beginnst, musst du sicherstellen, dass der Domainname auf die IP-Adresse des Servers zeigt und du SSL Letsencrypt generiert hast.

Ändere zunächst die odoo-Konfigurationsdatei„/etc/odoo.conf“ mit dem folgenden nano-Editor.

sudo nano /etc/odoo.conf

Füge die folgende Konfiguration in die Datei ein. Mit dieser Konfiguration wird odoo als Backend-Anwendung ausgeführt, die auf 127.0.0.1 laufen wird.

xmlrpc_interface = 127.0.0.1
proxy_mode = True

Speichere die Datei und beende den Editor, wenn du fertig bist.

Führe nun den folgenden Befehl aus, um den Dienst „odoo-server“ neu zu starten und die neuen Änderungen zu übernehmen.

sudo systemctl restart odoo-server

Als Nächstes wirst du Nginx installieren und konfigurieren.

Führe den folgenden apt-Befehl aus, um das Nginx-Webserverpaket zu installieren. Gib y ein, wenn du dazu aufgefordert wirst, und drücke ENTER, um die Installation zu bestätigen.

sudo apt install nginx

nginx installieren

Nachdem Nginx installiert ist, erstellst du mit dem folgenden nano-Editor eine neue Nginx-Serverblock-Konfiguration „/etc/nginx/sites-available/odoo.conf“.

sudo nano /etc/nginx/sites-available/odoo.conf

Füge die unten stehende Konfiguration in die Datei ein und achte darauf, dass du den Domainnamen und den Pfad der SSL-Zertifikate mit deinen Einstellungen abänderst.

#odoo server
upstream odoo {
server 127.0.0.1:8069;
}
upstream odoochat {
server 127.0.0.1:8072;
}
# http -> https
server {
listen 80;
server_name odoo.howtoforge.local;
rewrite ^(.*) https://$host$1 permanent;
}

server {
listen 443 ssl http2;
server_name odoo.howtoforge.local;
proxy_read_timeout 720s;
proxy_connect_timeout 720s;
proxy_send_timeout 720s;

# Add Headers for odoo proxy mode
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;

# SSL parameters
ssl_certificate /etc/letsencrypt/live/odoo.howtoforge.local/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/odoo.howtoforge.local/privkey.pem;
ssl_session_timeout 1d;
ssl_session_cache shared:MozSSL:10m; # about 40000 sessions
ssl_session_tickets off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;
ssl_dhparam /etc/ssl/certs/dhparam.pem;

# log
access_log /var/log/nginx/odoo.access.log;
error_log /var/log/nginx/odoo.error.log;

# Redirect longpoll requests to odoo longpolling port
location /longpolling {
proxy_pass http://odoochat;
}

# Redirect requests to the odoo backend server
location / {
proxy_redirect off;
proxy_pass http://odoo;
}

# common gzip
gzip_types text/css text/scss text/plain text/xml application/xml application/json application/javascript;
gzip on;
}

Speichere die Datei und schließe den Editor, wenn du fertig bist.

Aktiviere nun die neue Nginx-Serverblockkonfiguration und überprüfe die Nginx-Konfiguration, um sicherzustellen, dass du die richtigen Konfigurationen hast.

sudo ln -s /etc/nginx/sites-available/odoo.conf /etc/nginx/sites-enabled/
sudo nginx -t

Wenn deine Konfigurationen korrekt sind, siehst du eine Meldung wie „Test erfolgreich – Syntax OK“.

Zum Schluss führst du den folgenden systemctl-Befehl aus, um den Nginx-Dienst neu zu starten und die neuen Änderungen zu übernehmen.

sudo systemctl restart nginx

Damit hast du die Installation und Konfiguration des Nginx Reverse Proxy für odoo ERP abgeschlossen. Du kannst nun über deinen Webbrowser auf die Installation zugreifen.

nginx prüfen

Einrichten der UFW-Firewall

Es wird empfohlen, die Firewall für deine Odoo-Installation zu aktivieren. In diesem Schritt erfährst du, wie du die UFW-Firewall einrichtest.

Standardmäßig ist auf dem allgemeinen Ubuntu-Server das ufw-Paket installiert, du kannst also einfach mit der Konfiguration beginnen.

Führe den folgenden Befehl aus, um die OpenSSH-Anwendung zur ufw-Firewall hinzuzufügen. Starte dann die ufw und aktiviere sie.

sudo ufw allow "OpenSSH"
sudo ufw enable

Wenn du zur Bestätigung aufgefordert wirst, gib y ein und drücke ENTER, um fortzufahren. Der ufw-Firewalldienst ist nun aktiviert und läuft.

Als Nächstes führst du den folgenden Befehl aus, um die Anwendung„Nginx Full“ hinzuzufügen. Dieses Anwendungsprofil wird von den Nginx-Paketen bei der Standardinstallation bereitgestellt und öffnet sowohl HTTP- als auch HTTPS-Ports für deine Anwendung.

sudo ufw allow "Nginx Full"

Überprüfe abschließend die Liste der aktivierten Regeln in ufw. Du solltest sehen, dass die beiden Anwendungen„OpenSSH“ und„Nginx Full“ aktiviert sind.

sudo ufw status

ufw-Einrichtung

Odoo-Datenbankmigration und die Installation

Öffne deinen Webbrowser und rufe den Domainnamen deiner Odoo-Installation auf (z.B.: https://odoo.howtoforge.local/).

Als erstes musst du die Datenbank für odoo migrieren und einen neuen Administrator-Benutzer anlegen.

Das Master-Passwort ist hier das„admin_passwd„, das du gerade in der Datei„/etc/odoo.conf“ hinzugefügt hast.

Gib den neuen Datenbanknamen ein, der automatisch erstellt wird, und gib die Details für den neuen Administrator-Benutzer und das Passwort für deine Odoo-Installation ein. Du kannst auch das Kontrollkästchen Demodaten aktivieren, um die Demodaten zu deiner Installation hinzuzufügen.

Klicke auf„Datenbank erstellen„, um die Odoo-Installation zu starten.

odoo installieren

Nach der Installation von odoo wirst du auf die Anmeldeseite von odoo weitergeleitet. Gib die Admin-E-Mail und das Passwort für dein Odoo ein und klicke auf„Anmelden„.

odoo anmelden

Du solltest nun das Odoo-Benutzer-Dashboard erhalten.

Dashboard odoo

Fazit

Herzlichen Glückwunsch! Du hast jetzt Odoo, das Open-Source-ERP, auf einem Ubuntu 24.04 Server installiert. Du hast nun auch die grundlegende Installation des PostgreSQL-Datenbank-Servers und des Nginx-Webservers, der als Reverse-Proxy konfiguriert ist, kennengelernt.

An diesem Punkt hast du die Odoo-Installation auf deinem Ubuntu-Server vollständig abgesichert. Du kannst jetzt damit beginnen, einige zusätzliche Plugins/Add-ons hinzuzufügen, die für dein Unternehmen geeignet sind.

Das könnte dich auch interessieren …