Perplexity Deploy Integration
Overview
Deploy Perplexity-powered applications to popular platforms with proper secrets management.
Prerequisites
- •Perplexity API keys for production environment
- •Platform CLI installed (vercel, fly, or gcloud)
- •Application code ready for deployment
- •Environment variables documented
Vercel Deployment
Environment Setup
bash
# Add Perplexity secrets to Vercel vercel secrets add perplexity_api_key sk_live_*** vercel secrets add perplexity_webhook_secret whsec_*** # Link to project vercel link # Deploy preview vercel # Deploy production vercel --prod
vercel.json Configuration
json
{
"env": {
"PERPLEXITY_API_KEY": "@perplexity_api_key"
},
"functions": {
"api/**/*.ts": {
"maxDuration": 30
}
}
}
Fly.io Deployment
fly.toml
toml
app = "my-perplexity-app" primary_region = "iad" [env] NODE_ENV = "production" [http_service] internal_port = 3000 force_https = true auto_stop_machines = true auto_start_machines = true
Secrets
bash
# Set Perplexity secrets fly secrets set PERPLEXITY_API_KEY=sk_live_*** fly secrets set PERPLEXITY_WEBHOOK_SECRET=whsec_*** # Deploy fly deploy
Google Cloud Run
Dockerfile
dockerfile
FROM node:20-slim WORKDIR /app COPY package*.json ./ RUN npm ci --only=production COPY . . CMD ["npm", "start"]
Deploy Script
bash
#!/bin/bash
# deploy-cloud-run.sh
PROJECT_ID="${GOOGLE_CLOUD_PROJECT}"
SERVICE_NAME="perplexity-service"
REGION="us-central1"
# Build and push image
gcloud builds submit --tag gcr.io/$PROJECT_ID/$SERVICE_NAME
# Deploy to Cloud Run
gcloud run deploy $SERVICE_NAME \
--image gcr.io/$PROJECT_ID/$SERVICE_NAME \
--region $REGION \
--platform managed \
--allow-unauthenticated \
--set-secrets=PERPLEXITY_API_KEY=perplexity-api-key:latest
Environment Configuration Pattern
typescript
// config/perplexity.ts
interface PerplexityConfig {
apiKey: string;
environment: 'development' | 'staging' | 'production';
webhookSecret?: string;
}
export function getPerplexityConfig(): PerplexityConfig {
const env = process.env.NODE_ENV || 'development';
return {
apiKey: process.env.PERPLEXITY_API_KEY!,
environment: env as PerplexityConfig['environment'],
webhookSecret: process.env.PERPLEXITY_WEBHOOK_SECRET,
};
}
Health Check Endpoint
typescript
// api/health.ts
export async function GET() {
const perplexityStatus = await checkPerplexityConnection();
return Response.json({
status: perplexityStatus ? 'healthy' : 'degraded',
services: {
perplexity: perplexityStatus,
},
timestamp: new Date().toISOString(),
});
}
Instructions
Step 1: Choose Deployment Platform
Select the platform that best fits your infrastructure needs and follow the platform-specific guide below.
Step 2: Configure Secrets
Store Perplexity API keys securely using the platform's secrets management.
Step 3: Deploy Application
Use the platform CLI to deploy your application with Perplexity integration.
Step 4: Verify Health
Test the health check endpoint to confirm Perplexity connectivity.
Output
- •Application deployed to production
- •Perplexity secrets securely configured
- •Health check endpoint functional
- •Environment-specific configuration in place
Error Handling
| Issue | Cause | Solution |
|---|---|---|
| Secret not found | Missing configuration | Add secret via platform CLI |
| Deploy timeout | Large build | Increase build timeout |
| Health check fails | Wrong API key | Verify environment variable |
| Cold start issues | No warm-up | Configure minimum instances |
Examples
Quick Deploy Script
bash
#!/bin/bash
# Platform-agnostic deploy helper
case "$1" in
vercel)
vercel secrets add perplexity_api_key "$PERPLEXITY_API_KEY"
vercel --prod
;;
fly)
fly secrets set PERPLEXITY_API_KEY="$PERPLEXITY_API_KEY"
fly deploy
;;
esac
Resources
Next Steps
For webhook handling, see perplexity-webhooks-events.