Back to Copilotkit

Deploying the Agent to Railway

examples/showcases/scene-creator/agent/DEPLOY.md

1.57.03.4 KB
Original Source

Deploying the Agent to Railway

This guide covers deploying the LangGraph agent to Railway.

Prerequisites

  1. Install Railway CLI (if not already installed):

    bash
    npm install -g @railway/cli
    
  2. Login to Railway:

    bash
    railway login
    
  3. Initialize Railway project (from the agent directory):

    bash
    cd agent
    railway init
    
  4. Set environment variables:

    bash
    railway variables set GOOGLE_API_KEY=your-google-ai-api-key-here
    
  5. Deploy:

    bash
    railway up
    
  6. Get the deployment URL:

    bash
    railway domain
    

Method 2: Deploy via Railway Dashboard

  1. Go to Railway Dashboard

  2. Create New Project:

    • Click "New Project"
    • Select "Deploy from GitHub repo"
    • Connect your GitHub account if not already connected
    • Select this repository
  3. Configure the service:

    • Railway will auto-detect the Dockerfile
    • Root directory: /agent
    • Port: 8000 (automatically detected)
  4. Set Environment Variables:

    • Go to the "Variables" tab
    • Add: GOOGLE_API_KEY = your Google AI API key
    • (Optional) Add LangSmith variables for tracing
  5. Deploy:

    • Railway will automatically build and deploy
    • Wait for the build to complete (usually 2-3 minutes)
  6. Get the URL:

    • Go to "Settings" > "Networking"
    • Click "Generate Domain"
    • Your agent will be available at: https://your-project.up.railway.app

Method 3: Deploy via Railway Button

Add this to your repository README:

markdown
[![Deploy on Railway](https://railway.app/button.svg)](https://railway.app/template/your-template-id)

Updating the Frontend

After deploying the agent, update your Next.js frontend to use the Railway URL:

  1. Open src/app/api/copilotkit/route.ts

  2. Update the agent URL:

    typescript
    const agent = new LangGraphAgent({
      agentUrl: process.env.AGENT_URL || "https://your-project.up.railway.app",
    });
    
  3. Add to your .env.local:

    AGENT_URL=https://your-project.up.railway.app
    

Health Check

Once deployed, verify the agent is running:

bash
curl https://your-project.up.railway.app/health

Monitoring

  • View logs: railway logs
  • View metrics: Railway Dashboard > Metrics tab
  • Add LangSmith for tracing: Set LANGCHAIN_TRACING_V2=true and LANGCHAIN_API_KEY

Troubleshooting

Build fails with "No space left on device"

  • Railway free tier has limited build space
  • Try removing unused dependencies from requirements.txt

Agent timeout errors

  • Railway free tier has request timeouts
  • For production, upgrade to Railway Pro

Environment variables not working

  • Ensure variables are set in Railway dashboard or via CLI
  • Restart the deployment after adding variables

Cost Optimization

Railway pricing:

  • Free tier: $5 credit/month
  • Pro: $20/month + usage-based pricing
  • Image generation with Gemini uses Google AI quota, not Railway resources

For production deployment, consider:

  • Monitoring image generation usage
  • Implementing rate limiting
  • Caching generated images