Wie installiert man Odoo mit Docker unter Ubuntu?

0 Aktien
0
0
0
0

Einführung

Odoo ist ein Open-Source-ERP-System (Enterprise Resource Planning), das in Python geschrieben ist. Es unterstützt zahlreiche Plugins für verschiedene Geschäftsanforderungen, wie z. B. Buchhaltung, Lohnabrechnung, Bestandsverwaltung und vieles mehr. In diesem Tutorial installieren Sie Odoo und eine PostgreSQL-Datenbank mithilfe von Docker Compose. Anschließend installieren Sie Nginx als Reverse-Proxy für Ihre Odoo-Website. Abschließend aktivieren Sie sichere HTTPS-Verbindungen, indem Sie mit Certbot ein TLS-Zertifikat der Zertifizierungsstelle Let's Encrypt herunterladen und konfigurieren.

Voraussetzungen
  • Ein Ubuntu-Server mit mindestens zwei CPUs, ein Benutzer ohne Root-Rechte, aber mit sudo-Berechtigungen, und eine aktivierte Firewall.
  • Docker installiert
  • Um TLS zu aktivieren, benötigen Sie schließlich einen Domainnamen, der auf die öffentliche IP-Adresse Ihres Servers verweist. Dieser sollte beispielsweise example.com oder odoo.example.com lauten.

Sobald alle Voraussetzungen erfüllt sind, fahren Sie mit Schritt 1 fort, in dem Sie das docker-compose-Paket installieren.

Schritt 1 – Docker Compose installieren

Um das Befehlszeilentool zu installieren docker-composeAktualisieren Sie Ihre Paketliste und installieren Sie dann das Paket mit geeignet Installieren:

sudo apt update
sudo apt install docker-compose

Sie können die Installation des Pakets überprüfen, indem Sie folgenden Befehl ausführen:

docker-compose –version

Sie sollten eine Ausgabe wie die folgende erhalten:

Output
docker-compose version 1.25.0, build unknown
docker-py version: 4.1.0
CPython version: 3.8.10

Sobald Sie sich vergewissert haben, dass Docker Compose auf Ihrem Server installiert ist, werden Sie im nächsten Schritt dieses Tutorials Odoo und PostgreSQL mithilfe von Docker Compose konfigurieren und starten.

Schritt 2 – Odoo und PostgreSQL mit Docker Compose ausführen

Um Ihre Odoo- und PostgreSQL-Container zu erstellen, legen Sie im Home-Verzeichnis ein Verzeichnis namens „odoo“ an, in dem Sie die Dateien speichern, die Sie in diesem Tutorial erstellen werden. In diesem Verzeichnis werden alle Dateien abgelegt, die Sie zum Ausführen von Odoo benötigen.

Führen Sie die folgenden Befehle aus, um das Verzeichnis zu erstellen und dann CD Führe es aus:

mkdir ~/odoo
cd ~/odoo

Erstellen Sie nun eine neue, leere YAML-Datei mit dem Namen docker-compose.yml Verwendung Nano Oder öffnen Sie Ihren bevorzugten Editor:

nano docker-compose.yml

Sie können diese Datei mit dem Befehl verwenden docker-compose Sie benötigen diese Datei, um Ihre Odoo- und PostgreSQL-Container zu starten und miteinander zu verknüpfen. Fügen Sie die folgenden Zeilen zur Datei hinzu:

version: '3'
services:
odoo:
image: odoo:15.0
env_file: .env
depends_on:
- postgres
ports:
- "127.0.0.1:8069:8069"
volumes:
- data:/var/lib/odoo
postgres:
image: postgres:13
env_file: .env
volumes:
- db:/var/lib/postgresql/data/pgdata
volumes:
data:
db:

Die Datei definiert zwei Dienste. Der erste heißt „odoo“ und führt die Odoo-Anwendung aus. Der zweite heißt „postgres“ und ist der PostgreSQL-Datenbankcontainer. Beide Dienste greifen auf Volumes zu, die sie zur Datenspeicherung außerhalb der laufenden Containerinstanzen verwenden. Der Dienst „odoo“ stellt Port 8069 Ihres Servers für den Odoo-Container bereit, der auf demselben Port 8069 läuft.

Wenn Sie die Bearbeitung der Datei abgeschlossen haben, speichern Sie sie und beenden Sie das Programm. Wenn Sie nano verwenden, drücken Sie Strg+O und anschließend die Eingabetaste zum Speichern und dann Strg+X zum Beenden.

Die Odoo- und PostgreSQL-Container verwenden Umgebungsvariablen für ihre Konfiguration. Die Datei docker-compose.yml definiert eine env_file-Direktive für beide Dienste. Diese Direktive verweist auf eine Referenzdatei, die die für den Betrieb der jeweiligen Dienste benötigten Variablen enthält.

Diese Vorgehensweise wird in der Regel dem direkten Hinzufügen von Umgebungsvariablen zur docker-compose.yml-Datei vorgezogen, da es ratsam ist, Passwörter nicht in dieser Datei zu speichern. Sie ist besonders nützlich, wenn Sie Ihre Dateien in einem Git-Repository oder einem anderen Versionskontrollsystem speichern.

Öffnen Sie eine neue env-Datei mit nano:

nano .env

Fügen Sie die folgenden Zeilen in die Datei ein und ersetzen Sie die markierten Werte durch einen POSTGRES_USER Und POSTGRES_PASSWORT Ersetzen Sie Ihre Auswahl:

# postgresql environment variables
POSTGRES_DB=postgres
POSTGRES_PASSWORD=a_strong_password_for_user
POSTGRES_USER=odoo
PGDATA=/var/lib/postgresql/data/pgdata
# odoo environment variables
HOST=postgres
USER=odoo
PASSWORD=a_strong_password_for_user

Um ein Passwort für Odoo und PostgreSQL zu generieren, verwenden Sie den Befehl `openssl`, der auf den meisten Linux-Systemen verfügbar sein sollte. Führen Sie den folgenden Befehl auf Ihrem Server aus, um eine zufällige Bytefolge zu generieren und eine Base64-kodierte Version auszugeben, die Sie als Passwort verwenden können:

openssl rand -base64 30

Verwenden Sie die resultierende Zeichenkette anstelle der Schutzpasswörter. ein_starkes_Passwort_für_den_Benutzer In der Datei .env Sobald Sie die Bearbeitung Ihrer .env-Datei abgeschlossen haben, speichern Sie diese und beenden Sie den Texteditor.

Jetzt können Sie Container erstellen. odoo Und PostgreSQL mit dem Befehl docker-compose Los geht's:

docker-compose up -d

Der Unterbefehl `up` weist docker-compose an, die Container sowie die zugehörigen Volumes und Netzwerke, die in der Datei `docker-compose.yml` definiert sind, zu starten. Der Parameter `-d` (für “daemonisieren”) bewirkt, dass die Container im Hintergrund ausgeführt werden, sodass Ihre Terminalbefehle nicht die Kontrolle übernehmen. docker-compose gibt während des Herunterladens der benötigten Docker-Images und des anschließenden Startens der Container eine kurze Ausgabe aus.

Output
Creating network "odoo_default" with the default driver
Creating volume "odoo_odoo_data" with default driver
Creating volume "odoo_postgres_data" with default driver
Pulling odoo (odoo:14.0)...
15.0: Pulling from library/odoo
. . .

Sobald dies abgeschlossen ist, sollte Odoo laufen. Sie können testen, ob ein Webserver läuft, indem Sie die Startseite mit dem curl-Befehl abrufen. 127.0.0.1:8069 Läufe:

curl --head http://localhost:8069

Dadurch werden nur die HTTP-Header der Antwort ausgegeben:

Output
HTTP/1.0 303 SEE OTHER
Content-Type: text/html; charset=utf-8
Content-Length: 215
Location: http://localhost:8069/web
Set-Cookie: session_id=142fa5c02742d0f5f16c73bc14ec8144b8230f8a; Expires=Mon, 06-Jun-2022 20:45:34 GMT; Max-Age=7776000; HttpOnly; Path=/
Server: Werkzeug/0.14.1 Python/3.7.3
Date: Tue, 08 Mar 2022 20:45:34 GMT

Antwort 303 SIEHE ANDERE Das bedeutet, dass der Server Odoo Es ist eingerichtet und betriebsbereit, aber Sie müssen eine andere Seite besuchen, um die Installation abzuschließen. Kopfzeile http://localhost:8069/web Der angegebene Ort zeigt an, wo Sie die Odoo-Installationsseite in Ihrem Browser aufrufen sollen.

Anschließend richten wir Nginx so ein, dass der öffentliche Datenverkehr an den Odoo-Container weitergeleitet wird.

Schritt 3 – Nginx installieren und konfigurieren

Durch die Vorschaltung eines Webservers wie Nginx vor dem Odoo-Server lässt sich die Performance verbessern, indem Caching, Komprimierung und die Auslieferung statischer Dateien ausgelagert werden. Wir installieren Nginx und konfigurieren ihn als Reverse-Proxy für Anfragen an Odoo. Das bedeutet, dass Nginx die Anfragen Ihrer Benutzer an Odoo und zurück weiterleitet. Die Verwendung eines nicht-containerbasierten Nginx-Prozesses vereinfacht das Hinzufügen von Let's Encrypt TLS-Zertifikaten im nächsten Schritt.

Aktualisieren Sie zunächst Ihre Paketliste und installieren Sie dann Nginx mit geeignet Installieren:

sudo apt update
sudo apt install nginx

Mit dem Nginx Full UFW-Anwendungsprofil kann der öffentliche Datenverkehr zu den Ports 80 und 443 (HTTP und HTTPS) zugelassen werden:

sudo ufw allow "Nginx Full"
Output
Rule added
Rule added (v6)

Öffnen Sie anschließend eine neue Nginx-Konfigurationsdatei im Verzeichnis /etc/nginx/sites-available. Wir nennen unsere odoo.conf, Sie können aber auch einen anderen Namen verwenden:

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

Fügen Sie Folgendes in die neue Konfigurationsdatei ein und ersetzen Sie dabei „your_domain_here“ durch die Domain, die Sie für Ihren Odoo-Server konfiguriert haben. Diese sollte beispielsweise so aussehen: odoo.example.com

server {
listen 80;
listen [::]:80;
server_name your_domain_here;
access_log /var/log/nginx/odoo.access.log;
error_log /var/log/nginx/odoo.error.log;
location / {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Proto https;
proxy_pass http://localhost:8069;
}
}

Diese Konfiguration ist vorerst nur für HTTP ausgelegt, da Certbot im nächsten Schritt TLS konfiguriert. Der restliche Teil der Konfigurationsdatei richtet die Registrar-Standorte ein und leitet den gesamten Datenverkehr sowie einige wichtige Proxy-Header an http://localhost:8069 weiter, den Odoo-Container, den wir im vorherigen Schritt gestartet haben.

Speichern und schließen Sie die Datei und aktivieren Sie anschließend die Konfiguration, indem Sie sie mit /etc/nginx/sites-enabled/ verknüpfen:

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

Verwenden Sie nginx -t, um die Syntax der Konfigurationsdatei zu überprüfen:

sudo nginx -t
Output
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Und schließlich laden Sie den nginx-Dienst mit der neuen Konfiguration neu:

sudo systemctl reload nginx.service

Ihre Odoo-Website sollte nun über unverschlüsseltes HTTP erreichbar sein. Rufen Sie http://your_domain_here auf (möglicherweise müssen Sie eine Sicherheitswarnung bestätigen). Die Seite sollte dann folgendermaßen aussehen:


Nachdem Ihre Website nun über HTTP eingerichtet ist, sollten Sie die Verbindung mit Certbot- und Let's Encrypt-Zertifikaten absichern. Dies ist erforderlich, bevor Sie mit der webbasierten Einrichtung von Odoo fortfahren.

Schritt 4 – Certbot installieren und TLS-Zertifikate einrichten

Dank Certbot und der kostenlosen Let's Encrypt-Lizenz sind für das Hinzufügen der TLS-Verschlüsselung zu Ihrer Odoo-Anwendung nur zwei Befehle erforderlich.

Installieren Sie zunächst Certbot und das zugehörige Nginx-Plugin:

sudo apt install certbot python3-certbot-nginx

Führen Sie anschließend certbot im --nginx-Modus aus und geben Sie dieselbe Domain an, die Sie in der Nginx-Konfigurationsanweisung server_name verwendet haben:

sudo certbot --nginx -d your_domain_here

Sie werden aufgefordert, den Nutzungsbedingungen von Let's Encrypt zuzustimmen und eine E-Mail-Adresse anzugeben. Anschließend werden Sie gefragt, ob Sie den gesamten HTTP-Verkehr auf HTTPS umleiten möchten. Dies ist Ihre Entscheidung, wird aber im Allgemeinen empfohlen und ist sicher.

Anschließend wird Let's Encrypt Ihre Anfrage genehmigen und Certbot wird Ihr Zertifikat herunterladen:

Output
Congratulations! You have successfully enabled https://odoo.example.com
You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=odoo.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/odoo.example.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/odoo.example.com/privkey.pem
Your cert will expire on 2022-05-09. To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the "certonly" option. To non-interactively renew *all* of
your certificates, run "certbot renew"
- Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le

Certbot lädt Nginx automatisch mit der neuen Konfiguration und den neuen Zertifikaten. Laden Sie Ihre Website im Browser neu; wenn Sie die Weiterleitungsoption auswählen, wird automatisch auf HTTPS umgeschaltet.

Ihre Website ist nun sicher und Sie können bedenkenlos mit dem webbasierten Einrichtungsprozess fortfahren.

Schritt 5 – Odoo einrichten

Gehen Sie zurück zu Ihrem Webbrowser und laden Sie die Seite neu. Sie sollten nun die Odoo-Datenbankkonfigurationsseite über eine sichere HTTPS-Verbindung öffnen können. Geben Sie jetzt sicher Ihren Benutzernamen und Ihr Passwort ein, um die Installation abzuschließen.

Die Informationen, die Sie auf dieser Seite eingeben, teilen der Odoo-Anwendung mit, wie sie ihre PostgreSQL-Datenbank erstellt und welche Details zum standardmäßigen Administratorbenutzer vorliegen.

Füllen Sie die folgenden Felder aus:
  • Datenbankname: odoo
  • E-Mail: Ihre E-Mail-Adresse
  • Passwort: Ein sicheres und einzigartiges Passwort für Ihren Administrator-Login.
  • Demodaten: Falls Sie Odoo zum ersten Mal installieren, stellen Sie sicher, dass diese Option aktiviert ist.

Die Standardeinstellungen für die übrigen Felder sind ausreichend. Notieren Sie sich unbedingt die von Ihnen gewählten E-Mail- und Passwortwerte, da Sie diese später für die Anmeldung bei Odoo benötigen.

Klicken Sie nun unten links auf der Seite auf die Schaltfläche „Datenbank erstellen“. Es kann ein bis zwei Minuten dauern, bis Odoo die Datenbanktabellen erstellt hat. Sobald der Vorgang abgeschlossen ist, werden Sie zur Odoo-Apps-Verwaltungsseite weitergeleitet.


Hier können Sie die Odoo-Module auswählen, die Sie für Ihre ERP-Anforderungen installieren und verwenden möchten. Um eine App zu testen, klicken Sie auf die Schaltfläche „Installieren“ in der Kachel „Vertrieb“. Odoo installiert das Modul und leitet Sie anschließend zur persönlichen Seite der Discuss-App weiter.

Klicken Sie auf das geteilte Quadratsymbol oben links auf der Seite und wählen Sie dann in der Dropdown-Liste den Link „Verkauf“ aus.


Sie gelangen auf eine Seite, die Sie durch die Anpassung von Daten, Preisen, Bestellungen und einer Liste von Verkaufsbeispielen führt, mit denen Sie experimentieren können.

Ergebnis

In diesem Tutorial haben Sie die Odoo ERP-Anwendung und die PostgreSQL-Datenbank mithilfe von Docker Compose bereitgestellt, anschließend einen Nginx Reverse-Proxy eingerichtet und diesen mit Let's Encrypt TLS-Zertifikaten gesichert.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Das könnte Ihnen auch gefallen