diff --git a/chart/templates/configmap.yaml b/chart/templates/configmap.yaml index 7f76e8b..af3a718 100644 --- a/chart/templates/configmap.yaml +++ b/chart/templates/configmap.yaml @@ -7,21 +7,57 @@ metadata: data: NODE_ENV: {{ .Values.env.NODE_ENV | quote }} PORT: {{ .Values.env.PORT | quote }} + {{- if .Values.env.TZ }} + TZ: {{ .Values.env.TZ | quote }} + {{- end }} + {{- if .Values.env.LOG_LEVEL }} + LOG_LEVEL: {{ .Values.env.LOG_LEVEL | quote }} + {{- end }} {{- if .Values.env.ALLOWED_ORIGINS }} ALLOWED_ORIGINS: {{ .Values.env.ALLOWED_ORIGINS | quote }} {{- end }} {{- if .Values.env.APP_URL }} APP_URL: {{ .Values.env.APP_URL | quote }} {{- end }} - {{- if .Values.env.ALLOW_INTERNAL_NETWORK }} - ALLOW_INTERNAL_NETWORK: {{ .Values.env.ALLOW_INTERNAL_NETWORK | quote }} + {{- if .Values.env.FORCE_HTTPS }} + FORCE_HTTPS: {{ .Values.env.FORCE_HTTPS | quote }} {{- end }} {{- if .Values.env.COOKIE_SECURE }} COOKIE_SECURE: {{ .Values.env.COOKIE_SECURE | quote }} {{- end }} + {{- if .Values.env.TRUST_PROXY }} + TRUST_PROXY: {{ .Values.env.TRUST_PROXY | quote }} + {{- end }} + {{- if .Values.env.ALLOW_INTERNAL_NETWORK }} + ALLOW_INTERNAL_NETWORK: {{ .Values.env.ALLOW_INTERNAL_NETWORK | quote }} + {{- end }} + {{- if .Values.env.OIDC_ISSUER }} + OIDC_ISSUER: {{ .Values.env.OIDC_ISSUER | quote }} + {{- end }} + {{- if .Values.env.OIDC_CLIENT_ID }} + OIDC_CLIENT_ID: {{ .Values.env.OIDC_CLIENT_ID | quote }} + {{- end }} + {{- if .Values.env.OIDC_DISPLAY_NAME }} + OIDC_DISPLAY_NAME: {{ .Values.env.OIDC_DISPLAY_NAME | quote }} + {{- end }} + {{- if .Values.env.OIDC_ONLY }} + OIDC_ONLY: {{ .Values.env.OIDC_ONLY | quote }} + {{- end }} + {{- if .Values.env.OIDC_ADMIN_CLAIM }} + OIDC_ADMIN_CLAIM: {{ .Values.env.OIDC_ADMIN_CLAIM | quote }} + {{- end }} + {{- if .Values.env.OIDC_ADMIN_VALUE }} + OIDC_ADMIN_VALUE: {{ .Values.env.OIDC_ADMIN_VALUE | quote }} + {{- end }} + {{- if .Values.env.OIDC_SCOPE }} + OIDC_SCOPE: {{ .Values.env.OIDC_SCOPE | quote }} + {{- end }} {{- if .Values.env.OIDC_DISCOVERY_URL }} OIDC_DISCOVERY_URL: {{ .Values.env.OIDC_DISCOVERY_URL | quote }} {{- end }} + {{- if .Values.env.DEMO_MODE }} + DEMO_MODE: {{ .Values.env.DEMO_MODE | quote }} + {{- end }} {{- if .Values.env.MCP_RATE_LIMIT }} MCP_RATE_LIMIT: {{ .Values.env.MCP_RATE_LIMIT | quote }} {{- end }} diff --git a/chart/templates/deployment.yaml b/chart/templates/deployment.yaml index 2f0cdb8..6a5e355 100644 --- a/chart/templates/deployment.yaml +++ b/chart/templates/deployment.yaml @@ -54,6 +54,12 @@ spec: name: {{ default (printf "%s-secret" (include "trek.fullname" .)) .Values.existingSecret }} key: ADMIN_PASSWORD optional: true + - name: OIDC_CLIENT_SECRET + valueFrom: + secretKeyRef: + name: {{ default (printf "%s-secret" (include "trek.fullname" .)) .Values.existingSecret }} + key: OIDC_CLIENT_SECRET + optional: true volumeMounts: - name: data mountPath: /app/data diff --git a/chart/templates/secret.yaml b/chart/templates/secret.yaml index a205f8f..20edd11 100644 --- a/chart/templates/secret.yaml +++ b/chart/templates/secret.yaml @@ -14,6 +14,9 @@ data: {{- if .Values.secretEnv.ADMIN_PASSWORD }} ADMIN_PASSWORD: {{ .Values.secretEnv.ADMIN_PASSWORD | b64enc | quote }} {{- end }} + {{- if .Values.secretEnv.OIDC_CLIENT_SECRET }} + OIDC_CLIENT_SECRET: {{ .Values.secretEnv.OIDC_CLIENT_SECRET | b64enc | quote }} + {{- end }} {{- end }} {{- if and (not .Values.existingSecret) (.Values.generateEncryptionKey) }} @@ -38,4 +41,7 @@ stringData: {{- if .Values.secretEnv.ADMIN_PASSWORD }} ADMIN_PASSWORD: {{ .Values.secretEnv.ADMIN_PASSWORD }} {{- end }} + {{- if .Values.secretEnv.OIDC_CLIENT_SECRET }} + OIDC_CLIENT_SECRET: {{ .Values.secretEnv.OIDC_CLIENT_SECRET }} + {{- end }} {{- end }} diff --git a/chart/values.yaml b/chart/values.yaml index c92d3bd..68cf274 100644 --- a/chart/values.yaml +++ b/chart/values.yaml @@ -15,20 +15,42 @@ service: env: NODE_ENV: production PORT: 3000 + # TZ: "UTC" + # Timezone for logs, reminders, and cron jobs (e.g. Europe/Berlin). + # LOG_LEVEL: "info" + # "info" = concise user actions, "debug" = verbose details. # ALLOWED_ORIGINS: "" # NOTE: If using ingress, ensure env.ALLOWED_ORIGINS matches the domains in ingress.hosts for proper CORS configuration. # APP_URL: "https://trek.example.com" # Public base URL of this instance. Required when OIDC is enabled — must match the redirect URI registered with your IdP. # Also used as the base URL for links in email notifications and other external links. + # FORCE_HTTPS: "false" + # Set to "true" to redirect HTTP to HTTPS behind a TLS-terminating proxy. + # COOKIE_SECURE: "true" + # Set to "false" to allow session cookies over plain HTTP (e.g. no ingress TLS). Not recommended for production. + # TRUST_PROXY: "1" + # Number of trusted reverse proxies for X-Forwarded-For header parsing. # ALLOW_INTERNAL_NETWORK: "false" # Set to "true" if Immich or other integrated services are hosted on a private/RFC-1918 network address. # Loopback (127.x) and link-local/metadata addresses (169.254.x) are always blocked. - # COOKIE_SECURE: "true" - # Set to "false" to allow session cookies over plain HTTP (e.g. no ingress TLS). Not recommended for production. - # OIDC_DISCOVERY_URL: "" - # Override the OIDC discovery endpoint for providers with non-standard paths (e.g. Authentik). + # OIDC_ISSUER: "" + # OpenID Connect provider URL. + # OIDC_CLIENT_ID: "" + # OIDC client ID. + # OIDC_DISPLAY_NAME: "SSO" + # Label shown on the SSO login button. + # OIDC_ONLY: "false" + # Set to "true" to disable local password auth entirely (first SSO login becomes admin). + # OIDC_ADMIN_CLAIM: "" + # OIDC claim used to identify admin users. + # OIDC_ADMIN_VALUE: "" + # Value of the OIDC claim that grants admin role. # OIDC_SCOPE: "openid email profile groups" # Space-separated OIDC scopes to request. Must include scopes for any claim used by OIDC_ADMIN_CLAIM. + # OIDC_DISCOVERY_URL: "" + # Override the OIDC discovery endpoint for providers with non-standard paths (e.g. Authentik). + # DEMO_MODE: "false" + # Enable demo mode (hourly data resets). # MCP_RATE_LIMIT: "60" # Max MCP API requests per user per minute. Defaults to 60. @@ -48,6 +70,8 @@ secretEnv: # If either is empty a random password is generated and printed to the server log. ADMIN_EMAIL: "" ADMIN_PASSWORD: "" + # OIDC client secret — set together with env.OIDC_ISSUER and env.OIDC_CLIENT_ID. + OIDC_CLIENT_SECRET: "" # If true, a random ENCRYPTION_KEY is generated at install and preserved across upgrades generateEncryptionKey: false