Deployment on Render#
The live Labs deployment is split between the Python API and static web/docs surface.
Render Services#
render.yaml defines:
| Service | Type | Domain | Root/publish path |
|---|---|---|---|
supafone-labs-api | Python web service | api.labs.supafone.ai | supafone-labs |
supafone-labs-web | Static web service | labs.supafone.ai | supafone-labs/landing |
API build and start:
bash
pip install -e . -r cloud/requirements.txt
uvicorn cloud.app:app --host 0.0.0.0 --port $PORTHealth check:
text
/healthzThe API has a persistent disk mounted at /var/data for its SQLite-backed state.
Important Boundaries#
- Do not move
cloud/without updating RenderrootDir, build command, start - Do not move
landing/without updating the static publish path. - Public SDK packages should not include private backend/admin/billing runtime
- Keep
.envfiles, databases, provider keys, Stripe secrets, and Render
command, and health path.
files.
operational state out of public releases.
Required Environment#
Common production variables include:
text
ADMIN_SECRET
ANTHROPIC_API_KEY
OPENAI_API_KEY
XAI_API_KEY
DEEPGRAM_API_KEY
CARTESIA_API_KEY
ELEVENLABS_API_KEY
INWORLD_API_KEY
STRIPE_WEBHOOK_SECRET
STRIPE_SUBSCRIBE_URL
STRIPE_DEVELOPER_URL
STRIPE_GROWTH_URL
STRIPE_SCALE_URL
RESEND_API_KEY
FROM_EMAIL
DATA_DIROnly set variables that the deployment actually uses. Never commit real values.
Verification After Deploy#
bash
curl https://api.labs.supafone.ai/healthz
curl https://api.labs.supafone.ai/v1/pricing
curl https://api.labs.supafone.ai/v1/models
curl https://api.labs.supafone.ai/v1/voicesFor hosted-agent API changes, also run:
bash
cd supafone-labs
SUPAFONE_API_KEY=sf_live_... \
SUPAFONE_API_BASE_URL=https://api.supafone.ai \
npx tsx examples/smoke-hosted-agent.tsGitBook Replacement Notes#
This GitBook source lives under supafone-labs/gitbook/. Publish that folder as the GitBook root so README.md and SUMMARY.md drive navigation. The older native docs can remain in place during migration until the GitBook publish path is verified.