wiki/c-work/4-done/2026-05-int-environment-infomaniak-migration.md
2026-06-02 09:42:12 +02:00

3.5 KiB

INT-Umgebung auf Infomaniak migrieren

Beschreibung und Kontext

Migration der poweron-swiss INT-Umgebung (platform-core, ui-nyla) von Azure auf Infomaniak Public Cloud. Betrifft nur poweron-swiss-Repos. Die poweron-Repos (gateway, ui-nyla) bleiben auf Azure.

Checkliste

Env-Dateien (platform-core, ui-nyla)

  • env-int.env: APP_API_URL → https://api-int.poweron.swiss
  • env-int.env: DB_HOST → db-int.poweron.swiss
  • env-int.env: DB_USER → poweron_dev
  • env-int.env: OAuth-Redirect-URIs → api-int.poweron.swiss
  • env-int.env: CORS (APP_ALLOWED_ORIGINS) → alle UI-Domains (poweron.swiss + poweron-center.net)
  • env-int.env: APP_KEY_SYSVAR → /srv/platform-core/shared/secrets/master_key.txt
  • env-int.env: APP_LOGGING_LOG_DIR → srv/platform-core/shared/logs
  • env-int.env: TEAMSBOT_BROWSER_BOT_URL → http://teamsbot.poweron.swiss:4100
  • env-prod.env: DB_HOST → db.poweron.swiss
  • env-prod.env: CORS aktualisiert
  • env-prod.env: TEAMSBOT_URL aktualisiert
  • ui-nyla env-int.env: bereits korrekt (VITE_API_BASE_URL=https://api-int.poweron.swiss)

OAuth-Provider (externe Portale)

  • Microsoft Entra: Redirect-URIs auf api-int.poweron.swiss aktualisiert
  • Google OAuth Console: Redirect-URIs auf api-int.poweron.swiss aktualisiert

DNS

  • db.poweron.swiss → 10.20.0.21 (porta-main-db)
  • db-int.poweron.swiss → 10.20.0.175 (porta-int-db)
  • teamsbot.poweron.swiss → eingerichtet
  • api-int.poweron.swiss → eingerichtet

Server: porta-int-db (db-int.poweron.swiss)

SSH: ssh -i ~/.ssh/ida-laptop.pem ubuntu@37.156.42.67

  • VM läuft, SSH-Verbindung OK

Schritt 1: Bestand prüfen

  • PostgreSQL-Status prüfen
    sudo systemctl status postgresql
    
  • Falls PostgreSQL läuft: vorhandene User prüfen
    sudo -u postgres psql -c "\du" --> USER poweron_dev exists
    
  • Vorhandene Datenbanken prüfen
    sudo -u postgres psql -c "\l"
    
  • pg_hba.conf prüfen (Zugriff vom internen Subnetz?)
    sudo cat /etc/postgresql/*/main/pg_hba.conf | grep -v "^#" | grep -v "^$"
    

Schritt 2: Passwort + Zugriff

  • Passwort für poweron_dev gesetzt
  • Verbindungstest lokal auf DB-VM OK (psql -h 127.0.0.1 -U poweron_dev -d postgres -c "SELECT 1;")

Server: porta-int-platform-core (api-int.poweron.swiss)

  • Verbindungstest zur DB OK
  • Master Key abgelegt (/srv/platform-core/shared/secrets/master_key.txt)
  • Log-Verzeichnis vorhanden
  • App-Verzeichnis + Git-Repo vorhanden
  • Python venv vorhanden
  • systemd-Service platform-core konfiguriert
  • Nginx: client_max_body_size 0, WebSocket-Upgrade, Timeouts 600s, proxy_request_buffering off (analog PROD)
  • SSL: Let's Encrypt Zertifikat fuer api-int.poweron.swiss aktiv

DB-Passwort verschlüsseln

  • Passwort in env-int.env eingetragen und verschlüsselt (DB_PASSWORD_SECRET = INT_ENC:...)

Forgejo CI/CD

  • Workflow int_porta-int-platform-core.yml geprüft — zeigt korrekt auf api-int.poweron.swiss, Branch int, Pfad /srv/platform-core/current

Wiki

  • DNS-Einträge für DB-Server in infrastructure.md nachgetragen
  • CHANGELOG aktualisiert

Notizen

  • SSH auf porta-int-db geht nur über öffentliche IP 37.156.42.67 (DNS db-int.poweron.swiss zeigt auf interne IP 10.20.0.175, korrekt für App-Zugriff)
  • SSH auf porta-main-db: 37.156.40.141