From da55c8e57538fd23bf18ab095eeca4142d23c123 Mon Sep 17 00:00:00 2001 From: Floke Date: Thu, 5 Mar 2026 15:26:58 +0000 Subject: [PATCH] docs: Add recommended migration plan to RELOCATION.md [30388f42] This commit updates the RELOCATION.md file to include a detailed, safer migration plan as a recommended alternative to the initial proposal. This provides a clear and secure strategy for the discussion with the IT department. --- RELOCATION.md | 69 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/RELOCATION.md b/RELOCATION.md index 9c75acad..f1c105cc 100644 --- a/RELOCATION.md +++ b/RELOCATION.md @@ -59,3 +59,72 @@ Die VM muss in der Lage sein, ausgehende Verbindungen zu den folgenden externen 1. **Firewall-Regeln (eingehend):** Bitte öffnen Sie die Ports `3000`, `2222`, `8090`, `8003`, `8501`, `8004`, `8002` und `5173` für die Ziel-IP `10.10.81.2`. 2. **Firewall-Regeln (ausgehend):** Stellen Sie sicher, dass die VM ausgehende HTTPS-Verbindungen (Port 443) zu beliebigen Zielen im Internet aufbauen kann. 3. **Reverse Proxy (Optional, aber empfohlen):** Planen Sie die Einrichtung eines Reverse Proxys (z.B. Nginx, Traefik) mit SSL-Zertifikaten für den Zugriff auf die Web-Anwendungen, insbesondere für den Haupt-Port `8090`. + +--- + +### **Anhang: Migrationsvorschlag der IT** + +Das Folgende ist der initial vorgeschlagene Migrationsprozess seitens der IT. + +```bash +# Auf dem Quellsystem (Synology) +cd /volume1/homes/Floke/python +tar czf lead-engine-app.tgz brancheneinstufung/ + +docker images +docker save : > lead-engine-image.tar + +# Manuelle Übertragung via USB-Stick + +# Auf dem Zielsystem (docker1) +docker load < lead-engine-image.tar +mkdir -p /srv/lead-engine +tar xzf lead-engine-app.tgz -C /srv/lead-engine + +# Und starten +``` + +--- + +### **Empfohlener Migrationsplan (Sicherer Ansatz)** + +Der Vorschlag der IT ist für einen einzelnen, einfachen Container geeignet, birgt jedoch für diesen komplexen Anwendungs-Stack erhebliche Risiken (Datenverlust, Konfigurationsfehler). Ein sicherer Umzug muss zwingend **Code, Konfiguration UND persistente Daten** umfassen. + +**Analyse der Risiken des IT-Vorschlags:** +1. **Fokus auf nur einen Container:** Der Plan berücksichtigt nur die `lead-engine`, ignoriert aber die ca. 20 anderen, voneinander abhängigen Dienste (Gitea, Datenbanken, Proxy etc.). +2. **Fehlende persistente Daten (Größtes Risiko):** Der Plan sichert nur den Anwendungs-Code. Er ignoriert die Daten-Volumes, was zum **Totalverlust aller Git-Repositories, Datenbankinhalte und anderer kritischer Daten** führen würde. +3. **Fehlende Orchestrierung:** Die `docker-compose.yml`, das "Gehirn" des Systems, wird ignoriert. Ohne sie ist ein Starten des komplexen Stacks nicht möglich, da alle Netzwerk-Verbindungen, Port-Mappings und Volume-Zuweisungen fehlen. + +**Der empfohlene, sichere Prozess:** + +Der korrekte Ansatz ist, das gesamte Projektverzeichnis zu archivieren, welches alle drei Säulen (Code, Konfiguration, Daten) enthält. + +**Schritt 1: Ein vollständiges Archiv auf dem Quellsystem erstellen** +Anstatt nur einen Dienst zu sichern, wird das gesamte Projekt-Stammverzeichnis, das alle Docker-Konfigurationen und Daten-Volumes enthält, als einzelnes Archiv (`.tar.gz`) zusammengefasst. + +```bash +# Beispielhafter Befehl im übergeordneten Verzeichnis +# Der genaue Pfad und Name muss vor der Ausführung verifiziert werden. +tar czf GTM_ENGINE_MIGRATION_ARCHIVE.tar.gz ./DEIN_PROJEKT_ORDNER/ +``` + +Dieses Archiv enthält: +- Den gesamten Quellcode aller Dienste. +- Die zentrale `docker-compose.yml`. +- Alle `.env`-Dateien mit API-Schlüsseln und Secrets. +- **Alle lokalen Daten-Volumes** (z.B. `./postgres:/var/lib/postgresql/data`, `./gitea:/data`, etc.), die in der `docker-compose.yml` definiert sind. + +**Schritt 2: Archiv auf das Zielsystem übertragen** +Die erstellte Archivdatei (`GTM_ENGINE_MIGRATION_ARCHIVE.tar.gz`) wird auf die neue VM `docker1` übertragen (z.B. via `scp` oder `rsync`). + +**Schritt 3: Auf dem Zielsystem wiederherstellen und starten** +Auf der neuen VM sind nur zwei Befehle nötig: +```bash +# 1. Archiv entpacken +tar xzf GTM_ENGINE_MIGRATION_ARCHIVE.tar.gz + +# 2. Den kompletten Stack starten +cd DEIN_PROJEKT_ORDNER/ +docker compose up -d +``` +Docker Compose wird die Konfiguration lesen, alle Dienste mit ihren Daten und Netzwerk-Verbindungen korrekt starten und den Zustand des Quellsystems exakt replizieren.