deploy: Skript zum Einrichten des Portals auf 131 #424

Merged
patrick merged 3 commits from feat/skript-131-portal into main 2026-10-29 11:17:24 +01:00
Owner

Aenderung

  • deploy/131-portal-einrichten.sh (als root auf 131): legt /etc/nexarch/web-portal.env an (Policy-Token wird nur zwischen Dateien kopiert), installiert die Unit aus der Vorlage, traegt Audience portal in account-api.env ein, ergaenzt den nginx-Block 8450 und CORS-Header fuer /auth/ und /account/ am Core (8443), oeffnet Port 8450 in /etc/nftables.conf, baut Portal und Login (mit NEXT_PUBLIC_PORTAL_URL) aus origin/main neu, startet account-api neu und prueft alles.
  • docs/BETRIEB-PORTAL.md: Abschnitt 131 verweist darauf und nennt die CORS-Luecke.

Auswirkung

  • Aendert auf 131: /etc/nexarch/{web-portal.env,account-api.env}, nginx (nexarch-gui, neue Dateien in /etc/nginx), /etc/nftables.conf, Unit nexarch-web-portal, Builds unter /opt/nexarch-web/{portal,account}. Jede geaenderte Datei wird vorher nach /root/portal-einrichten-<Zeit> gesichert; nginx und nft werden vor dem Laden geprueft und bei Fehler zurueckgenommen, Builds bei Fehler auf den alten .next zurueckgestellt.
  • Mit portal hat der Core zwei Audiences; Anfragen ohne ?module= werden dann abgelehnt. Auf 131 nutzt bisher kein Frontend eine Sitzung (geprueft).
  • account-api steht auf 131 weiterhin auf failed, solange das DB-Passwort nicht zur DSN passt (SQLSTATE 28P01). Das Skript startet neu und zeigt die Ursache, kann das Passwort aber nicht setzen.

Tests

bash -n; die nginx-Aenderung wurde an einem Auszug trocken geprueft. Das Skript selbst ist nicht auf 131 gelaufen (Betreiberaktion).

🤖 Generated with Claude Code

## Aenderung - `deploy/131-portal-einrichten.sh` (als root auf 131): legt `/etc/nexarch/web-portal.env` an (Policy-Token wird nur zwischen Dateien kopiert), installiert die Unit aus der Vorlage, traegt Audience `portal` in `account-api.env` ein, ergaenzt den nginx-Block 8450 und CORS-Header fuer `/auth/` und `/account/` am Core (8443), oeffnet Port 8450 in `/etc/nftables.conf`, baut Portal und Login (mit `NEXT_PUBLIC_PORTAL_URL`) aus `origin/main` neu, startet `account-api` neu und prueft alles. - `docs/BETRIEB-PORTAL.md`: Abschnitt 131 verweist darauf und nennt die CORS-Luecke. ## Auswirkung - Aendert auf 131: `/etc/nexarch/{web-portal.env,account-api.env}`, nginx (`nexarch-gui`, neue Dateien in `/etc/nginx`), `/etc/nftables.conf`, Unit `nexarch-web-portal`, Builds unter `/opt/nexarch-web/{portal,account}`. Jede geaenderte Datei wird vorher nach `/root/portal-einrichten-<Zeit>` gesichert; nginx und nft werden vor dem Laden geprueft und bei Fehler zurueckgenommen, Builds bei Fehler auf den alten `.next` zurueckgestellt. - Mit `portal` hat der Core zwei Audiences; Anfragen ohne `?module=` werden dann abgelehnt. Auf 131 nutzt bisher kein Frontend eine Sitzung (geprueft). - `account-api` steht auf 131 weiterhin auf `failed`, solange das DB-Passwort nicht zur DSN passt (SQLSTATE 28P01). Das Skript startet neu und zeigt die Ursache, kann das Passwort aber nicht setzen. ## Tests `bash -n`; die nginx-Aenderung wurde an einem Auszug trocken geprueft. Das Skript selbst ist nicht auf 131 gelaufen (Betreiberaktion). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
patrick added 1 commit 2026-10-29 00:00:31 +01:00
deploy: Skript zum Einrichten des Portals auf 131
RBAC-Rollenhierarchie-Pflichtgate / rbac-policy-invariant (pull_request) Canceled after 0s
Core-Pflichttest-Gate / pflichttest-gate (pull_request) Canceled after 0s
Supply-Chain-Scan (npm) / npm-audit (pull_request) Canceled after 0s
Supply-Chain-Scan (Go) / govulncheck (pull_request) Canceled after 0s
Core-Schnittstellen-Vertragstests / contract-tests (pull_request) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (pull_request) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (pull_request) Canceled after 0s
CI / Connect Security-Test-Gate (QA-01 AC4, Merge-Gate) (pull_request) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (pull_request) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (pull_request) Canceled after 0s
CI / Web (dms-browser) (pull_request) Canceled after 0s
CI / Web (pdf-viewer) (pull_request) Canceled after 0s
CI / Web (shl) (pull_request) Canceled after 0s
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (pull_request) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (push) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (push) Canceled after 0s
CI / Connect Security-Test-Gate (QA-01 AC4, Merge-Gate) (push) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (push) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (push) Canceled after 0s
CI / Web (dms-browser) (push) Canceled after 0s
CI / Web (pdf-viewer) (push) Canceled after 0s
CI / Web (shl) (push) Canceled after 0s
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (push) Canceled after 0s
638150450d
Env-Datei, Unit, nginx-Block 8450, nft-Regel, Audience portal, CORS am Core
und Neubau von Portal und Login in einem idempotenten Lauf mit Sicherungen.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
patrick added 1 commit 2026-10-29 10:55:33 +01:00
deploy: shl bekommt node_modules-Link, sonst findet der Portal-Build react nicht
Supply-Chain-Scan (Go) / govulncheck (pull_request) Canceled after 0s
RBAC-Rollenhierarchie-Pflichtgate / rbac-policy-invariant (pull_request) Canceled after 0s
Core-Pflichttest-Gate / pflichttest-gate (pull_request) Canceled after 0s
Supply-Chain-Scan (npm) / npm-audit (pull_request) Canceled after 0s
Core-Schnittstellen-Vertragstests / contract-tests (pull_request) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (pull_request) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (pull_request) Canceled after 0s
CI / Connect Security-Test-Gate (QA-01 AC4, Merge-Gate) (pull_request) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (pull_request) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (pull_request) Canceled after 0s
CI / Web (dms-browser) (pull_request) Canceled after 0s
CI / Web (pdf-viewer) (pull_request) Canceled after 0s
CI / Web (shl) (pull_request) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (push) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (push) Canceled after 0s
CI / Connect Security-Test-Gate (QA-01 AC4, Merge-Gate) (push) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (push) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (push) Canceled after 0s
CI / Web (dms-browser) (push) Canceled after 0s
CI / Web (pdf-viewer) (push) Canceled after 0s
CI / Web (shl) (push) Canceled after 0s
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (push) Canceled after 0s
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (pull_request) Canceled after 0s
154f3fc505
Auf 131 hat /opt/nexarch-web/portal/web/shl kein node_modules; der rsync
laesst node_modules aus. Typpruefung scheiterte mit TS2307 'react'.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
patrick added 1 commit 2026-10-29 10:58:15 +01:00
deploy: npm ci bei abweichender Lockdatei, shl nutzt node_modules der App
Core-Pflichttest-Gate / pflichttest-gate (pull_request) Canceled after 0s
RBAC-Rollenhierarchie-Pflichtgate / rbac-policy-invariant (pull_request) Canceled after 0s
Supply-Chain-Scan (npm) / npm-audit (pull_request) Canceled after 0s
Supply-Chain-Scan (Go) / govulncheck (pull_request) Canceled after 0s
Core-Schnittstellen-Vertragstests / contract-tests (pull_request) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (pull_request) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (pull_request) Canceled after 0s
CI / Connect Security-Test-Gate (QA-01 AC4, Merge-Gate) (pull_request) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (pull_request) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (pull_request) Canceled after 0s
CI / Web (dms-browser) (pull_request) Canceled after 0s
CI / Web (pdf-viewer) (pull_request) Canceled after 0s
CI / Web (shl) (pull_request) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (push) Canceled after 0s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (push) Canceled after 0s
CI / Connect Security-Test-Gate (QA-01 AC4, Merge-Gate) (push) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (push) Canceled after 0s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (push) Canceled after 0s
CI / Web (dms-browser) (push) Canceled after 0s
CI / Web (pdf-viewer) (push) Canceled after 0s
CI / Web (shl) (push) Canceled after 0s
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (push) Canceled after 0s
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (pull_request) Canceled after 0s
d7172a1699
Account auf 131 hat Next 14.2.35, die Quelle braucht 16.3.5 (--webpack
unbekannt). Abhaengigkeiten werden jetzt per Lockdatei-Hash erneuert,
shl/node_modules wird auf die der App verlinkt (eine React-Instanz).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
patrick merged commit 52a6a4bfd7 into main 2026-10-29 11:17:24 +01:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: scripte/nexarch#424