KOLLEGE setup

Continue setup.

Real courses and Course Studio need IOPass and saved course data. The UI preview is separate; it does not grant account access.

Sign-inConfiguration present
Course dataConfiguration present
Private + public mediaConfiguration present
Background jobsConfiguration present
Course writingConfiguration present
Course imagesConfiguration present
Course videosConfiguration present
Socratic tutorConfiguration present
Web membershipStripe keys and both price IDs required
Web notificationsConfiguration present

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-in
https://kollege-admin.tpi.hk/api/auth/iopass/callbackCourse Studio sign-in

Server configuration

IOPASS_CLIENT_IDKOLLEGE OAuth client identifier from IOPass
IOPASS_CLIENT_SECRET / IOPASS_SESSION_SECRETServer-only OAuth credential and KOLLEGE session encryption key
STRIPE_SECRET_KEY / STRIPE_WEBHOOK_SECRETServer-only Checkout access and signed billing events
STRIPE_MEMBERSHIP_MONTHLY_PRICE_ID / STRIPE_MEMBERSHIP_YEARLY_PRICE_IDSeparate USD 9.99/month and USD 69.99/year membership prices; course licenses are priced separately
KOLLEGE_DBSeparate D1 database bindings for preview and production
KOLLEGE_MEDIA + KOLLEGE_PUBLIC_MEDIA + CLOUDFLARE_R2_PUBLIC_URLSeparate private drafts and approved public R2 media
KOLLEGE_JOBS + CRON_SECRETCloudflare Queue dispatch with scheduled fallback
BYTEPLUS_API_KEY / BYTEPLUS_MODELCourse-plan, lesson and localization generation; never needed for manual editing
MINIMAX_API_KEY / MINIMAX_VIDEO_MODELExplicit video jobs and recovery of an existing provider task
AI + KOLLEGE_AI_IMAGE_MODELCloudflare Workers AI image generation inside authorized jobs
CLOUDFLARE_AI_GATEWAY_BASE_URL / CLOUDFLARE_AI_GATEWAY_TOKENOptional text-model route; BytePlus is also supported for tutor chat
NEXT_PUBLIC_VAPID_PUBLIC_KEY / VAPID_PRIVATE_KEYOpt-in, content-free web notifications
NEXT_PUBLIC_APP_URL / KOLLEGE_PUBLIC_URLCanonical learner origin
KOLLEGE_ADMIN_URLCourse Studio and private backend origin

Keep 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.

Manual course planning and editing do not call AI. Production still requires human-approved plans, evidence and posts; setup does not bypass those gates.