Auto-VFX
Owner actions · never paste secrets into chat

Setup instructions

# Setup guide

Secrets stay in the secret manager. Do not paste key values into chat.

Canonical host: https://vfx.assemblybay.com (Vercel project auto-vfx). Clerk production Frontend API: clerk.vfx.assemblybay.com. Preview/dev keys stay pk_test_. Optional CLERK_ORG_ID is an allowlist, not a tenant id.

Database: DATABASE_URL, DIRECT_DATABASE_URL. prisma migrate deploy. Never db push in production. Empty installs: pnpm db:migrate:empty against a disposable database.

R2: R2_ACCOUNT_ID, R2_ENDPOINT, R2_BUCKET, R2_ACCESS_KEY_ID, R2_SECRET_ACCESS_KEY. Bucket-scoped Object R/W on auto-vfx-media / auto-vfx-media-dev. Same values on the worker host.

Workers: WORKER_CREDENTIALS_JSON on Vercel and the worker. Production ignores WORKER_TOKEN_SECRET as a dual cpu/gpu fallback. CPU_WORKER_WAKE_URL + CRON_SECRET for wake.

Media: MEDIA_SIGNING_SECRET. Playback is GET /api/media/[id] authorized bytes (Range 200/206/416) or POST short-lived grant.

Native probes: AE_HOST_PROBE_URL, MOCHA_HOST_PROBE_URL, BLENDER_BIN on the execution host.

Owner actions: dedicated Auto-VFX Clerk production at vfx.assemblybay.com (not clerk.assemblybay.com / Evuhl); mint R2 token; grant GitHub App to thefatedworld/auto-vfx; run workers/cpu/job_loop.py with AUTO_VFX_API_URL=https://vfx.assemblybay.com; supply rights-cleared plate+insert. Deploy with ./scripts/deploy-prod.sh. Do not change Assembly Bay nameservers.