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
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:
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
|
||||
@@ -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.
|
||||
@@ -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.
|
||||
Reference in new issue
Block a user