# API backend — URL relative : Next.js proxy vers nginx (:80), pas de CORS en dev NEXT_PUBLIC_API_URL=/api/v1 NEXT_PUBLIC_WS_URL=ws://localhost/ws # Cible du proxy Next (optionnel, défaut 127.0.0.1:80) # Sert aussi aux appels OIDC serveur (discovery/token) — Docker: http://nginx # ULTI_PROXY_ORIGIN=http://127.0.0.1:80 # OIDC Authentik (blueprints deploy/authentik dans ulti-backend) NEXT_PUBLIC_OIDC_ISSUER=http://localhost/auth/application/o/ulti/ NEXT_PUBLIC_OIDC_CLIENT_ID=ulti-backend # URL publique affichée dans les redirects OIDC (navigateur) — utiliser localhost, pas 0.0.0.0 # URL publique navigateur (suite nginx) — pas :3004 si tu passes par http://localhost/mail NEXT_PUBLIC_APP_URL=http://localhost # Cookies session Secure (auto: true seulement si NEXT_PUBLIC_APP_URL est https://) # COOKIE_SECURE=false # Secret serveur uniquement — doit matcher ULTID_OIDC_CLIENT_SECRET / blueprint OIDC_CLIENT_SECRET=changeme # OnlyOffice editor (UltiDrive — tableurs/présentations) NEXT_PUBLIC_ONLYOFFICE_URL=http://localhost/office # Rich text editor (TipTap + Hocuspocus — docs texte) NEXT_PUBLIC_HOCUSPOCUS_URL=ws://localhost/collab # UltiAI (chemin proxy OpenWebUI — même origine) NEXT_PUBLIC_AI_PUBLIC_PATH=/ai # Origine UltiSpace par défaut (picker serveur apps Tauri mobiles) # NEXT_PUBLIC_ULTISPACE_ORIGIN=https://dev.ultispace.fr # Dev Next.js (:3000) : charger l'iframe depuis nginx (:80) pour cookies session + proxy OpenWebUI NEXT_PUBLIC_AI_ORIGIN=http://localhost