diff --git a/.env.example b/.env.example index d387d02..a1d8b5b 100644 --- a/.env.example +++ b/.env.example @@ -98,35 +98,17 @@ OIDC_LINK_BY_USERNAME=false OIDC_BUTTON_LABEL=Sign in with SSO / OIDC # ══ Office (optional) ═════════════════════════════════════════════════════════ -# Leer = aus, auch wenn ein Office-Container läuft. -# Compose-Schnipsel für Collabora, OnlyOffice und Euro-Office: README.md -# collabora | onlyoffice (auch Euro-Office) -OFFICE_PROVIDER= - -# Drei Adressen für drei Richtungen – die häufigste Fehlerquelle. -# -# Backend → Office. Port je nach Anbieter: -# Collabora http://office:9980 -# OnlyOffice/Euro-Office http://office -OFFICE_URL=http://office:9980 -# Browser → Office. Deine Domain oder LAN-IP, nicht der Compose-Name. -OFFICE_PUBLIC_URL=https://office.example.com -# Office → Aether. -# -# **Bei Collabora die öffentliche Adresse der Cloud**, nicht app:8080: Aus -# diesem Wert baut Collabora sein frame-ancestors, und der Browser darf den -# Rahmen sonst nicht zeigen ("Framing … violates 'frame-ancestors …'"). -# Collabora holt die Datei dann über deinen Reverse Proxy. -OFFICE_WOPI_URL=https://cloud.example.com -# Gegen SSRF: was das Backend anfragen darf. Der Host aus OFFICE_URL zählt -# immer dazu. -OFFICE_ALLOWED_HOSTS=office -# Nur OnlyOffice/Euro-Office, mind. 32 Zeichen: openssl rand -hex 32 -# Muss mit JWT_SECRET des Office-Containers übereinstimmen. Ohne ihn schlägt -# das Wandeln nach PDF fehl (der Server antwortet `{"error":-8}`). Für den -# WOPI-Weg wird er nicht gebraucht, der hat eigene Token. +# Leer = aus. Compose-Schnipsel, Adressen und Fallstricke: README.md. +# Bei Collabora muss OFFICE_WOPI_URL die öffentliche Adresse der Cloud sein, +# sonst verweigert der Browser den Rahmen. +OFFICE_PROVIDER=onlyoffice # collabora | onlyoffice (auch Euro-Office) +OFFICE_URL=http://office # Backend → Office (Collabora: :9980) +# Browser → Office +OFFICE_PUBLIC_URL= +OFFICE_WOPI_URL=http://app:8080 # Office → Aether +OFFICE_ALLOWED_HOSTS=office # gegen SSRF +# nur OnlyOffice, openssl rand -hex 32 OFFICE_JWT_SECRET= -OFFICE_INSECURE_TLS=false # nur für Tests mit selbstsigniertem Zertifikat # ══ Volltextsuche (OCR) ═══════════════════════════════════════════════════════ # Standardmäßig an; fehlen ocrmypdf/tesseract, schaltet es sich selbst ab. diff --git a/frontend/src/components/AppSwitcher.tsx b/frontend/src/components/AppSwitcher.tsx index 881b5e7..1e12e47 100644 --- a/frontend/src/components/AppSwitcher.tsx +++ b/frontend/src/components/AppSwitcher.tsx @@ -8,7 +8,7 @@ import { publicApi, type ExternalApp } from '../api/client' * fertig werden. Die Komponente bleibt liegen, weil eine gemeinsame Leiste für * alle Apps noch überlegt wird. Wird sie nirgends importiert, landet sie auch * nicht im Bundle. Zum Reaktivieren: in `Sidebar.tsx` neben dem Markenschriftzug - * einsetzen und EXTERNAL_APPS in `deploy/.env` füllen. + * einsetzen und EXTERNAL_APPS in `build/.env` füllen. * * Umschalter zu den anderen selbst gehosteten Apps. *