DE · AT · CHAnleitung

Odoo auf einem eigenen Server installieren

Aktualisiert:

Gilt für: Odoo 20.0 Community und Enterprise, eigene Installation (On-Premise) auf Linux; Paket- und Quellinstallation; nicht Odoo Online oder Odoo.sh

Kurz gesagt

Eine eigene Odoo-Installation braucht drei Schritte: Odoo als Paket oder aus dem Quellcode aufsetzen, PostgreSQL und ein eigenes Datenbankkonto einrichten, dann Konfigurationsdatei und Dienst starten. Die Dokumentation 20.0 nennt für das deb-Paket dieser Version Ubuntu Noble 24.04 LTS, für das rpm-Paket Fedora 42. Vor dem Zugriff aus dem Internet gehören HTTPS, ein Datenbankfilter und ein geändertes Administratorkonto dazu.

Das Wichtigste

  • Ab Version 20 verlangt Odoo laut Dokumentation Python 3.12 oder neuer und PostgreSQL 16.0 oder neuer.
  • Der Windows-Installer ist laut Dokumentation für Tests und Einzelplatz gedacht; von Produktivbetrieb auf Windows rät sie ab.
  • Die Quellinstallation installiert Odoo nicht, sondern startet es mit odoo-bin aus dem Verzeichnis; nach einer Paketinstallation heißt das Programm odoo.
  • Den Mehrprozess-Betrieb nennt die Dokumentation nur für Linux und Unix; einschalten lässt er sich über workers ungleich 0.
  • Das deb-Paket der Community-Edition legt die Konfiguration unter /etc/odoo/odoo.conf ab; die Dokumentation nennt für Pakete /etc/odoo.conf.
  • Odoo 20.0 erschien laut Release Notes im September 2026; der Standardsupport endet nach Anbieterangabe im September 2029 (geplant).

Ein frischer Server braucht mehr als ein Installationspaket: eine Datenbank, ein eigenes Dienstkonto, eine Konfigurationsdatei und einen Webserver davor. Die Dokumentation 20.0 (abgerufen am 14. Oktober 2026) beschreibt jeden Teil auf einer eigenen Seite; dieser Artikel bringt sie in die Reihenfolge für einen Linux-Server und nennt nach jedem Schritt den Prüfpunkt. Die Einrichtung gilt in Deutschland, Österreich und der Schweiz gleich.

Was Sie vorab brauchen

  • Einen Linux-Server und einen Zugang mit Administratorrechten; die Distribution wählen Sie nach der Paketunterstützung in Schritt 1.
  • Die Entscheidung zwischen Community und Enterprise: Enterprise-Pakete lassen sich laut Dokumentation nur als angemeldeter, zahlender On-Premise-Kunde oder als Partner herunterladen (Odoo Community oder Enterprise).
  • PostgreSQL in der verlangten Mindestversion; bei der Paketinstallation genügt der Datenbankdienst auf demselben Rechner.
  • Für die Quellinstallation zusätzlich Python, Git und die Systembibliotheken der Seite Quellen-Installation.
  • Einen Domainnamen mit Zertifikat, wenn der Server aus dem Internet erreichbar sein soll (Eigene Domain und SSL-Zertifikat für Odoo).
  • Einen Zeitpunkt für einen Neustart: Änderungen an der Konfigurationsdatei wirken erst danach.

Schritt für Schritt: Odoo auf einem Linux-Server einrichten

Schritt 1: Installationsweg und Version festlegen

Die Dokumentation nennt drei Wege und je Weg diese Plattformen:

Plattform Weg laut Dokumentation 20.0 Was die Dokumentation dazu nennt
Debian, Ubuntu und weitere Debian-Distributionen Paket (deb), Repository oder Distributionspaket Das deb-Paket von Odoo 20 unterstützt Ubuntu Noble (24.04 LTS); PostgreSQL richten Sie vorher ein
Fedora, CentOS, RHEL und weitere RPM-Distributionen Paket (rpm) Das rpm-Paket von Odoo 20 unterstützt Fedora 42
Windows Paket (Installer) Für Tests und Einzelplatz gedacht; von der Produktivbereitstellung rät die Dokumentation wegen Einschränkungen und Risiken ab
Linux, Windows, macOS Quellinstallation Odoo wird nicht installiert, sondern mit odoo-bin gestartet; mehrere Versionen lassen sich nebeneinander führen
Linux, als Container Docker-Basis-Image Die Dokumentation nennt das Image für Entwicklung und Bereitstellung

Den Mehrprozess-Betrieb, den sie für die Produktion empfiehlt, nennt die Dokumentation für Linux und andere Unix-Systeme; unter Windows gibt es ihn nicht. Odoo 20 erschien laut Release Notes im September 2026; der Standardsupport läuft drei Jahre, für Odoo 20.0 also bis September 2029 (geplant). Ein Datenbank-Upgrade ist nach der Support-Übersicht nur auf eine Hauptversion vorgesehen, die noch im Standardsupport ist oder deren Standardsupport vor weniger als sechs Monaten endete; den Upgrade-Dienst der Anbieterin ordnet der Editionsvergleich der Enterprise-Edition zu (Odoo-Versionen: Support-Dauer und Upgrade-Rhythmus).

Schritt 2: PostgreSQL und ein eigenes Datenbankkonto vorbereiten

Odoo verbietet den Anschluss als postgres-Benutzer. Legen Sie in der Quellinstallation ein eigenes Konto an, das Datenbanken erstellen darf, aber kein Superuser ist:

sudo -u postgres createuser -d -R -S $USER
createdb $USER

Dabei steht $USER für den Unix-Anmeldenamen; weil das PostgreSQL-Konto denselben Namen trägt, ist laut Dokumentation eine Verbindung ohne Kennwort möglich. Ein Superuser ist nicht erlaubt; die Installationsprogramme legen selbst einen Benutzer odoo an. Die Erweiterung pg-vector für die KI-Funktionen setzt PostgreSQL ab Version 15 voraus. Fehlt wkhtmltopdf, ergänzen Sie es von Hand in Version 0.12.6, sonst fehlen Kopf- und Fußzeilen in Berichten.

Schritt 3: Odoo installieren

Für die Paketinstallation der Community-Edition richtet die Dokumentation ein Repository ein:

wget -q -O - https://nightly.odoo.com/odoo.key | sudo gpg --dearmor -o /usr/share/keyrings/odoo-archive-keyring.gpg
echo 'deb [signed-by=/usr/share/keyrings/odoo-archive-keyring.gpg] https://nightly.odoo.com/20.0/nightly/deb/ ./' | sudo tee /etc/apt/sources.list.d/odoo.list
sudo apt-get update && sudo apt-get install odoo

Für Enterprise-Pakete gibt es laut derselben Seite kein Nightly-Repository; Sie laden das Distributionspaket von der Downloadseite und installieren es mit apt oder dnf. Nightly-Pakete lassen sich laut Dokumentation nur schwer aktuell halten.

Die Quellinstallation installiert Odoo nicht, sondern startet es aus dem Verzeichnis. Community und Enterprise brauchen dabei nicht denselben Aufruf.

Für die Community-Edition genügt ein Repository:

git clone --branch 20.0 --single-branch https://github.com/odoo/odoo.git
cd odoo && sudo ./setup/debinstall.sh
python3 odoo-bin --addons-path=addons -d meine_db

Für die Enterprise-Edition gehören beide Repositorys in das Verzeichnis, und der Pfad der Enterprise-Module muss im Parameter addons-path vor den übrigen Pfaden stehen, sonst lädt Odoo sie nicht:

git clone --branch 20.0 --single-branch https://github.com/odoo/odoo.git
git clone --branch 20.0 --single-branch https://github.com/odoo/enterprise.git
cd odoo && sudo ./setup/debinstall.sh
python3 odoo-bin --addons-path=../enterprise,addons -d meine_db

Das Enterprise-Repository enthält nur die Zusatzmodule; das Hauptprogramm steht in der Community-Edition, deshalb sind für eine laufende Enterprise-Installation beide Verzeichnisse nötig. Im Beispiel liegen sie nebeneinander, und der Aufruf steht im Verzeichnis odoo. Laden Sie ausschließlich die Community-Edition, ist der Enterprise-Checkout entbehrlich. Das Skript setup/debinstall.sh liest die Steuerungsdatei des Pakets und installiert daraus die Systemabhängigkeiten. Der Weg über pip ist die Alternative, die dieselbe Seite mit einem Hinweis auf mögliche Sicherheitsprobleme und kaputte Abhängigkeiten versieht.

Schritt 4: Konfigurationsdatei anlegen

Die Dokumentation nennt als Standarddatei ~/.odoorc und als Ort der Paketinstallation /etc/odoo.conf. Im deb-Paket der Community-Edition liegt die Datei dagegen unter /etc/odoo/odoo.conf, und der Dienst startet mit dem Parameter –config auf diesen Pfad. Die Optionen stehen im Abschnitt [options]; die Namen entsprechen den Befehlszeilenoptionen, –db-filter wird zu dbfilter.

Eintrag Was er steuert
db_host, db_port, db_user, db_password Zugang zur Datenbank; leer heißt Verbindung über den lokalen Socket
dbfilter Auswahl der Datenbank über den Hostnamen; bei mehreren Datenbanken und der App Website verlangt die Dokumentation ihn
admin_passwd Kennwort der Datenbankverwaltung; nur in der Konfigurationsdatei setzbar, zufällig erzeugt
list_db = False verbirgt die Datenbankliste und den Zugang zu den Verwaltungsbildschirmen
workers schaltet den Mehrprozess-Betrieb ein (nur Linux und Unix); 0 bedeutet Mehrfaden-Betrieb
proxy_mode = True nur setzen, wenn ein Proxy davorsteht; Odoo verwendet dann dessen Kopfzeilen

Zufälliges Kennwort der Dokumentation:

python3 -c 'import base64, os; print(base64.b64encode(os.urandom(24)))'

Schritt 5: Dienst starten und Datenbank anlegen

Nach der Paketinstallation starten Sie den Dienst mit systemctl enable odoo und systemctl start odoo. Das deb-Paket der Community-Edition legt dabei den Systembenutzer odoo mit dem Home-Verzeichnis /var/lib/odoo an, registriert die PostgreSQL-Rolle odoo mit dem Recht, Datenbanken zu erstellen, und startet den Dienst mit dem Aufruf /usr/bin/odoo –config /etc/odoo/odoo.conf –logfile /var/log/odoo/odoo-server.log; der Dienst läuft also als Benutzer odoo und verwendet dessen Datenbankkonto. Bei der Quellinstallation läuft der Server im Vordergrund des Aufrufs aus Schritt 3.

Eine neue Datenbank legen Sie in der Kommandozeile an, ohne Demo-Daten. Nach einer Paketinstallation heißt das Programm odoo, nicht odoo-bin; rufen Sie es unter dem Dienstbenutzer und mit der Konfigurationsdatei des Dienstes auf, damit Datenbankkonto und Dateispeicher zum Dienst passen:

sudo -u odoo odoo db init meine_db --country DE --config /etc/odoo/odoo.conf

Bei der Quellinstallation bleibt es beim Aufruf aus dem Verzeichnis:

python3 odoo-bin db init meine_db --country DE

Der Unterbefehl nimmt den Ländercode für die Hauptgesellschaft, die Standardsprache (Vorgabe en_US) und für Demo-Daten den Schalter –with-demo. Auf einem Server mit Internetanschluss verlangt die Dokumentation, keine Demo-Daten zu installieren, weil sie bekannte Anmeldedaten mitbringen. Die Datenbankverwaltung erreichen Sie im Browser unter web/database/manager.

Schritt 6: Webserver mit HTTPS davorsetzen

Odoo überträgt Anmeldedaten im Klartext, solange kein HTTPS davorsteht. Setzen Sie einen Terminierungsproxy davor, richten Sie dort die Weiterleitung ein und schalten Sie in Odoo proxy_mode = True ein. Die Dokumentation zeigt die NGINX-Konfiguration mit zwei Upstreams: dem Dienst auf Port 8069 und dem LiveChat-Worker auf dem gevent-Port für alle Anfragen mit dem Pfad /websocket/; dazu kommen HSTS und der Hinweis, dass Odoo statische Dateien und Anhänge selbst ausliefert und sie für die Leistung auf Wunsch an den Webserver abgibt (X-Sendfile beziehungsweise X-Accel, dafür startet Odoo mit dem Schalter –x-sendfile). Anmeldungen protokolliert Odoo mit Ergebnis, Zielkonto und Quell-IP; dafür beschreibt dieselbe Seite einen fail2ban-Filter. Einzelheiten in Eigene Domain und SSL-Zertifikat für Odoo und Odoo-Server absichern.

Schritt 7: Aktualisieren und sichern

Eine Aktualisierung innerhalb derselben Version spielt die neueste Revision Ihrer Edition über die bestehende Installation; die Daten bleiben laut Dokumentation unverändert, solange PostgreSQL nicht entfernt wird. Beim Paket installieren Sie das neue Paket darüber. Bei einer Quellinstallation unterscheidet die Dokumentation zwei Fälle: Haben Sie den Quellcode als Archiv entpackt, ersetzen Sie das Installationsverzeichnis durch das entpackte neue Verzeichnis, behalten die Verzeichnisstruktur bei und übernehmen Ihre angepasste Konfigurationsdatei; haben Sie wie in Schritt 3 mit git geklont, aktualisieren Sie jedes Repository mit git fetch und git rebase –autostash. Nach beiden Wegen starten Sie den Dienst neu. Meldet der letzte Befehl Konflikte aus lokalen Änderungen am Quellcode, lösen Sie sie von Hand; git reset –hard verwirft sie. Die Dokumentation empfiehlt eine vollständige neue Version statt einzelner Patches und vorher eine Sicherung; bei den Cloud-Angeboten der Anbieterin laufen Aktualisierungen automatisch. Sichern Sie Datenbank und Dateispeicher täglich auf einen entfernten Rechner, der vom Server selbst nicht erreichbar ist (Odoo sichern: Backup-Strategie).

So prüfen Sie das Ergebnis

Starten Sie den Dienst nach jeder Änderung an der Konfigurationsdatei neu und prüfen Sie fünf Punkte: systemctl status odoo zeigt den Dienst als laufend, und im Protokoll steht die Zeile Modules loaded, die die Dokumentation als Zeichen eines erfolgreichen Starts nennt. Der Port 8069 antwortet auf dem Server selbst. Die Anmeldung ist nicht der Standardzugang admin/admin aus der Quellen-Installation; dieselbe Dokumentation verlangt ein starkes Kennwort und eine Anmeldung, die nicht admin heißt. Bei mehreren Datenbanken trifft der Datenbankfilter genau eine je Hostname, und list_db = False verbirgt die Datenbankliste. Die Seite ist über HTTPS erreichbar, und der LiveChat verbindet sich, weil /websocket/ am Proxy ankommt. Üben Sie Aktualisierung und Wiederherstellung vorher an einer Kopie der Datenbank (Testumgebung für Odoo).

Wenn etwas nicht klappt

Symptom Ursache Lösung
Der Dienst startet nicht und das Protokoll nennt keine Datenbank Falscher Datenbankbenutzer oder PostgreSQL läuft nicht Zugang in der Konfigurationsdatei prüfen; der Benutzer darf kein Superuser sein, muss aber Datenbanken erstellen dürfen
Die Einstellungen wirken nicht Dienst wurde nach der Änderung nicht neu gestartet Dienst neu starten; die Dokumentation verlangt das ausdrücklich
Die Datei unter /etc/odoo.conf fehlt Beim deb-Paket liegt sie unter /etc/odoo/odoo.conf Pfad im Dienststart prüfen (–config) und diese Datei bearbeiten
Die Seite lädt ohne Formatierung Der Webserver liefert die statischen Dateien aus, aber seine Pfadangaben passen nicht zu den Add-on-Pfaden der Installation; die Dokumentation nennt die Werte abhängig vom addons-path root und try_files auf Ihre Add-on-Pfade abstimmen (die Dokumentation zeigt Beispiele für das deb-Paket und für Git-Quellen) oder die Auslieferung Odoo überlassen
Anhänge kommen nicht an Odoo wurde mit dem Schalter –x-sendfile gestartet, aber die Abgabe an NGINX (X-Accel) ist nicht eingerichtet Den internen Ort /web/filestore im Webserver ergänzen, wie die Dokumentation es für X-Accel zeigt, oder Odoo ohne –x-sendfile starten
Der LiveChat bricht ab Anfragen mit dem Pfad /websocket/ erreichen den gevent-Port des LiveChat-Workers nicht Weiterleitung im Proxy ergänzen; Odoo mit proxy_mode starten

Wann Sie Hilfe holen sollten

Ein Datenbank-Upgrade auf eine andere Hauptversion läuft über den Upgrade-Dienst der Anbieterin; der Editionsvergleich führt Versionsupgrades nur bei Enterprise, und das Upgrade-Formular verlangt einen Enterprise-Abonnementcode. Planen Sie es mit Partner und Kopie der Datenbank; den Ablauf je Hostingmodell beschreibt Odoo auf eine neue Version heben: Ablauf, den Weg ohne Enterprise-Abonnement Odoo Community mit OpenUpgrade upgraden. Wie eigene Module auf den Server kommen, steht in Eigene Module einspielen; was vor dem ersten Arbeitstag offen sein sollte, in der Checkliste für den Produktivstart. Um Vereinbarungen für eine eigene Installation geht es in Auftragsverarbeitung bei Odoo.

Häufige Fragen

Kann ich Odoo auf einem Windows-Server produktiv betreiben?

Davon rät die Dokumentation ab. Die Windows-Pakete sind für Tests und lokale Einzelplatzinstallationen gedacht, und den Mehrprozess-Betrieb, den dieselbe Seite für die Produktion empfiehlt, gibt es unter Windows nicht. Für einen Test auf dem Arbeitsplatz genügt der Installer; für den Dauerbetrieb nennt die Dokumentation Linux als Plattform der Wahl.

Warum liegt keine Konfigurationsdatei unter /etc/odoo.conf?

Die Installationsanleitung nennt für die Paketinstallation /etc/odoo.conf und für die Quellinstallation ~/.odoorc. Das deb-Paket der Community-Edition legt die Datei im Zweig 20.0 jedoch unter /etc/odoo/odoo.conf ab; der Dienst startet mit dem Parameter --config auf diesen Pfad. Prüfen Sie deshalb zuerst den Pfad im Dienststart, bevor Sie die Datei anlegen.

Reicht es, Odoo zu installieren und den Dienst zu starten?

Für einen Test im internen Netz ja. Für einen Server mit Internetanschluss kommen laut Dokumentation der Datenbankfilter, ein zufälliges Kennwort für die Datenbankverwaltung, das Abschalten des Datenbankmanagers, HTTPS über einen Proxy und tägliche Sicherungen auf einen entfernten Rechner dazu. Die Einzelheiten stehen in der [Checkliste für den Produktivstart](/betrieb/odoo-produktivsetzung-checkliste/).

Muss ich die neueste Version installieren?

Odoo 20.0 ist laut Release Notes seit September 2026 die aktuelle Hauptversion; der Standardsupport läuft drei Jahre bis September 2029 (geplant). Nach der Support-Übersicht ist ein Datenbank-Upgrade nur auf eine Hauptversion möglich, die noch im Standardsupport ist oder deren Standardsupport vor weniger als sechs Monaten endete; den Upgrade-Dienst der Anbieterin führt der Editionsvergleich unter Enterprise. Für einen Neustart ist deshalb Version 20.0 die naheliegende Wahl.

Quellen

  1. Odoo 20.0, Installationsprogramme (Packaged installers)Odoo S.A., Dokumentation · abgerufen am
  2. Odoo 20.0, Quellen-Installation (Source install)Odoo S.A., Dokumentation · abgerufen am
  3. Odoo 20.0, Systemkonfiguration (System configuration): Abschnitte dbfilter, Configuring Odoo, Builtin server, HTTPS, Security, Blocking Brute Force Attacks, Database Manager SecurityOdoo S.A., Dokumentation · abgerufen am
  4. Odoo 20.0, Datenbankverwaltung (Database management), Abschnitt InstallationOdoo S.A., Dokumentation · abgerufen am
  5. Odoo 20.0, Kommandozeilenschnittstelle (Command-line interface), Abschnitt Configuration file und Unterbefehl db initOdoo S.A., Entwicklerdokumentation · abgerufen am
  6. Odoo 20.0, Standard- und erweiterter Support (Standard and extended support)Odoo S.A., Dokumentation · abgerufen am
  7. Odoo 20.0, Fehlerbehebungs-Aktualisierungen (Bugfix updates)Odoo S.A., Dokumentation · abgerufen am
  8. Release Notes, Version 20, veröffentlicht im September 2026Odoo S.A. · abgerufen am
  9. Odoo-Downloadseite: Angebot der Versionen 20, 19 und 18 für Windows, Ubuntu/Debian, RPM und Quellcode; Enterprise nur mit Abonnement-CodeOdoo S.A. · abgerufen am
  10. Editionen vergleichen (Odoo Community und Enterprise): Versionsupgrades nur bei EnterpriseOdoo S.A. · abgerufen am
  11. Odoo Upgrade Service, Abschnitt On-premise: Upgrade-Formular verlangt einen Enterprise-AbonnementcodeOdoo S.A. · abgerufen am
  12. Odoo 20.0, Upgrade (Database management): Ablauf und Service-Level-Vereinbarung im Enterprise-AbonnementOdoo S.A., Dokumentation · abgerufen am
  13. Paketierung der Community-Edition, Zweig 20.0: debian/install und debian/postinst (Ablage der Konfiguration unter /etc/odoo, Systembenutzer odoo mit Home /var/lib/odoo, PostgreSQL-Rolle odoo mit createdb)Odoo S.A., öffentlicher Quellcode (Community) · abgerufen am
  14. odoo.service und odoo.conf, Zweig 20.0 (Dienststart als Benutzer odoo mit /usr/bin/odoo --config /etc/odoo/odoo.conf --logfile /var/log/odoo/odoo-server.log; Vorgabewerte db_user, db_host, db_port)Odoo S.A., öffentlicher Quellcode (Community) · abgerufen am