Deployment
Prerequisites
- Node 20+
- pnpm (monorepo) — except
yugma-functionswhich uses npm - Firebase CLI (
npm install -g firebase-tools) - Firebase project
yugmastudio-addcd
Build Commands
# From repo root
cd packages/yugma-app && ./node_modules/.bin/tsc --noEmit # Type check
cd packages/yugma-app && npm run build # Vite build
cd packages/yugma-functions && npm run build # Functions tsc
Deploy Commands
# Deploy everything
firebase deploy --only functions,hosting:app,firestore:rules,database
# Deploy individually
firebase deploy --only functions # Cloud Functions
firebase deploy --only hosting:app # Studio app
firebase deploy --only firestore:rules # Firestore security rules
firebase deploy --only database # RTDB rules (incl. /sensors/*)
firebase deploy --only storage # Storage rules
Hosting Targets
| Target | Site ID | URL | Source |
|---|---|---|---|
app | yugmastudio-app | https://yugmastudio-app.web.app | packages/yugma-app/dist |
landing | yugmastudio | https://yugmastudio.web.app | packages/yugma-landing/dist |
admin | yugmastudio-admin | https://yugmastudio-admin.web.app | packages/yugma-admin/dist |
docs | yugmastudio-docs | https://yugmastudio-docs.web.app | packages/yugma-docs/build |
Secrets Configuration
Required for core features
# Anthropic (AI Composer, AI Materials)
echo "sk-ant-api03-..." | firebase functions:secrets:set ANTHROPIC_API_KEY
# Meshy (Text-to-3D)
echo "msy_..." | firebase functions:secrets:set MESHY_API_KEY
Optional
# Nexar/Octopart (Phase 14 product vibe-coder)
echo "..." | firebase functions:secrets:set NEXAR_API_KEY
Go-Live Checklist
- Enable auth providers in Firebase Console (Authentication → Sign-in method):
- Email/Password — enable
- Google — enable + set support email
- Set
ANTHROPIC_API_KEYandMESHY_API_KEYsecrets (see above) cd packages/yugma-functions && npm run buildcd packages/yugma-app && npm run buildfirebase deploy --only functions,hosting:app,firestore:rules,database- Test: sign in → send "Build a room" in AI composer → verify objects appear
Package Manager Traps
- Monorepo uses pnpm (
pnpm-workspace.yaml) yugma-functionsuses npm (Firebase Cloud Build runsnpm install)- Do NOT run
pnpm installinyugma-functions/ - Use
npm install --ignore-scriptswhen adding deps to functions (avoids firebase-admin gulp build issue)
Known Issues
firebase-admin@12.7.0has a brokengulp buildpostinstall. Pinned to12.6.0.- Functions
package-lock.jsonwas deliberately deleted to forcenpm installovernpm ciin Cloud Build.