Odoo Installation · 12 min read · Nov 12, 2025
So installieren Sie Odoo 14 ERP-Software auf Ubuntu 20.04

Odoo (früher bekannt als OpenERP) ist eine selbst gehostete Suite von über 10.000 Open-Source-Anwendungen, die für eine Vielzahl von Geschäftsbedürfnissen geeignet sind, einschließlich CRM, E-Commerce, Buchhaltung, Inventar, Projektmanagement und Verkaufsstelle. Diese Anwendungen sind vollständig integriert und über eine gemeinsame Weboberfläche zugänglich.
In diesem Tutorial lernen wir, wie man den Odoo 14 Stack auf einem Ubuntu 20.04-basierten Server installiert.
Voraussetzungen
- Ein Ubuntu 20.04-basierter Server mit mindestens 2 GB RAM, um den Odoo Stack zu hosten.
- Ein zweiter Ubuntu 20.04-basierter Server mit mindestens 2 GB RAM zum Hosten der PostgreSQL-Datenbank. Sie können die Datenbank jedoch auch 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 von einem Anbieter Ihrer Wahl wählen.
- Der RAM-Bedarf hängt von der Anzahl der gleichzeitigen Benutzer ab, die den Stack verwenden. Eine detaillierte Anleitung zur Berechnung der Systemanforderungen finden Sie in der Dokumentation von Odoo.
- Halten Sie Ihre Systeme auf dem neuesten Stand.
shell $ sudo apt update $ sudo apt upgrade - Ein Nicht-Root-Benutzer mit Sudo-Rechten auf beiden Servern.
Firewall-Regeln konfigurieren
Für die Zwecke dieses Tutorials gehen wir davon aus, dass Sie die ufw-Firewall auf beiden Servern installiert haben.
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 wird für die Odoo-Kommunikation verwendet, 5432 wird von PostgreSQL verwendet und 8069 wird von der Odoo-Serveranwendung verwendet.
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 Befehlen, die wir gerade besprochen haben.
Hostnamen zuweisen
Sie können entweder die IP-Adressen der Server oder deren vollständig qualifizierte Domainnamen (FQDN) verwenden, wenn verfügbar. Für unser Tutorial verwenden wir FQDNs, und dafür müssen wir die Hostnamen auf beiden Servern festlegen.
Öffnen Sie auf dem Odoo-Server die Datei /etc/hosts.
$ sudo nano /etc/hosts
Stellen Sie sicher, dass sie 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 stellen Sie sicher, 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 Ctrl + 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 Benutzer postgres aus.
Die Option -U gibt den Benutzernamen an, mit dem eine Verbindung hergestellt werden soll.
Die Option -d gewährt dem Benutzer die Berechtigung, Datenbanken zu erstellen.
Die Option -p fordert das Passwort des neuen Benutzers an.
Hostbasierte Authentifizierung konfigurieren
Wir müssen dem PostgreSQL-Dienst die Berechtigung geben, eine Verbindung zum Odoo-Server herzustellen.
Zuerst stoppen Sie den PostgreSQL-Dienst.
$ sudo systemctl stop postgresql
Öffnen Sie die Datei /etc/postgresql/12/main/pg_hba.conf zur Bearbeitung.
$ sudo nano /etc/postgresql/12/main/pg_hba.conf
Fügen Sie die folgende Zeile am Ende ein.
host all odoo odoo.yourdomain.com md5
Diese Zeile gewährt dem Benutzer odoo die Berechtigung, eine Verbindung zu allen Datenbanken innerhalb dieses Servers herzustellen. Sie können auch den Namen der Datenbanken angeben, anstatt das Schlüsselwort all zu verwenden.
Drücken Sie Ctrl + 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 Remote-Verbindungen zu hören. Öffnen Sie die Datei /etc/postgresql/12/main/postgresql.conf zur Bearbeitung.
$ sudo nano /etc/postgresql/12/main/postgresql.conf
Ändern Sie die Zeile listen_addresses von
#listen_addresses = 'localhost' # welche IP-Adresse(n) soll(en) gehört werden;
zu.
#Aus dem Abschnitt VERBINDUNGEN UND AUTHENTIFIZIERUNG
listen_addresses = '*'
Das * bedeutet, dass es auf allen IP-Adressen hören wird. Sie können es auf die IP-Adresse Ihrer Odoo-Instanz ändern.
Drücken Sie Ctrl + 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 Zeit, den PostgreSQL-Dienst zu starten und zu aktivieren.
$ sudo systemctl start postgresql && sudo systemctl enable postgresql
Odoo installieren
Abhängigkeiten installieren und auf die Installation vorbereiten
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 die Quell-Repositorys aktivieren. Um dies zu tun, sichern Sie die ursprüngliche Quellenliste und aktivieren Sie dann alle Quell-Repositorys 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 die für die Odoo 14-Installation erforderlichen Systemabhängigkeiten.
$ 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 das Paket wkhtmltopdf Version 0.12.6 herunter.
$ 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 ~
Odoo-Dateien herunterladen
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 unsere Zwecke kopieren wir Odoo in das Verzeichnis /opt/odoo, von wo es installiert wird.
Virtuelle Python-Umgebung einrichten
Dieser Schritt ist optional, wird jedoch empfohlen, da eine virtuelle Python-Umgebung für Odoo hilft, Konflikte mit den Python-Modulen des Betriebssystems zu vermeiden, insbesondere bei Betriebssystem-Upgrades.
Dafür verwenden wir virtualenv.
- Erstellen Sie eine neue
virtualenv-Umgebung für Odoo.shell $ python3 -m venv /home//odoo-env - Aktivieren Sie die virtuelle Umgebung. Wir erstellen eine Umgebung im Home-Verzeichnis des Systembenutzers. Sie können jeden beliebigen Ort wählen, den Sie möchten.
shell $ source /home//odoo-env/bin/activate - Aktualisieren Sie PIP, nur für den Fall.
shell (odoo-env) $ pip3 install --upgrade pip - Installieren Sie das Python-Wheel in der virtuellen Umgebung.
shell $ 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 Anforderungen benötigen einige Zeit zur Installation, also haben Sie Geduld.
Ü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
Verlassen Sie die Python-virtuelle Umgebung.
$ deactivate
Odoo konfigurieren
Kopieren Sie die Standard-Odoo-Konfigurationsdatei, um eine neue zu erstellen.
$ sudo cp /opt/odoo/debian/odoo.conf /etc/odoo-server.conf
Öffnen Sie die Datei zur Bearbeitung.
$ sudo nano /etc/odoo-server.conf
Bearbeiten Sie die Datei, sodass sie wie folgt aussieht.
[options]
; Dies ist das Passwort, das Datenbankoperationen ermöglicht:
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 Ctrl + 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 Operationen innerhalb der Odoo-GUI ermöglicht. Stellen Sie sicher, dass Sie ein sicheres Passwort wählen.
Die Option db_host ist der FQDN oder die IP-Adresse des PostgreSQL-Servers.
Die Option db_port ist auf false gesetzt, da der Standardport 5432 von PostgreSQL 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 Passwort des PostgreSQL-Benutzers ‘odoo’, das wir zuvor auf dem PostgreSQL-Server erstellt haben.
Die Option addons_path ist der Standardpfad für Addons. Sie können auch einen benutzerdefinierten Pfad für Addons hinzufügen, indem Sie sie durch Kommas trennen.
Die Option xmlrpc_port ist der Port, auf dem Odoo hört.
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 öffnen Sie sie zur Bearbeitung.
$ sudo nano /lib/systemd/system/odoo-server.service
Fügen Sie den folgenden Code ein.
[Unit]
Description=Odoo Open Source ERP und CRM
[Service]
Type=simple
PermissionsStartOnly=true
SyslogIdentifier=odoo-server
User=odoo
Group=odoo
ExecStart=/home//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/ durch den Ort, den Sie für die Installation der Python-virtuellen Umgebung gewählt haben.
Drücken Sie Ctrl + X, um den Editor zu schließen, und drücken Sie Y, wenn Sie aufgefordert werden, die Datei zu speichern.
Dateiberechtigungen festlegen
Legen Sie die Berechtigungen für die Datei odoo-server.service fest, sodass nur der Odoo-Benutzer sie lesen oder ausführen kann.
$ sudo chmod 755 /lib/systemd/system/odoo-server.service
$ sudo chown odoo: /lib/systemd/system/odoo-server.service
Legen Sie den Besitz des Python-Umgebung und des Odoo-Installationsverzeichnisses fest.
$ sudo chown -R odoo: /opt/odoo/
$ sudo chown -R odoo: /home//odoo-env
Beschränken Sie die Odoo-Konfigurationsdatei.
$ sudo chown odoo: /etc/odoo-server.conf
$ sudo chmod 640 /etc/odoo-server.conf
Odoo-Server starten
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:// oder http://odoo.yourdomain.com:8069. Wenn alles ordnungsgemäß funktioniert, sollten Sie den Bildschirm zur Erstellung der Odoo-Datenbank sehen.

Füllen Sie alle Felder aus. Aktivieren Sie das Feld Demo-Daten, um die Datenbank mit Beispieldaten zu füllen, und klicken Sie dann auf die Schaltfläche Datenbank erstellen.
Als Nächstes wird Ihnen eine Liste von Apps angezeigt, die Sie auswählen und auswählen können.
Beim ersten Erstellen einer Datenbank benötigt die Addons-Seite etwas Zeit zum Laden, also aktualisieren Sie die Seite nicht.
Nginx installieren und konfigurieren
Bis jetzt haben wir den Odoo-Server verwendet, um den Stack auszuführen. Aber idealerweise ist es besser, ihn über Nginx mit einem Proxy auszuführen, da dies uns ermöglicht, SSL darauf zu installieren.
Installieren Sie Nginx.
$ sudo apt install nginx
Um es über Nginx auszuführen, müssen wir Odoo auf localhost ausführen. Um das zu ändern, stoppen Sie den Odoo-Dienst.
$ sudo systemctl stop odoo-server
Öffnen Sie die Odoo-Serverkonfigurationsdatei.
$ 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;
# Fügen Sie Header für den Odoo-Proxy-Modus hinzu
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-Parameter
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; # etwa 40000 Sitzungen
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;
# Protokoll
access_log /var/log/nginx/odoo.access.log;
error_log /var/log/nginx/odoo.error.log;
# Leiten Sie lange Anfragen an den Odoo-Longpolling-Port weiter
location /longpolling {
proxy_pass http://odoochat;
}
# Leiten Sie Anfragen an den Odoo-Backend-Server weiter
location / {
proxy_redirect off;
proxy_pass http://odoo;
}
# allgemeines gzip
gzip_types text/css text/scss text/plain text/xml application/xml application/json application/javascript;
gzip on;
}
Drücken Sie Ctrl + 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 dem Verzeichnis sites-enabled verknüpfen.
$ 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 Let’s Encrypt-Dienst installieren.
Dafür installieren Sie Certbot.
$ sudo apt install certbot
Stoppen Sie Nginx, da es den Certbot-Prozess stören wird.
$ sudo systemctl stop nginx
Generieren Sie das Zertifikat. Wir müssen auch 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. Um den Crontab-Editor zu öffnen, führen Sie den folgenden Befehl aus.
$ sudo crontab -e
Fügen Sie die folgende Zeile am Ende hinzu.
25 2 * * * /usr/bin/certbot renew --quiet --pre-hook “systemctl stop nginx” --post-hook “systemctl start nginx”
Der obige Cron-Job wird certbot jeden Tag um 2:25 Uhr ausführen. Sie können ihn auf alles ändern, was Sie möchten.
Speichern Sie die Datei, indem Sie Ctrl + X drücken und Y eingeben, wenn Sie dazu aufgefordert werden.
Odoo starten
Jetzt, da 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 Bildschirm, der zuvor beschrieben wurde. Geben Sie die erforderlichen Details ein, um die Datenbank zu erstellen, und Sie sollten sich bei Odoo anmelden und einen Bildschirm wie diesen sehen.

Fazit
Damit endet unser Tutorial zur Installation von Odoo auf einem Ubuntu 20.04-Server. Wenn Sie Fragen haben, posten Sie diese in den Kommentaren unten.
Erhalte neue Beiträge in deinem Posteingang.
Kein Spam. Jederzeit abmelden.