Wie installiere ich Odoo 16 ERP Software auf Ubuntu 22.04
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. Sie 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 wird standardmäßig mit 30 Kernmodulen geliefert und bietet mehr als 4500 Community-Module, die dein Unternehmen unterstützen können.
In diesem Tutorial werden wir das Open-Source-ERP Odoo auf einem Ubuntu 22.04 Server installieren. Wir werden die neueste stabile Version von Odoo 16 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 Lernprogramm zu beginnen, brauchst du folgende Voraussetzungen:
- Einen Ubuntu 22.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
Als nächstes installierst du die Paketabhängigkeiten für odoo mit dem folgenden apt-Befehl. Diese Installation umfasst die neueste Version von Python 3.10, 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.
Sobald Python und andere Abhängigkeiten installiert sind, musst du im nächsten Schritt Node.js installieren, das für die Erzeugung statischer Dateien verwendet wird, und das Paket wkhtmltopdf für die 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 16 aus dem Nodesource-Repository eines Drittanbieters.
Führe den folgenden Befehl aus, um das Nodesource-Repository für Node.js 16 herunterzuladen und einzurichten.
sudo curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash -
Mit diesem Befehl lädst du das Installationsskript herunter und führst es aus. Anschließend richtet das Installationsskript automatisch das Repository für Node.js ein, fügt den GPG-Schlüssel hinzu und aktualisiert den Paketindex auf deinem System.
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
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
Installation der Anwendung 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-2/wkhtmltox_0.12.6.1-2.jammy_amd64.deb
Installiere das Wkhtmltopdf-Paket mit dem unten stehenden dpkg-Befehl.
sudo dpkg -i wkhtmltox_0.12.6.1-2.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
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
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
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.
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.
Nachdem du eine Rolle für odoo erstellt hast, richtest du nun die Authentifizierung für die Rolle „odoo“ ein.
Bearbeite die PostgreSQL-Konfiguration „/etc/postgresql/14/main/pg_hba.conf“ mit dem folgenden nano-Editor.
sudo nano /etc/postgresql/14/main/pg_hba.conf
Füge die folgende Konfiguration in die Datei ein. Damit erlaubst du den Zugriff auf PostgreSQL für die Rolle ‚odoo‚ mit dem Passwort ’scram-sha-256‚.
host all odoo 127.0.0.1/32 scram-sha-256
Speichere die Datei und beende den Editor, wenn du fertig bist.
Führe nun den folgenden Befehl aus, um den PostgreSQL-Dienst neu zu starten und die neuen Änderungen zu übernehmen.
sudo systemctl restart postgresql
Melde dich als Benutzer „postgres“ an und überprüfe die Rolle„odoo„, 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 angemeldet hast, überprüfe die folgende Abfrage.
\conninfo
Du solltest jetzt sehen, dass du mit der Rolle „odoo“ mit PostgreSQL verbunden bist.
An dieser Stelle ist die Vorbereitung der PostgreSQL-Datenbank für odoo nun abgeschlossen. Als Nächstes startest du die Odoo-Installation, indem du den Quellcode herunterlädst und die Python-Abhängigkeiten installierst.
Herunterladen von Odoo 16
Für diese Demo wirst du odoo v16 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 16 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 die 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 installierst du das odoo 16.
cd /opt/odoo git clone https://github.com/odoo/odoo.git --depth 1 --branch 16.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
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
Nachdem du die Paketabhängigkeiten für Odoo installiert hast, wirst du als Nächstes die Konfiguration für Odoo erstellen und Odoo als systemd-Dienst einrichten.
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 = odoopass 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 16.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
Überprüfe abschließend den odoo-Dienst, um sicherzustellen, dass der Dienst läuft.
sudo systemctl status odoo-server
Du solltest die Ausgabe erhalten, dass der Dienst„odoo-server“ läuft.
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 laufen lassen 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 anzuwenden.
sudo systemctl restart odoo-server
Überprüfe nun den„odoo-server„-Dienst, um sicherzustellen, dass der Dienst läuft.
sudo systemctl status odoo-server
Als Nächstes wirst du nun 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
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.hwdomain.io; rewrite ^(.*) https://$host$1 permanent; } server { listen 443 ssl http2; server_name odoo.hwdomain.io; 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.hwdomain.io/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/odoo.hwdomain.io/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; # 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 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-Proxys für das odoo ERP abgeschlossen. Du kannst nun über deinen Webbrowser auf die Installation zugreifen.
Führe den folgenden Befehl aus, um den Nginx-Dienst zu überprüfen und sicherzustellen, dass der Dienst läuft.
sudo systemctl restart nginx
Du solltest die Meldung erhalten, dass der Nginx-Dienst läuft.
UFW-Firewall einrichten
Es wird empfohlen, die Firewall in deiner Odoo-Installation zu aktivieren. In diesem Schritt lernst 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 zwei aktivierte Anwendungen sehen: „OpenSSH“ und „Nginx Full„.
sudo ufw status
Migrieren der Datenbank und Installieren von Odoo 16
Öffne deinen Webbrowser und rufe den Domainnamen deiner Odoo-Installation auf (z.B.: https://odoo.hwdomain.io/).
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. Außerdem kannst du das Kontrollkästchen Demodaten aktivieren, um die Demodaten zu deiner Installation hinzuzufügen.
Klicke auf „Datenbank erstellen„, um die Odoo-Installation zu starten.
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„.
Du solltest nun das Odoo-Benutzer-Dashboard erhalten.
Fazit
Herzlichen Glückwunsch! Du hast jetzt das Open-Source-ERP Odoo auf einem Ubuntu 22.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 nun damit beginnen, einige zusätzliche Plugins/Add-ons hinzuzufügen, die für dein Unternehmen geeignet sind.