Continue setup.
Real courses and Course Studio need IOPass and saved course data. The UI preview is separate; it does not grant account access.
Configuration present is not proof of a working provider, applied migration, approved course or completed release checks.
Staff configuration details
Register a confidential IOPass client with PKCE S256, identity/profile/email and sign-in refresh. Use only these production callbacks; add no wildcard development redirects.
https://kollege.tpi.hk/api/auth/iopass/callbackLearner and delegated native sign-inhttps://kollege-admin.tpi.hk/api/auth/iopass/callbackCourse Studio sign-inServer configuration
IOPASS_CLIENT_IDKOLLEGE OAuth client identifier from IOPassIOPASS_CLIENT_SECRET / IOPASS_SESSION_SECRETServer-only OAuth credential and KOLLEGE session encryption keySTRIPE_SECRET_KEY / STRIPE_WEBHOOK_SECRETServer-only Checkout access and signed billing eventsSTRIPE_MEMBERSHIP_MONTHLY_PRICE_ID / STRIPE_MEMBERSHIP_YEARLY_PRICE_IDSeparate USD 9.99/month and USD 69.99/year membership prices; course licenses are priced separatelyKOLLEGE_DBSeparate D1 database bindings for preview and productionKOLLEGE_MEDIA + KOLLEGE_PUBLIC_MEDIA + CLOUDFLARE_R2_PUBLIC_URLSeparate private drafts and approved public R2 mediaKOLLEGE_JOBS + CRON_SECRETCloudflare Queue dispatch with scheduled fallbackBYTEPLUS_API_KEY / BYTEPLUS_MODELCourse-plan, lesson and localization generation; never needed for manual editingMINIMAX_API_KEY / MINIMAX_VIDEO_MODELExplicit video jobs and recovery of an existing provider taskAI + KOLLEGE_AI_IMAGE_MODELCloudflare Workers AI image generation inside authorized jobsCLOUDFLARE_AI_GATEWAY_BASE_URL / CLOUDFLARE_AI_GATEWAY_TOKENOptional text-model route; BytePlus is also supported for tutor chatNEXT_PUBLIC_VAPID_PUBLIC_KEY / VAPID_PRIVATE_KEYOpt-in, content-free web notificationsNEXT_PUBLIC_APP_URL / KOLLEGE_PUBLIC_URLCanonical learner originKOLLEGE_ADMIN_URLCourse Studio and private backend originKeep secrets in Cloudflare Worker secrets, never in browser settings, course fields or source control. Staff roles come from KOLLEGE’s database, not an email match.
After sign-in, open Account access to share your own account and IOPass identifiers with the owner or an existing KOLLEGE admin. Creating the OAuth client does not grant Studio permission.
Web membership requires separate monthly and yearly prices. Native purchases remain disabled until their own store products and server credentials are configured; a one-time course license does not silently grant live tutoring.