docs/deploy: Portal-Betrieb 131/204, Unit-Vorlage, nginx-Proxy fuer 204
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (push) Canceled after 0s
CI / Web-Barrierefreiheitspruefung (axe, Tastatur, Reflow, Textabstaende) (pull_request) Canceled after 0s
CI / Core-Modul (Build/Vet/Test) (push) Successful in 41s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (push) Successful in 4s
CI / Connect Security-Test-Gate (QA-01 AC4, Merge-Gate) (push) Successful in 3s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (push) Failing after 14s
CI / Web (dms-browser) (push) Failing after 53s
CI / Web (pdf-viewer) (push) Failing after 38s
CI / Web (shl) (push) Failing after 8s
CI / Core-Modul (Build/Vet/Test) (pull_request) Successful in 42s
CI / DMS Security-Test-Gate (AC5, Merge-Gate) (pull_request) Successful in 3s
CI / Connect Security-Test-Gate (QA-01 AC4, Merge-Gate) (pull_request) Successful in 3s
CI / DMS-Modul Supply-Chain-Scan (govulncheck) (pull_request) Failing after 12s
CI / Web (dms-browser) (pull_request) Failing after 49s
CI / Web (pdf-viewer) (pull_request) Failing after 35s
CI / Web (shl) (pull_request) Failing after 8s
Core-Schnittstellen-Vertragstests / contract-tests (pull_request) Successful in 13m6s
Supply-Chain-Scan (Go) / govulncheck (pull_request) Failing after 45s
Supply-Chain-Scan (npm) / npm-audit (pull_request) Failing after 1m12s
Core-Pflichttest-Gate / pflichttest-gate (pull_request) Successful in 13m12s
RBAC-Rollenhierarchie-Pflichtgate / rbac-policy-invariant (pull_request) Successful in 13m24s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (pull_request) Canceled after 0s
CI / DMS-Modul (Lint/Build/Test/Coverage/Artefakt) (push) Canceled after 0s

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
patrickandClaude Sonnet 5.5 committed 2026-10-28 14:53:31 +01:00
1 parent a16d8cef66
commit 6da280f91d
4 files changed
+84

No files matched your search

@@ -0,0 +1,46 @@
# 204 (Dev/Test), Ergaenzung zu /etc/nginx/sites-available/nexarch-portal-live.
# Macht connect-api und rbac-admin-api fuer Browser erreichbar, weil
# NEXT_PUBLIC_* beim Build ins Bundle geht und 127.0.0.1 dort den Rechner des Benutzers meint.
map $http_origin $np_cors_origin {
default "";
"~^http://192\.168\.1\.204:31[0-9][0-9]$" $http_origin;
"~^https://192\.168\.1\.204(:[0-9]+)?$" $http_origin;
}
server {
listen 8447 ssl;
http2 on;
server_name 192.168.1.204;
ssl_certificate /etc/ssl/nexarch-portal-live/cert.pem;
ssl_certificate_key /etc/ssl/nexarch-portal-live/key.pem;
location / {
if ($request_method = OPTIONS) { return 204; }
proxy_pass http://127.0.0.1:18105;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_hide_header Access-Control-Allow-Origin;
add_header Access-Control-Allow-Origin $np_cors_origin always;
add_header Access-Control-Allow-Credentials true always;
add_header Access-Control-Allow-Methods "GET, POST, PUT, PATCH, DELETE, OPTIONS" always;
add_header Access-Control-Allow-Headers "Content-Type, Authorization, X-Tenant-Slug" always;
}
}
server {
listen 8448 ssl;
http2 on;
server_name 192.168.1.204;
ssl_certificate /etc/ssl/nexarch-portal-live/cert.pem;
ssl_certificate_key /etc/ssl/nexarch-portal-live/key.pem;
location / {
if ($request_method = OPTIONS) { return 204; }
proxy_pass http://127.0.0.1:8212;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_hide_header Access-Control-Allow-Origin;
add_header Access-Control-Allow-Origin $np_cors_origin always;
add_header Access-Control-Allow-Credentials true always;
add_header Access-Control-Allow-Methods "GET, POST, PUT, PATCH, DELETE, OPTIONS" always;
add_header Access-Control-Allow-Headers "Content-Type, Authorization, X-Tenant-Slug" always;
}
}
@@ -0,0 +1,16 @@
[Unit]
Description=NEXARCH Web - Portal Frontend
After=network.target
[Service]
Type=simple
User=nexarch
WorkingDirectory=__INSTALL_DIR__/web/portal
EnvironmentFile=/etc/nexarch/web-portal.env
ExecStart=__INSTALL_DIR__/web/portal/node_modules/.bin/next start -p 3057
Restart=on-failure
RestartSec=5
StandardOutput=journal
[Install]
WantedBy=multi-user.target
+7
View File
@@ -68,3 +68,10 @@ Offene PRs, die auf Merge warten, stehen unter C-01. Merge-Reihenfolge: erst DB-
### C-02 Aufräumen — nur mit Freigabe
- `/root/manticore-backup-pre29` auf 131; Dateileichen im Manticore-Datenverzeichnis auf 204 nur nach Sichtung durch den User.
- Verwaiste Test-Schemas `dmstest_*`, `workflowtest_*` können nach den testdb-Umstellungen als `connecttest_*` auftauchen.
## D. Portal-Betrieb (Stand 2026-10-28)
- D-01 Portal-UI (PR #409) und account-api-Start (PR #410): gemergt.
- D-02 Portal auf 131: gebaut, Unit und nginx/nft offen, siehe `docs/BETRIEB-PORTAL.md`.
- D-03 account-api auf 131: DB-Passwort `nexarch_core` abgleichen (Betreiber), Unit aus Vorlage erneuern.
- D-04 204: localhost-Adressen in connect/connect-datev/rbac-admin behoben; Port 3113 offen.
- D-05 Frontends (workflow-tasks, workflow-cases, routing-rules, workflow-approvals, Portal-BFF) von `X-User-Id` auf Bearer umstellen, danach `NEXARCH_WORKFLOW_APP_ALLOW_HEADER_AUTH` entfernen.
+15
View File
@@ -0,0 +1,15 @@
# Betrieb Portal (Stand 2026-10-28)
## 131 (Vorstufe Produktion)
- Code: `/opt/nexarch-web/portal/web/{portal,shl}`, Eigentümer `nexarch`. Der Benutzer hat kein Home; für `npm ci` HOME und `NPM_CONFIG_CACHE` auf `/opt/nexarch-web/portal/` setzen.
- Build mit `NEXT_PUBLIC_CORE_API_BASE=https://192.168.1.131:8443`, `NEXT_PUBLIC_LOGIN_URL=https://192.168.1.131:8443/`, `NEXT_PUBLIC_TOKEN_MODULE=portal`.
- Unit-Vorlage: `deploy/systemd/nexarch-web-portal.service.tmpl` (Port 3057). Env-Datei `/etc/nexarch/web-portal.env` mit `PORTAL_POLICY_API_URL`, `PORTAL_CORE_API_URL`, `PORTAL_STATUS_API_URL` und dem Secret `PORTAL_POLICY_SERVICE_TOKEN` (legt der Betreiber an).
- Offen: nginx-Block (Port 8450) und nft-Regel für den Zugriff von außen.
- Voraussetzung für Anmeldung: `nexarch-account-api` läuft (Passwort der DB-Rolle muss zur DSN in `account-api.env` passen; bei Authentifizierungsfehler beendet sich der Dienst mit Exit 2 und startet nicht neu).
## 204 (Dev/Test, Demo `nexarch-portal-live`)
- Portal auf Port 3900 (nginx TLS 8443). Build dort mit `next build --webpack`: Turbopack löst `@nexarch/shl` über den Symlink nicht auf.
- `NEXT_PUBLIC_*` wird beim Build ins Bundle eingebaut. Werte mit `127.0.0.1` funktionieren im Browser nie. connect-api und rbac-admin-api sind deshalb über `deploy/nginx/204-portal-live-api-proxy.conf` (Ports 8447, 8448) erreichbar; connect, connect-datev und rbac-admin wurden damit neu gebaut.
- Selbst signiertes Zertifikat: die Ports 8447 und 8448 einmal im Browser bestätigen.
- Offen: Port 3113 (`kennzahlen_dashboard`) hat keinen Dienst.
- archivdms-Daten (Dienste `archivdms*`, `/var/archivdms`, `/opt/archivdms`) nicht anfassen.