writing-skills
writing-skills
Use when creating new skills, editing existing skills, or verifying skills work before deployment
vastai-deploy-integrationDeploy Vast.ai integrations to Vercel, Fly.io, and Cloud Run platforms. Use when deploying Vast.ai-powered applications to production, configuring platform-specific secrets, or setting up deployment pipelines. Trigger with phrases like "deploy vastai", "vastai Vercel", "vastai production deploy", "vastai Cloud Run", "vastai Fly.io".
Independent GitHub snapshot · Automated classification · Original documentation governs
Deploy Vast.ai-powered applications to popular platforms with proper secrets management.
# Add Vast.ai secrets to Vercel
vercel secrets add vastai_api_key sk_live_***
vercel secrets add vastai_webhook_secret whsec_***
# Link to project
vercel link
# Deploy preview
vercel
# Deploy production
vercel --prod
{
"env": {
"VASTAI_API_KEY": "@vastai_api_key"
},
"functions": {
"api/**/*.ts": {
"maxDuration": 30
}
}
}
app = "my-vastai-app"
primary_region = "iad"
[env]
NODE_ENV = "production"
[http_service]
internal_port = 3000
force_https = true
auto_stop_machines = true
auto_start_machines = true
# Set Vast.ai secrets
fly secrets set VASTAI_API_KEY=sk_live_***
fly secrets set VASTAI_WEBHOOK_SECRET=whsec_***
# Deploy
fly deploy
FROM node:20-slim
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
CMD ["npm", "start"]
#!/bin/bash
# deploy-cloud-run.sh
PROJECT_ID="${GOOGLE_CLOUD_PROJECT}"
SERVICE_NAME="vastai-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=VASTAI_API_KEY=vastai-api-key:latest
// config/vastai.ts
interface Vast.aiConfig {
apiKey: string;
environment: 'development' | 'staging' | 'production';
webhookSecret?: string;
}
export function getVast.aiConfig(): Vast.aiConfig {
const env = process.env.NODE_ENV || 'development';
return {
apiKey: process.env.VASTAI_API_KEY!,
environment: env as Vast.aiConfig['environment'],
webhookSecret: process.env.VASTAI_WEBHOOK_SECRET,
};
}
// api/health.ts
export async function GET() {
const vastaiStatus = await checkVast.aiConnection();
return Response.json({
status: vastaiStatus ? 'healthy' : 'degraded',
services: {
vastai: vastaiStatus,
},
timestamp: new Date().toISOString(),
});
}
Select the platform that best fits your infrastructure needs and follow the platform-specific guide below.
Store Vast.ai API keys securely using the platform's secrets management.
Use the platform CLI to deploy your application with Vast.ai integration.
Test the health check endpoint to confirm Vast.ai connectivity.
| 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 |
#!/bin/bash
# Platform-agnostic deploy helper
case "$1" in
vercel)
vercel secrets add vastai_api_key "$VASTAI_API_KEY"
vercel --prod
;;
fly)
fly secrets set VASTAI_API_KEY="$VASTAI_API_KEY"
fly deploy
;;
esac
For webhook handling, see vastai-webhooks-events.