🚀 Deployment Guide
Production deployment instructions for Agent-Corex
Deployment Guide
Production deployment instructions for Agent-Core.
Overview
This guide covers deploying Agent-Core to production on various platforms.
Local Server
Quick Start
# Install
pip install agent-corex uvicorn
# Run
uvicorn agent_core.api.main:app --host 0.0.0.0 --port 8000
# Test
curl http://localhost:8000/health
Configuration
# With environment variables
export MCP_CONFIG=/etc/agent-corex/mcp.json
export LOG_LEVEL=info
uvicorn agent_core.api.main:app --host 0.0.0.0 --port 8000
Docker
Build Image
# Clone repo
git clone https://github.com/ankitpro/agent-corex.git
cd agent-corex
# Build
docker build -t agent-corex:latest .
# Run
docker run -d \
-p 8000:8000 \
-e MCP_CONFIG=/config/mcp.json \
-v /path/to/config:/config \
agent-corex:latest
Docker Compose
# docker-compose.yml
version: '3.8'
services:
agent-corex:
image: agent-corex:latest
ports:
- "8000:8000"
environment:
- MCP_CONFIG=/config/mcp.json
- LOG_LEVEL=info
volumes:
- ./config:/config
restart: always
Run with:
docker-compose up -d
Kubernetes
Deployment
apiVersion: apps/v1
kind: Deployment
metadata:
name: agent-corex
spec:
replicas: 3
selector:
matchLabels:
app: agent-corex
template:
metadata:
labels:
app: agent-corex
spec:
containers:
- name: agent-corex
image: agent-corex:latest
ports:
- containerPort: 8000
env:
- name: MCP_CONFIG
value: /config/mcp.json
- name: LOG_LEVEL
value: info
volumeMounts:
- name: config
mountPath: /config
resources:
requests:
memory: "256Mi"
cpu: "250m"
limits:
memory: "512Mi"
cpu: "500m"
volumes:
- name: config
configMap:
name: agent-corex-config
Service
apiVersion: v1
kind: Service
metadata:
name: agent-corex
spec:
selector:
app: agent-corex
ports:
- protocol: TCP
port: 80
targetPort: 8000
type: LoadBalancer
Deploy with:
kubectl apply -f deployment.yaml
kubectl apply -f service.yaml
Cloud Platforms
Heroku
# Install Heroku CLI
brew install heroku
# Login
heroku login
# Create app
heroku create agent-corex
# Deploy
git push heroku main
# Check logs
heroku logs --tail
Railway
# Install Railway CLI
npm install -g @railway/cli
# Login
railway login
# Init project
railway init
# Deploy
railway up
Render
- Push code to GitHub
- Connect repository on render.com
- Set environment variables
- Deploy (automatic)
Google Cloud Run
# Build and deploy
gcloud run deploy agent-corex \
--source . \
--platform managed \
--region us-central1 \
--allow-unauthenticated
AWS Lambda (with API Gateway)
Use AWS SAM or serverless framework:
serverless deploy
Systemd Service (Linux)
Create Service File
sudo nano /etc/systemd/system/agent-corex.service
Service Configuration
[Unit]
Description=Agent-Core Service
After=network.target
[Service]
Type=simple
User=agent-corex
WorkingDirectory=/opt/agent-corex
ExecStart=/usr/local/bin/uvicorn agent_core.api.main:app \
--host 0.0.0.0 --port 8000
Restart=on-failure
RestartSec=5s
Environment="MCP_CONFIG=/etc/agent-corex/mcp.json"
Environment="LOG_LEVEL=info"
[Install]
WantedBy=multi-user.target
Enable Service
sudo systemctl daemon-reload
sudo systemctl enable agent-corex
sudo systemctl start agent-corex
sudo systemctl status agent-corex
Nginx Reverse Proxy
Configuration
upstream agent_corex {
server 127.0.0.1:8000;
}
server {
listen 80;
server_name api.agent-corex.dev;
location / {
proxy_pass http://agent_corex;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
SSL/HTTPS
server {
listen 443 ssl;
server_name api.agent-corex.dev;
ssl_certificate /etc/letsencrypt/live/agent-corex.dev/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/agent-corex.dev/privkey.pem;
location / {
proxy_pass http://agent_corex;
# ... proxy headers ...
}
}
Environment Variables
Essential
# MCP Configuration
MCP_CONFIG=/path/to/mcp.json
# Logging
LOG_LEVEL=info # debug, info, warning, error
Optional
# Server
HOST=0.0.0.0
PORT=8000
# Performance
WORKERS=4
WORKER_CLASS=uvicorn.workers.UvicornWorker
# Cache
CACHE_DIR=~/.cache/agent_core
# Database (Phase 2)
DATABASE_URL=postgresql://user:pass@host/db
REDIS_URL=redis://host:6379
Monitoring
Health Check
curl http://localhost:8000/health
Logs
# Docker
docker logs -f <container-id>
# Kubernetes
kubectl logs -f deployment/agent-corex
# Systemd
sudo journalctl -u agent-corex -f
# File
tail -f /var/log/agent-corex.log
Metrics (Phase 2)
Will include:
- Request count
- Response time
- Error rate
- Tool retrieval accuracy
Security Checklist
- Use HTTPS/SSL in production
- Enable rate limiting (Phase 2)
- Add authentication (Phase 2)
- Keep dependencies updated
- Monitor for vulnerabilities
- Use environment variables for secrets
- Run behind reverse proxy (Nginx/HAProxy)
- Enable logging and monitoring
- Regular backups
- Security patches
Performance Tuning
Worker Processes
# More workers for high load
uvicorn agent_core.api.main:app --workers 4
# Single worker for development
uvicorn agent_core.api.main:app --workers 1
Gunicorn (Production)
gunicorn agent_core.api.main:app \
--workers 4 \
--worker-class uvicorn.workers.UvicornWorker \
--bind 0.0.0.0:8000
Load Balancing
Deploy multiple instances behind load balancer:
Client
↓
Load Balancer (Nginx/HAProxy)
↓
[Server 1] [Server 2] [Server 3]
Scaling
Horizontal Scaling
- Deploy multiple instances
- Use load balancer
- Share configuration via environment
- Each instance is stateless
Caching
- Cache tool listings (Phase 2)
- Cache embedding results (Phase 2)
- Use Redis for distributed cache (Phase 2)
Optimization
- Pre-index tools on startup
- Use CDN for static assets
- Database connection pooling (Phase 2)
Troubleshooting
Port Already in Use
# Kill process on port 8000
lsof -ti:8000 | xargs kill -9
# Or use different port
uvicorn agent_core.api.main:app --port 8001
Memory Issues
# Monitor memory
docker stats
free -h
# Reduce model cache
export CACHE_DIR=/small/disk/path
Configuration Not Loading
# Check config path
echo $MCP_CONFIG
cat /path/to/mcp.json
# Validate JSON
python -m json.tool /path/to/mcp.json
Backup & Recovery
Backup Configuration
# Backup config files
tar -czf agent-corex-backup-$(date +%Y%m%d).tar.gz \
/etc/agent-corex/ \
/opt/agent-corex/config/
Recovery
# Restore from backup
tar -xzf agent-corex-backup-*.tar.gz -C /
Next Steps
- ✅ Choose deployment platform
- ✅ Set environment variables
- ✅ Deploy application
- ✅ Monitor health checks
- ✅ Configure monitoring/alerts
- ✅ Set up backups
Last Updated: March 2026 Version: 1.0.0