Odoo 19 in Docker: Vollständige Installationsanleitung für Ubuntu 24.04 (Community & Enterprise)
Einführung
Die Bereitstellung eines ERP-Systems scheint oft eine entmutigende Aufgabe zu sein, aber die Containerisierung macht diesen Prozess zu einem rationalisierten Arbeitsablauf. In dieser Anleitung zeigen wir Ihnen, wie Sie Odoo 19 auf einer neuen Ubuntu 24.04-Instanz einrichten.
Das Besondere an dieser Methode ist ihre Vielseitigkeit. Wir definieren eine Architektur, die es Ihnen ermöglicht, mit der kostenlosen Community-Version zu beginnen und gleichzeitig durch einfaches Kopieren von Modulen ein sofortiges Upgrade auf die Enterprise-Version durchzuführen. Keine "on-the-fly"-Konfigurationshacks - nur sauberes Container-Management und automatisches SSL über Caddy.
Technischer Stack (verifiziert):
- OS: Ubuntu 24.04 LTS (Da es sich um eine Docker-Installation handelt, gilt die Methode auch für andere Linux-Distributionen)
- Containerisierung: Docker 29.1.5 + Docker Compose
- Webserver: Caddy (Automatisches HTTPS)
- Datenbank: PostgreSQL 18
- VM-Spezifikationen: 2 vCPU, 4 GB RAM, 40 GB NVMe
Schritt 0: Docker installieren
Installieren Sie Docker aus dem offiziellen Repository:
curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh
Fügen Sie Ihren Benutzer zur Docker-Gruppe hinzu:
sudo usermod -aG docker $USER newgrp docker
Aktivieren und starten Sie Docker:
sudo systemctl enable docker sudo systemctl start docker
Überprüfen Sie die Installation:
docker ps
Schritt 1: Einrichten der Projektstruktur
Erstellen Sie das Arbeitsverzeichnis und die notwendigen Ordner:
mkdir odoo-stack && cd odoo-stack mkdir -p addons enterprise
Schritt 2: Erstellen der Datei docker-compose.yml
Erstellen Sie eine neue Docker-Compose-Datei:
nano docker-compose.yml
Fügen Sie die folgende Konfiguration ein (ersetzen Sie odoo_secure_password in den beiden Abschnitten db environment und odoo environment mit Ihrem tatsächlichen Passwort):
YAML
services: db: image: postgres:18 environment: - POSTGRES_DB=postgres - POSTGRES_PASSWORD=odoo_secure_password - POSTGRES_USER=odoo - PGDATA=/var/lib/postgresql/data/pgdata volumes: - odoo-db-data:/var/lib/postgresql/data/pgdata restart: unless-stopped odoo: image: odoo:19.0 depends_on: - db volumes: - odoo-web-data:/var/lib/odoo - ./addons:/mnt/extra-addons - ./enterprise:/mnt/enterprise-addons Umgebung: - HOST=db - USER=odoo - PASSWORD=odoo_secure_password Befehl: > --addons-path=/usr/lib/python3/dist-packages/odoo/addons,/mnt/enterprise-addons,/mnt/extra-addons --proxy-mode restart: unless-stopped caddy: image: caddy:latest ports: - "80:80" - "443:443" volumes: - ./Caddyfile:/etc/caddy/Caddyfile - caddy-data:/data restart: unless-stopped volumes: odoo-web-data: odoo-db-data: caddy-data:
Schritt 3: Erstellen der Caddydatei
Erstellen Sie die Caddy-Konfigurationsdatei:
nano Caddyfile
Fügen Sie die folgende Konfiguration ein (ersetzen Sie :80 durch Ihre Domain für automatisches SSL):
# Ersetzen Sie :80 durch YOUR_DOMAIN für automatisches SSL :80 { # Erhöhen Sie die maximale Größe des Client-Bodys für Dateiuploads request_body { max_size 300MB } # Longpolling für Chats und Benachrichtigungen reverse_proxy /longpolling/* odoo:8072 { header_up X-Forwarded-Host {host} header_up X-Forwarded-Proto {scheme} } # Hauptverkehr reverse_proxy odoo:8069 { header_up X-Forwarded-Host {host} header_up X-Forwarded-Proto {scheme} } }
Schritt 4: Starten des Stacks
Starten Sie den Stack:
docker compose up -d
Überprüfen Sie den Status (alle 3 Container sollten "Up" sein):
docker compose ps
Überprüfen Sie die Logs, um sicherzustellen, dass keine Fehler vorliegen:
docker compose logs odoo
Schritt 5: Ersteinrichtung
Öffnen Sie Ihren Browser und navigieren Sie zu:
- Über IP: http://YOUR_SERVER_IP
- Über Domain: https://YOUR_DOMAIN (falls in der Caddy-Datei konfiguriert)
Füllen Sie das Formular zur Erstellung der Datenbank aus:
- Master-Passwort: Bei der ersten Anmeldung wird ein Master-Passwort vorgeschlagen (speichern Sie dieses Passwort, es ist wichtig).
- Datenbankname: z.B. mycompany.
- E-Mail: Ihre erreichbare E-Mail-Adresse (dies wird Ihr Login sein).
- Passwort: Ihr Passwort für die Systemanmeldung.
- Sprache: Wählen Sie Ihre bevorzugte Sprache.
- Land: Wählen Sie Ihr Land.
- Demo-Daten: Lassen Sie das Kontrollkästchen deaktiviert, um eine saubere Produktionsdatenbank zu erhalten.
Klicken Sie auf Datenbank erstellen und warten Sie, bis der Vorgang abgeschlossen ist (1-2 Minuten).

Upgrades von Community auf Enterprise
Um von Community zu Enterprise zu wechseln, platzieren Sie die Module einfach in dem dafür vorgesehenen Verzeichnis.
Schritt 1. Beziehen Sie die Enterprise-Module (über ein Odoo-Abonnement).
Schritt 2. Extrahieren Sie sie in den Ordner ./enterprise/.
Schritt 3. Starten Sie den Container neu:
docker compose restart odoo
Schritt 4. Installieren Sie die erforderlichen Enterprise-Module über die Benutzeroberfläche.
Es sind keine Änderungen an den Konfigurationsdateien erforderlich - der Pfad zu den Enterprise-Modulen ist bereits vorkonfiguriert.
Firewall-Konfiguration
Wenn Sie UFW verwenden, führen Sie Folgendes aus:
sudo ufw allow ssh/tcp && \ sudo ufw allow 80/tcp && \ sudo ufw allow 443/tcp && \ sudo ufw default deny incoming && \ sudo ufw default allow outgoing && \ sudo ufw --force enable
Nützliche Befehle
Alles stoppen:
docker compose down
Nur Odoo neu starten:
docker compose restart odoo
Logs anzeigen:
docker compose logs -f odoo docker compose logs -f db docker compose logs -f caddy
Datenbank-Backup:
docker compose exec db pg_dumpall -U odoo > backup_$(date +%Y%m%d).sql
Datenbank wiederherstellen:
cat backup_20240125.sql | docker compose exec -T db psql -U odoo
Vollständige Löschung (Vorsicht!):
docker compose down -v rm -rf addons enterprise Caddyfile
Verwendung eines Domainnamens
Um ein automatisches SSL-Zertifikat von Let's Encrypt zu erhalten:
Schritt 1. Konfigurieren Sie DNS: Richten Sie einen A-Eintrag von YOUR_DOMAIN auf die IP Ihres Servers.
Schritt 2. Caddyfile aktualisieren: Ersetzen Sie :80 durch IHRE_DOMAIN.
Schritt 3. Starten Sie Caddy neu:
docker compose restart caddy
Caddy wird das SSL-Zertifikat automatisch bereitstellen.
Schritt 4. Greifen Sie über https://YOUR_DOMAIN auf Odoo zu.
Überprüfen Sie die Ausstellung des Zertifikats:
docker compose logs caddy | grep certificate