Claude-skill-registry deployment-helper
Deploy elizaOS agents to production with best practices, monitoring, and scaling. Triggers on "deploy agent", "production setup", or "deploy elizaOS"
install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/deployment-helper" ~/.claude/skills/majiayu000-claude-skill-registry-deployment-helper && rm -rf "$T"
manifest:
skills/data/deployment-helper/SKILL.mdsource content
Deployment Helper Skill
Production deployment configurations for elizaOS agents with Docker, monitoring, and scaling.
Deployment Patterns
1. Single Agent Deployment
// src/index.ts import { AgentRuntime } from '@elizaos/core'; import { PGAdapter } from '@elizaos/adapter-postgresql'; import character from './character'; const runtime = new AgentRuntime({ databaseAdapter: new PGAdapter(process.env.DATABASE_URL), character, env: process.env }); await runtime.initialize(); // Health check endpoint app.get('/health', (req, res) => { res.json({ status: 'healthy', agent: character.name, uptime: process.uptime() }); }); // Graceful shutdown process.on('SIGTERM', async () => { await runtime.stop(); process.exit(0); });
2. Docker Deployment
# Dockerfile FROM node:20-alpine WORKDIR /app COPY package*.json ./ RUN npm ci --only=production COPY . . RUN npm run build EXPOSE 3000 CMD ["npm", "start"]
# docker-compose.yml version: '3.8' services: agent: build: . ports: - "3000:3000" environment: - DATABASE_URL=postgresql://user:pass@db:5432/eliza - OPENAI_API_KEY=${OPENAI_API_KEY} depends_on: - db - redis restart: unless-stopped db: image: postgres:15 volumes: - pgdata:/var/lib/postgresql/data environment: - POSTGRES_DB=eliza - POSTGRES_USER=user - POSTGRES_PASSWORD=pass redis: image: redis:7-alpine volumes: - redisdata:/data volumes: pgdata: redisdata:
3. Multi-Agent Deployment
// agents/coordinator.ts const agents = [ { character: agent1, id: 'agent-1' }, { character: agent2, id: 'agent-2' }, { character: agent3, id: 'agent-3' } ]; const runtimes = await Promise.all( agents.map(async ({ character, id }) => { const runtime = new AgentRuntime({ databaseAdapter: new PGAdapter(DATABASE_URL), character, env: process.env }); await runtime.initialize(); return { id, runtime }; }) ); // Load balancing function selectAgent(message: string): AgentRuntime { const hash = hashCode(message); const index = hash % runtimes.length; return runtimes[index].runtime; }
Monitoring
// Metrics collection import { collectDefaultMetrics, register, Counter, Histogram } from 'prom-client'; collectDefaultMetrics(); const messageCounter = new Counter({ name: 'agent_messages_total', help: 'Total messages processed', labelNames: ['agent', 'status'] }); const responseTime = new Histogram({ name: 'agent_response_duration_seconds', help: 'Response time', buckets: [0.1, 0.5, 1, 2, 5] }); // Metrics endpoint app.get('/metrics', async (req, res) => { res.set('Content-Type', register.contentType); res.end(await register.metrics()); });
Production Checklist
- Environment variables configured
- Database migrations run
- Health check endpoint working
- Monitoring configured
- Logging setup
- Error tracking (Sentry)
- Rate limiting enabled
- HTTPS configured
- Secrets secured
- Backup strategy
- Scaling plan
- Rollback procedure