Zum Inhalt springen

Dokumentation / Umzug zu calmo.cloud

Von einem anderen Hoster migrieren

Ein self-hosted oder bei Drittanbietern gehostetes Odoo zu calmo.cloud umziehen: Backup exportieren, Addons verbinden, Server und Dienst einrichten, wiederherstellen, Domain umstellen.

Diese Anleitung deckt jedes Odoo ab, das weder auf Odoo.sh noch auf Odoo Online läuft: ein Server, den du selbst betreibst, ein Managed-Hosting-Anbieter oder ein Docker-Setup irgendwo. Der Ablauf ist immer derselbe: ein Backup raus, ein Backup rein, Addons aus Git deployen und ein Domain-Wechsel.

Für die beiden von Odoo selbst betriebenen Plattformen gibt es eigene Anleitungen: Odoo.sh und Odoo Online.

Bevor du beginnst #

Stelle sicher, dass du Folgendes hast:

  • Eine Möglichkeit, ein Backup vom aktuellen Hoster zu exportieren (siehe Schritt 1)
  • Deine Custom-Addons in einem GitHub-Repository, oder die Zeit, sie dorthin zu bringen
  • S3-kompatiblen Speicher (z. B. AWS S3, Backblaze B2, MinIO) für ein Backup-Ziel
  • Einen Server, auf den du umziehst, oder einen verbundenen Cloud-Anbieter, damit calmo.cloud einen bestellen kann
  • Einen bei deinem Team hinterlegten SSH-Schlüssel, damit du das Backup-Archiv auf den Server schieben kannst

calmo.cloud betreibt Odoo Enterprise 18.0, 19.0 und 20.0. Eine Community-Datenbank oder eine ältere Version muss zuerst aktualisiert werden, zum Beispiel mit Odoos Upgrade-Service, und die aktualisierte Datenbank ist die, die du migrierst. Ein Backup lässt sich nur in einen Dienst mit derselben Odoo-Version wiederherstellen.

Schritt 1: Backup exportieren #

calmo.cloud importiert das Standard-Odoo-Backup-Archiv: ein .zip mit dump.sql, dem Ordner filestore/ und einer manifest.json. Zwei Wege, um eines zu bekommen:

  • Datenbank-Manager — öffne https://your-odoo.example/web/database/manager, wähle Backup, gib das Master-Passwort ein und wähle das Format zip (includes filestore). Viele Hoster deaktivieren den Datenbank-Manager in Produktion; ist das bei dir der Fall, nutze die nächste Option.
  • Odoos eigener Dump — führe auf dem aktuellen Server Odoos db dump für deine Datenbank aus, oder bitte deinen Hoster um ein Backup, das den Dateispeicher enthält. Ein reiner pg_dump reicht nicht, weil der Dateispeicher außerhalb der Datenbank liegt.

Erstelle das Backup direkt vor der Umstellung und bitte deine Nutzer, zwischen Export und Go-Live nicht mehr im alten Odoo zu arbeiten.

Schritt 2: Addon-Repository verbinden #

calmo.cloud deployt Custom-Addons von GitHub. Folge Addon-Repositories, um die calmo.cloud GitHub App zu installieren und das Repository hinzuzufügen. Standardmäßig sucht calmo.cloud nach einem Branch mit dem Namen der Odoo-Version (18.0); sind deine Branches anders benannt, trage den Branch im Abschnitt Branch names per Odoo version des Repositorys ein.

Liegen deine Addons noch nicht in Git, ist jetzt der Moment: Repository anlegen, die Addon-Ordner committen, pushen. Auch Addons von Drittanbietern aus dem Odoo App Store oder der OCA kommen in ein Repository, jedes OCA-Repository als eigene Verbindung.

Schritt 3: Backup-Speicher einrichten #

Erstelle unter Infrastructure Settings → Backup Destinations ein Ziel, das auf deinen S3-kompatiblen Speicher zeigt. Siehe Mehrere Backup-Ziele.

Der Import in Schritt 6 legt das Archiv am Backup-Ziel des Dienstes ab. Ohne konfiguriertes Ziel kannst du dein Backup nicht importieren.

Schritt 4: Server hinzufügen und Odoo-Dienst erstellen #

  1. Server hinzufügen: registriere ihn unter Servers, prüfe die Erreichbarkeit, installiere Docker und aktiviere Postgres und Traefik. Der Server sollte eine frische Ubuntu-Maschine sein; nutze nicht den Server weiter, auf dem dein altes Odoo noch läuft.
  2. Odoo-Dienst erstellen: erstelle unter Projects → Odoos ein neues Odoo auf diesem Server, in der Version deiner Datenbank.
  3. Füge in den Backup Settings des Dienstes das Backup-Ziel aus Schritt 3 hinzu und markiere es als Primary.

Eine Provisionierungs-Vorlage erledigt all das mit einem Klick.

Schritt 5: Addons deployen #

Eine wiederhergestellte Datenbank erwartet, dass jedes installierte Modul auf dem Dienst vorhanden ist. Öffne den Addons-Tab des Dienstes und deploye alle Custom-Addons, die deine Datenbank nutzt, bevor du wiederherstellst. Python-Abhängigkeiten, die deine Addons in ihrem Manifest deklarieren, werden mit installiert.

Schritt 6: Backup importieren und wiederherstellen #

Schiebe das Archiv aus Schritt 1 auf deinen neuen Server und importiere es. Backups importieren beschreibt den vollständigen Ablauf:

  1. Kopiere das Archiv auf den Server, z. B. scp backup.zip root@203.0.113.10:/tmp/import_backup.zip. Der Dialog Import Backup zeigt diesen Befehl bereits für deinen Server ausgefüllt.
  2. Öffne auf dem Dienst den Backups-Tab und klicke auf Import Backup.
  3. Gib den Pfad ein und wähle Restore into this service after import. Der frisch erstellte Dienst enthält noch keine Daten, du kannst also skip safety backup aktivieren.

calmo.cloud stoppt den Dienst, ersetzt Datenbank und Dateispeicher durch deine Daten, startet den Dienst wieder und legt das Archiv an deinem Backup-Ziel ab. web.base.url wird automatisch auf die URL des Dienstes gesetzt. Wenn du die Migration lieber skripten möchtest, nutze die API, die denselben Ablauf bietet.

Schritt 7: Prüfen und live gehen #

  • Melde dich über die Plattform-Domain des Dienstes mit deinen bestehenden Odoo-Benutzern an.
  • Öffne Settings → Apps und prüfe, dass deine Custom-Module aktiv und aktuell sind.
  • Prüfe Einstellungen, die auf den alten Server verwiesen: Postausgangs- und Posteingangsserver, geplante Aktionen, die externe Systeme aufrufen, Integrationen mit fester IP-Adresse.
  • Füge deine eigene Domain hinzu und aktualisiere ihren DNS-Eintrag. calmo.cloud stellt das SSL-Zertifikat automatisch aus.
  • Richte einen automatischen Backup-Zeitplan ein, damit die neue Instanz von Anfang an gesichert wird.

Lasse das alte Odoo laufen, aber für Nutzer gestoppt, bis die migrierte Instanz einige Tage ohne Probleme gelaufen ist. Erstelle dann ein letztes Backup des alten Hosts und schalte ihn ab.

Wie geht es weiter? #