For developers
TOLASCHOOL runs in demo mode with sample content until its services are configured. Nothing on this page reveals secret values. It only shows what’s set.
Supabase (database + auth)
NEXT_PUBLIC_SUPABASE_URL and NEXT_PUBLIC_SUPABASE_ANON_KEY
Supabase service role (server only)
SUPABASE_SERVICE_ROLE_KEY: used for video processing callbacks
Cloudflare Stream (production uploads & streaming)
CLOUDFLARE_ACCOUNT_ID and CLOUDFLARE_STREAM_API_TOKEN, then “Connect Cloudflare webhooks” in /admin
Mux (optional alternative to Cloudflare)
MUX_TOKEN_ID, MUX_TOKEN_SECRET and MUX_WEBHOOK_SECRET
Google sign-in
Enable the Google provider in Supabase, then set NEXT_PUBLIC_GOOGLE_AUTH_ENABLED=true
Current video pipeline: Cloudflare Stream (adaptive streaming)
Requires Docker and the Supabase CLI. Migrations and sample content load automatically.
supabase start supabase status # copy API URL, anon/publishable key and service role/secret key
cp .env.example .env.local # then fill in: NEXT_PUBLIC_SUPABASE_URL=http://127.0.0.1:54321 NEXT_PUBLIC_SUPABASE_ANON_KEY=... SUPABASE_SERVICE_ROLE_KEY=...
In Cloudflare, create an API token with the Stream: Edit permission and copy your Account ID. After deploying, click Connect Cloudflare webhooks in /admin. Without a video provider, uploads fall back to Supabase Storage in development only.
CLOUDFLARE_ACCOUNT_ID=... CLOUDFLARE_STREAM_API_TOKEN=...
update public.profiles set role = 'admin' where username = 'your_username';
Full instructions, including deploying to Vercel, are in the README.