GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So installieren Sie die Odoo 14 ERP-Software auf Ubuntu 20.04

Odoo (früher bekannt als OpenERP) ist eine selbst gehostete Suite mit über 10.000 Open-Source-Anwendungen, die für eine Vielzahl von Geschäftsanforderungen geeignet sind, darunter CRM, E-Commerce, Buchhaltung, Inventar, Projektmanagement und Point of Sale. Diese Anwendungen sind vollständig integriert und werden über eine gemeinsame Webschnittstelle aufgerufen.

In diesem Tutorial lernen wir, Odoo 14 Stack auf einem Ubuntu 20.04-basierten Server zu installieren.

Voraussetzungen

  1. Ein Ubuntu 20.04-basierter Server mit mindestens 2 GB RAM zum Hosten von Odoo Stack.

  2. Ein zweiter Ubuntu 20.04-basierter Server mit mindestens 2 GB RAM zum Hosten der PostgreSQL-Datenbank. Sie können die Datenbank jedoch auf demselben Server wie Odoo installieren, aber für Produktionsumgebungen wird dringend empfohlen, sie auf einem separaten Server zu installieren. Sie können auch eine der verwalteten Datenbankoptionen auswählen, die von einem beliebigen Anbieter Ihrer Wahl verfügbar sind.

  3. Die RAM-Anforderung hängt von der Anzahl der gleichzeitigen Benutzer ab, die den Stack verwenden werden. Eine detaillierte Anleitung zur Berechnung der Systemvoraussetzungen finden Sie in der Dokumentation von Odoo.

  4. Halten Sie Ihre Systeme auf dem neuesten Stand.

    $ sudo apt update
    $ sudo apt upgrade
    
  5. Ein Nicht-Root-Benutzer mit sudo-Berechtigungen auf beiden Servern.

Firewall-Regeln konfigurieren

Für dieses Tutorial gehen wir davon aus, dass Sie ufw haben Firewall auf beiden Servern installiert.

Auf dem Odoo-Server müssen die Ports 22, 80, 443, 6010, 5432 und 8069 geöffnet sein. 22 wird für SSH verwendet, 80 für HTTP, 443 für HTTPS, 6010 für die Odoo-Kommunikation, 5432 für PostgreSQL und 8069 für die Odoo-Serveranwendung.

Führen Sie die folgenden Befehle aus, um die erforderlichen Ports auf dem Odoo-Server zu öffnen.

$ sudo ufw allow "OpenSSH"
$ sudo ufw allow 80,443,6010,5432,8069,8072/tcp
$ sudo ufw allow 80/tcp
$ sudo ufw allow 443/tcp
$ sudo ufw allow 6010/tcp
$ sudo ufw allow 5432/tcp
$ sudo ufw allow 8069/tcp
$ sudo ufw allow 8072/tcp

Auf dem PostgreSQL-Server müssen wir die Ports 22, 6010 und 5432 öffnen. Öffnen Sie sie mit den gerade besprochenen Befehlen.

Hostnamen zuweisen

Sie können entweder die IP-Adressen der Server oder, falls verfügbar, deren vollqualifizierte Domänennamen (FQDN) verwenden. Für unser Tutorial werden wir FQDNs verwenden und dafür müssen wir Hostnamen auf beiden Servern festlegen.

Öffnen Sie auf dem Odoo-Server die Datei /etc/hosts Datei.

$ sudo nano /etc/hosts

Stellen Sie sicher, dass es wie folgt aussieht.

127.0.0.1 	localhost
127.0.0.1	odoo.yourdomain.com		odoo
10.1.1.10	postgresql.yourdomain.com	postgresql

Öffnen Sie auf dem PostgreSQL-Server die Datei und vergewissern Sie sich, dass sie wie folgt aussieht.

127.0.0.1 	localhost
127.0.0.1	postgresql.yourdomain.com	postgresql
10.1.2.10	odoo.yourdomain.com		odoo

Drücken Sie Strg + X um den Editor zu schließen und drücken Sie Y wenn Sie aufgefordert werden, die Datei zu speichern.

PostgreSQL installieren und konfigurieren

Ubuntu 20.04 wird standardmäßig mit PostgreSQL 12 ausgeliefert und wir werden das installieren. Führen Sie den folgenden Befehl auf dem PostgreSQL-Server aus.

$ sudo apt install postgresql-12 postgresql-server-dev-12

Als nächstes müssen wir einen Datenbankbenutzer odoo. erstellen

$ sudo -u postgres createuser odoo -U postgres -dP

Die Option -u führt den Befehl als postgres aus Benutzer.

Die Option -U Geben Sie den Benutzernamen an, unter dem die Verbindung hergestellt werden soll.

Die Option -d erteilt dem Benutzer die Berechtigung zum Erstellen von Datenbanken.

Die Option -p fragt nach dem Passwort des neuen Benutzers.

Hostbasierte Authentifizierung konfigurieren

Wir müssen dem PostgreSQL-Dienst die Erlaubnis erteilen, sich mit dem Odoo-Server verbinden zu können.

Stoppen Sie zuerst den PostgreSQL-Dienst.

$ sudo systemctl stop postgresql

Öffnen Sie die Datei /etc/postgresql/12/main/pg_hba.conf zum Bearbeiten.

$ sudo nano /etc/postgresql/12/main/pg_hba.conf

Fügen Sie am Ende die folgende Zeile ein.

host		all		odoo		odoo.yourdomain.com		md5

Diese Zeile erteilt dem odoo die Erlaubnis Benutzer, um sich mit allen Datenbanken auf diesem Server zu verbinden. Sie können auch den Namen der Datenbanken angeben, anstatt all zu verwenden Schlüsselwort.

Drücken Sie Strg + X um den Editor zu schließen und drücken Sie Y wenn Sie aufgefordert werden, die Datei zu speichern.

PostgreSQL-Listening-Adresse konfigurieren

Als nächstes müssen wir dem Datenbankserver erlauben, auf entfernte Verbindungen zu lauschen. Öffnen Sie die Datei /etc/postgresql/12/main/postgresql.conf zum Bearbeiten.

$ sudo nano /etc/postgresql/12/main/postgresql.conf

Ändern Sie die Zeile listen_addresses von

#listen_addresses = 'localhost' # what IP address(es) to listen on;

zu.

#From CONNECTIONS AND AUTHENTICATION Section
listen_addresses = '*'

Der * bedeutet, dass alle IP-Adressen abgehört werden. Sie können es in die IP-Adresse Ihrer Odoo-Instanz ändern.

Drücken Sie Strg + X um den Editor zu schließen und drücken Sie Y wenn Sie aufgefordert werden, die Datei zu speichern.

PostgreSQL-Dienst aktivieren und starten

Da unsere Konfiguration abgeschlossen ist, ist es an der Zeit, den PostgreSQL-Dienst zu starten und zu aktivieren.

$ sudo systemctl start postgresql && sudo systemctl enable postgresql

Installieren Sie Odoo

Installieren Sie Abhängigkeiten und bereiten Sie die Installation vor

Erstellen Sie einen neuen Systembenutzer zur Verwaltung der Odoo-Prozesse auf dem Odoo-Server.

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

Wir müssen einige Systemabhängigkeiten installieren, aber zuerst müssen wir Quellrepositorys aktivieren. Sichern Sie dazu die ursprüngliche Quellenliste und aktivieren Sie dann alle Quell-Repositories und aktualisieren Sie die Repository-Liste.

$ sudo cp /etc/apt/sources.list /etc/apt/sources.list~
$ sudo sed -Ei 's/^# deb-src /deb-src /' /etc/apt/sources.list
$ sudo apt update

Installieren Sie Systemabhängigkeiten, die für die Einrichtung von Odoo 14 erforderlich sind.

 $ sudo apt install python3-pip python3-suds python3-all-dev python3-venv python3-dev python3-setuptools python3-tk libxml2-dev libxslt1-dev libevent-dev libsasl2-dev libldap2-dev pkg-config libtiff5-dev libjpeg8-dev libjpeg-dev zlib1g-dev libfreetype6-dev liblcms2-dev liblcms2-utils libwebp-dev tcl8.6-dev tk8.6-dev libyaml-dev fontconfig xfonts-75dpi xfonts-base xfonts-encodings xfonts-utils libpq-dev
$ sudo apt build-dep lxml

Installieren Sie Nodejs.

$ sudo curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
$ sudo apt install nodejs

Installieren Sie das Less CSS-Paket mit Node.

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

Laden Sie wkhtmltopdf herunter Version 0.12.6-Paket.

$ cd /tmp
$ wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.focal_amd64.deb

Installieren Sie das Paket.

$ sudo dpkg -i wkhtmltox_0.12.6-1.focal_amd64.deb

Um sicherzustellen, dass wkhtmltopdf korrekt funktioniert, kopieren Sie die Binärdateien nach /usr/bin und geben Sie ihnen die richtigen Berechtigungen.

$ sudo cp /usr/local/bin/wkhtmlto* /usr/bin/
$ sudo chmod a+x /usr/bin/wk*
$ cd ~

Laden Sie Odoo-Dateien herunter

Klonen Sie das Github-Repository von Odoo auf Ihr System.

$ sudo git clone https://github.com/odoo/odoo.git --depth 1 --branch 14.0 --single-branch /opt/odoo

Für unseren Zweck kopieren wir Odoo nach /opt/odoo Verzeichnis, aus dem es installiert wird.

Virtualenv-Python-Umgebung einrichten

Dieser Schritt ist optional, wird jedoch empfohlen, da eine virtuelle Python-Umgebung für Odoo dabei hilft, Konflikte mit Python-Modulen des Betriebssystems zu vermeiden, insbesondere bei der Durchführung von Betriebssystem-Upgrades.

Dafür verwenden wir virtualenv .

  1. Erstellen Sie ein neues virtualenv Umgebung für Odoo.

    $ python3 -m venv /home/<username>/odoo-env
    
  2. Aktivieren Sie die virtuelle Umgebung. Wir erstellen eine Umgebung unter dem Home-Verzeichnis des Systembenutzers. Es steht Ihnen frei, einen beliebigen Ort zu wählen.

    $ source /home/<username>/odoo-env/bin/activate
    
  3. Aktualisieren Sie PIP für alle Fälle.

    (odoo-env) $ pip3 install --upgrade pip
    
  4. Installieren Sie das Rad von Python in der virtuellen Umgebung.

    $ pip3 install wheel
    

Python-Abhängigkeiten installieren

Installieren Sie die für Odoo 14 erforderlichen Python-Abhängigkeiten.

$ pip3 install -r /opt/odoo/doc/requirements.txt
$ pip3 install -r /opt/odoo/requirements.txt

Die Installation der Anforderungen wird einige Zeit in Anspruch nehmen, seien Sie also geduldig.

Überprüfen Sie, ob die Anforderungen korrekt installiert sind, indem Sie die Liste der installierten Python-Module überprüfen.

$ pip3 list
Package                       Version
----------------------------- ---------
alabaster                     0.7.12
appdirs                       1.4.4
attrs                         20.3.0
Babel                         2.6.0
beautifulsoup4                4.9.3
cached-property               1.5.2
certifi                       2020.12.5
chardet                       3.0.4
decorator                     4.3.0
defusedxml                    0.7.1
docutils                      0.14
ebaysdk                       2.1.5
feedparser                    5.2.1
freezegun                     0.3.15
gevent                        20.9.0
greenlet                      0.4.17
html2text                     2018.1.9
idna                          2.6
imagesize                     1.2.0
isodate                       0.6.0
Jinja2                        2.11.2
libsass                       0.17.0
lxml                          4.6.1
Mako                          1.0.7
MarkupSafe                    1.1.0
num2words                     0.5.6
ofxparse                      0.19
packaging                     20.9
passlib                       1.7.1
Pillow                        8.0.1
pip                           21.0.1
pkg-resources                 0.0.0
polib                         1.1.0
psutil                        5.6.6
psycopg2                      2.8.5
pyasn1                        0.4.8
pyasn1-modules                0.2.8
pydot                         1.4.1
Pygments                      2.8.1
pyparsing                     2.4.7
PyPDF2                        1.26.0
pyserial                      3.4
python-dateutil               2.7.3
python-ldap                   3.1.0
python-stdnum                 1.8
pytz                          2019.1
pyusb                         1.0.2
qrcode                        6.1
reportlab                     3.5.55
requests                      2.21.0
requests-toolbelt             0.9.1
setuptools                    44.0.0
six                           1.15.0
snowballstemmer               2.1.0
soupsieve                     2.2
Sphinx                        3.5.2
sphinx-patchqueue             1.0.4
sphinxcontrib-applehelp       1.0.2
sphinxcontrib-devhelp         1.0.2
sphinxcontrib-htmlhelp        1.0.3
sphinxcontrib-jsmath          1.0.1
sphinxcontrib-qthelp          1.0.3
sphinxcontrib-serializinghtml 1.1.4
unidiff                       0.6.0
urllib3                       1.24.3
vobject                       0.9.6.1
Werkzeug                      0.16.1
wheel                         0.36.2
xlrd                          1.2.0
XlsxWriter                    1.1.2
xlwt                          1.3.0
zeep                          3.2.0
zope.event                    4.5.0
zope.interface                5.2.0

Beenden Sie die virtuelle Python-Umgebung.

$ deactivate

Odoo konfigurieren

Kopieren Sie die standardmäßige Odoo-Konfigurationsdatei, um eine neue zu erstellen.

$ sudo cp /opt/odoo/debian/odoo.conf /etc/odoo-server.conf

Öffnen Sie die Datei zum Bearbeiten.

$ sudo nano /etc/odoo-server.conf

Bearbeiten Sie die Datei so, dass sie wie folgt aussieht.

[options]
; This is the password that allows database operations:
admin_passwd = admin
db_host = postgresql.yourdomain.com
db_port = False
db_user = odoo
db_password = odoo_password
addons_path = /opt/odoo/addons
xmlrpc_port = 8069

Drücken Sie Strg + X um den Editor zu schließen und drücken Sie Y wenn Sie aufgefordert werden, die Datei zu speichern.

Die Option admin_passwd ist das Passwort, das administrative Vorgänge innerhalb der Odoo-GUI ermöglicht. Achten Sie darauf, ein sicheres Passwort zu wählen.

Die Option db_host ist der FQDN oder die IP-Adresse des PostgreSQL-Servers.

Die Option db_port auf „false“ gesetzt, da der standardmäßige PostgreSQL-Port 5432 verwendet wird. Wenn Sie einen anderen Port verwenden möchten, müssen Sie diesen Wert aktualisieren.

Die Option db_user ist der Name des PostgreSQL-Benutzers.

Die Option db_password ist das PostgreSQL-'odoo'-Benutzerkennwort, das wir zuvor auf dem PostgreSQL-Server erstellt haben.

Die Option addons_path ist der Standard-Addons-Pfad. Sie können auch einen benutzerdefinierten Pfad für Add-Ons hinzufügen, indem Sie sie durch Kommas trennen.

Die Option xmlrpc_port ist der Port, auf dem Odoo lauscht.

Odoo-Dienst erstellen

Um sicherzustellen, dass Odoo auch nach einem Systemneustart weiterläuft, müssen wir einen Dienst dafür erstellen.

Erstellen Sie eine Datei /lib/systemd/system/odoo-server.service und zum Bearbeiten öffnen.

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

Fügen Sie den folgenden Code ein.

[Unit]
Description=Odoo Open Source ERP and CRM

[Service]
Type=simple
PermissionsStartOnly=true
SyslogIdentifier=odoo-server
User=odoo
Group=odoo
ExecStart=/home/<username>/odoo-env/bin/python3 /opt/odoo/odoo-bin --config=/etc/odoo-server.conf --addons-path=/opt/odoo/addons/
WorkingDirectory=/opt/odoo/
StandardOutput=journal+console

[Install]
WantedBy=multi-user.target

Ersetzen Sie /home/<username> mit dem Speicherort, den Sie für die Installation von Python Virtual Environment ausgewählt haben.

Drücken Sie Strg + X um den Editor zu schließen und drücken Sie Y wenn Sie aufgefordert werden, die Datei zu speichern.

Dateiberechtigungen festlegen

Legen Sie Berechtigungen für den odoo-server.service fest Datei, sodass nur Odoo-Benutzer sie lesen oder ausführen können.

$ sudo chmod 755 /lib/systemd/system/odoo-server.service
$ sudo chown odoo: /lib/systemd/system/odoo-server.service

Legen Sie den Besitz der Python-Umgebung und des Odoo-Installationsverzeichnisses fest.

$ sudo chown -R odoo: /opt/odoo/
$ sudo chown -R odoo: /home/<username>/odoo-env

Beschränken Sie die Odoo-Konfigurationsdatei.

$ sudo chown odoo: /etc/odoo-server.conf
$ sudo chmod 640 /etc/odoo-server.conf

Starten Sie den Odoo-Server

Starten und aktivieren Sie den Odoo-Server.

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

Überprüfen Sie den Status des Servers.

$ sudo systemctl status odoo-server

Öffnen Sie in Ihrem Browser die URL http://<yourIPaddress>:8069 oder http://odoo.yourdomain.com:8069 . Wenn alles richtig funktioniert, sollten Sie den Bildschirm zur Erstellung der Datenbank von Odoo sehen.

Füllen Sie alle Felder aus. Überprüfen Sie die Demo Data Feld, um die Datenbank mit Beispieldaten zu füllen, und klicken Sie dann auf Datenbank erstellen Schaltfläche.

Als Nächstes wird Ihnen eine Liste mit Apps angezeigt, die Sie auswählen und auswählen können.

Wenn Sie zum ersten Mal eine Datenbank erstellen, dauert das Laden der Addons-Seite einige Zeit, aktualisieren Sie die Seite also nicht.

Nginx installieren und konfigurieren

Bisher haben wir den Server von Odoo verwendet, um den Stack auszuführen. Aber idealerweise ist es besser, es auf Nginx mit einem Proxy auszuführen, da wir dann SSL darauf installieren können.

Nginx installieren.

$ sudo apt install nginx

Um es über Nginx auszuführen, müssen wir Odoo auf localhost ausführen. Um das zu ändern, beenden Sie den Odoo-Dienst.

$ sudo systemctl stop odoo-server

Öffnen Sie die Konfigurationsdatei des Odoo-Servers.

$ sudo nano /etc/odoo-server.conf

Fügen Sie die folgenden Zeilen hinzu.

xmlrpc_interface = 127.0.0.1
proxy_mode = True

Erstellen Sie eine Nginx-Konfigurationsdatei für Odoo.

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

Fügen Sie den folgenden Code ein.

#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.yourdomain.com;
   rewrite ^(.*) https://$host$1 permanent;
}

server {
 listen 443 ssl http2;
 server_name odoo.yourdomain.com;
 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.yourdomain.com/fullchain.pem;
 ssl_certificate_key /etc/letsencrypt/live/odoo.yourdomain.com/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 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;
}

Drücken Sie Strg + X um den Editor zu schließen und drücken Sie Y wenn Sie aufgefordert werden, die Datei zu speichern.

Aktivieren Sie diese Konfigurationsdatei, indem Sie sie mit sites-enabled verknüpfen Verzeichnis.

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

Testen Sie die Nginx-Konfiguration.

$ sudo nginx -t

SSL installieren

Wir werden SSL mit dem Dienst Let's Encrypt installieren.

Installieren Sie dazu Certbot.

$ sudo apt install certbot

Stoppen Sie Nginx, da es den Certbot-Prozess stören wird.

$ sudo systemctl stop nginx

Generieren Sie das Zertifikat. Außerdem müssen wir ein DHParams-Zertifikat erstellen.

$ sudo certbot certonly --standalone -d odoo.yourdomain.com --preferred-challenges http --agree-tos -n -m [email protected] --keep-until-expiring 
$ sudo systemctl start nginx
$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

Wir müssen auch einen Cron-Job einrichten, um das SSL automatisch zu erneuern. Führen Sie den folgenden Befehl aus, um den Crontab-Editor zu öffnen.

$ sudo crontab -e

Fügen Sie unten die folgende Zeile ein.

25 2 * * * /usr/bin/certbot renew --quiet --pre-hook “systemctl stop nginx” --post-hook “systemctl start nginx”

Der obige Cron-Job führt certbot jeden Tag um 2:25 Uhr aus. Sie können es beliebig ändern.

Speichern Sie die Datei, indem Sie Strg + X drücken und geben Sie Y ein wenn Sie dazu aufgefordert werden.

Odoo starten

Nachdem nun alles eingerichtet ist, können wir den Odoo-Server erneut starten.

$ sudo systemctl start odoo-server

Starten Sie Odoo in Ihrem Browser über https://odoo.yourdomain.com . Sie erhalten einen zuvor beschriebenen Bildschirm. Geben Sie die erforderlichen Details ein, um die Datenbank zu erstellen, und Sie sollten sich bei Odoo anmelden und einen Bildschirm wie diesen sehen.

Schlussfolgerung

Damit ist unser Tutorial zur Installation von Odoo auf einem Ubuntu 20.04-Server abgeschlossen. Wenn Sie Fragen haben, posten Sie diese in den Kommentaren unten.


Ubuntu
  1. So installieren Sie Odoo auf Ubuntu

  2. Wie installiere ich die Audacity-Software in Ubuntu?

  3. Installieren Sie Odoo 9 auf Ubuntu 14.04

  4. So installieren Sie Odoo 15 auf Ubuntu 22.04

  5. So installieren Sie Odoo 13 auf Ubuntu 20.04

So installieren Sie Odoo 13 unter Ubuntu

So installieren Sie Odoo auf Ubuntu 18.04

So installieren Sie Odoo auf Ubuntu 20.04

So installieren Sie Odoo 13 auf Ubuntu 22.04

So installieren Sie Odoo 14 auf Ubuntu 22.04

So installieren Sie Odoo 12 auf Ubuntu 20.04