# Selfhosting - should be true if you are selfhosting PUBLIC_IS_SELFHOSTED=false # Self-hosted meta tags (optional) - override title, description, and OG image for custom branding # PUBLIC_APP_TITLE=My Learning Platform # PUBLIC_APP_DESCRIPTION=A flexible LMS for your organization # PUBLIC_OG_IMAGE_URL=https://app.yourdomain.com/og-image.png # CSP: External domains for script-src, style-src, connect-src, frame-src, font-src. # When PUBLIC_IS_SELFHOSTED=true: REQUIRED - no defaults, only these env vars are used. # When PUBLIC_IS_SELFHOSTED=false: Optional - unset uses SaaS defaults. # Comma-separated, e.g. ALLOWED_EXTERNAL_DOMAINS=assets.cdn.clsrio.com,cdnjs.cloudflare.com,cdn.plyr.io # Per-directive: CSP_SCRIPT_SRC_DOMAINS, CSP_STYLE_SRC_DOMAINS, CSP_CONNECT_SRC_DOMAINS, CSP_FRAME_SRC_DOMAINS, CSP_FONT_SRC_DOMAINS # ALLOWED_EXTERNAL_DOMAINS= # Unsplash setup - Optional if you want to use Unsplash images UNSPLASH_API_KEY= # OpenAI setup - Optional if you want to use the AI features OPENAI_API_KEY= # Sever URL - Optional if you want to use video upload and pdf downloads # This is the deployment URL of apps/api PUBLIC_SERVER_URL= # Optional server-only override used during SSR (for Docker/internal network) # Example in compose: http://api:3081 PRIVATE_SERVER_URL= # Domain management - should be your domain # The final domain is app.classroomio.com where `app` is PRIVATE_APP_SUBDOMAINS and `classroomio.com` is PRIVATE_APP_HOST PRIVATE_APP_HOST=classroomio.com PRIVATE_APP_SUBDOMAINS=app # ============ CLOUD VERSION SPECIFIC ============ LEMON_SQUEEZY_API_KEY= LEMON_SQUEEZY_STORE_ID= LEMON_SQUEEZY_WEBHOOK_SECRET= VITE_SENTRY_AUTH_TOKEN= VITE_SENTRY_ORG_NAME= VITE_SENTRY_PROJECT_NAME= # Configure https locally https://stackoverflow.com/a/76525335 USE_HTTPS_ON_LOCALHOST=false ## Custom Domain TEAM_ID_VERCEL= PROJECT_ID_VERCEL= AUTH_BEARER_TOKEN=