-
Install dependencies
bun i
-
Add local app environment variables
# .env.development CLOUDFLARED_TOKEN=<YOUR_CLOUDFLARED_TOKEN> EXPO_PUBLIC_API_URL=<YOUR_URL>/api/v1 EXPO_PUBLIC_APP_URL=<YOUR_URL> EXPO_PUBLIC_INSTANT_APP_ID=<YOUR_ID> EXPO_PUBLIC_WEB_PUSH_VAPID_PUBLIC_KEY=<YOUR_PUBLIC_VAPID_KEY>
-
Add local Worker secrets for
wrangler dev# .dev.vars APP_URL=<YOUR_URL> AUDD_API_KEY=<YOUR_AUDD_API_KEY> CLOUDFLARE_ACCOUNT_ID=<YOUR_ACCOUNT_ID> CLOUDFLARE_IMAGES_API_TOKEN=<YOUR_IMAGES_API_TOKEN> CLOUDFLARE_STREAM_API_TOKEN=<YOUR_STREAM_API_TOKEN> CLOUDFLARE_STREAM_WEBHOOK_SECRET=<YOUR_STREAM_WEBHOOK_SECRET> INSTANT_APP_ADMIN_TOKEN=<YOUR_TOKEN> INSTANT_APP_ID=<YOUR_ID> MAILTO_CONTACT=mailto:<YOUR_EMAIL> OPENAI_API_KEY=<YOUR_OPENAI_API_KEY> OPENAI_STT_MODEL=<YOUR_OPENAI_STT_MODEL> OPENROUTER_API_KEY=<YOUR_OPENROUTER_API_KEY> OPENROUTER_CARD_MODEL=<YOUR_OPENROUTER_CARD_MODEL> WEB_PUSH_VAPID_PRIVATE_KEY=<YOUR_PRIVATE_VAPID_JWK_JSON>
Generate a keypair with:
bun run generate:vapid
-
Generate types
bun types
-
Optionally, create iOS/Android builds
bun prebuild:ios bun build:ios bun prebuild:android bun build:android
-
Start the dev server
bun dev
Production secret bulk upload reads from .dev.vars.production.
APP_URL=<YOUR_URL>
AUDD_API_KEY=<YOUR_AUDD_API_KEY>
CLOUDFLARE_ACCOUNT_ID=<YOUR_ACCOUNT_ID>
CLOUDFLARE_IMAGES_API_TOKEN=<YOUR_IMAGES_API_TOKEN>
CLOUDFLARE_STREAM_API_TOKEN=<YOUR_STREAM_API_TOKEN>
CLOUDFLARE_STREAM_WEBHOOK_SECRET=<YOUR_STREAM_WEBHOOK_SECRET>
INSTANT_APP_ADMIN_TOKEN=<YOUR_TOKEN>
INSTANT_APP_ID=<YOUR_ID>
MAILTO_CONTACT=mailto:<YOUR_EMAIL>
OPENAI_API_KEY=<YOUR_OPENAI_API_KEY>
OPENAI_STT_MODEL=<YOUR_OPENAI_STT_MODEL>
OPENROUTER_API_KEY=<YOUR_OPENROUTER_API_KEY>
OPENROUTER_CARD_MODEL=<YOUR_OPENROUTER_CARD_MODEL>
WEB_PUSH_VAPID_PRIVATE_KEY=<YOUR_PRIVATE_VAPID_JWK_JSON>