File size: 3,587 Bytes
2ed8996
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
# Render Deployment Configuration for AegisLM SaaS Backend
# Production-ready deployment on Render + Upstash + Neon

services:
  # Main API Service
  - type: web
    name: aegislm-api
    env: python
    plan: starter
    buildCommand: pip install -r requirements.txt
    startCommand: uvicorn main:app --host 0.0.0.0 --port $PORT
    healthCheckPath: /health
    autoDeploy: true
    
    # Environment Variables (Set these in Render Dashboard)
    envVars:
      - key: PYTHON_VERSION
        value: 3.11
      - key: APP_NAME
        value: "AegisLM Red Team API"
      - key: APP_VERSION
        value: "1.0.0"
      - key: DEBUG
        value: false
      - key: API_V1_STR
        value: "/api/v1"
      
      # Security (Set in Render Dashboard)
      - key: SECRET_KEY
        generateValue: true
      - key: ALGORITHM
        value: "HS256"
      - key: ACCESS_TOKEN_EXPIRE_MINUTES
        value: 30
      
      # Database (Neon PostgreSQL)
      - key: DATABASE_URL
        fromDatabase:
          name: aegislm-db
          property: connectionString
      
      # Redis (Upstash)
      - key: REDIS_URL
        fromService:
          type: redis
          name: aegislm-redis
          property: connectionString
      
      # CORS (Update with your frontend domain)
      - key: BACKEND_CORS_ORIGINS
        value: "https://your-frontend-domain.com"
      
      # Rate Limiting
      - key: RATE_LIMIT_PER_MINUTE
        value: 60
      - key: RATE_LIMIT_BURST
        value: 10
      
      # Logging
      - key: LOG_LEVEL
        value: "INFO"
      - key: ENABLE_REQUEST_LOGGING
        value: true
      
      # Learning System
      - key: ENABLE_LEARNING
        value: true
      - key: TARGET_MODELS
        value: "gpt-3.5-turbo,gpt-4,claude-3"
      
      # Model Provider Keys (Set in Render Dashboard)
      - key: OPENAI_API_KEY
        sync: false
      - key: ANTHROPIC_API_KEY
        sync: false
      - key: GOOGLE_API_KEY
        sync: false
      
      # Monitoring
      - key: ENABLE_PERFORMANCE_MONITORING
        value: true
      - key: ENABLE_ERROR_TRACKING
        value: true
      - key: HEALTH_CHECK_INTERVAL
        value: 30

  # Worker Service
  - type: worker
    name: aegislm-worker
    env: python
    plan: starter
    buildCommand: pip install -r requirements.txt
    startCommand: celery -A workers.celery_worker worker --loglevel=info --concurrency=2
    autoDeploy: true
    
    # Environment Variables (Same as API service)
    envVars:
      - key: PYTHON_VERSION
        value: 3.11
      - key: APP_NAME
        value: "AegisLM Worker"
      - key: DEBUG
        value: false
      
      # Database (Neon PostgreSQL)
      - key: DATABASE_URL
        fromDatabase:
          name: aegislm-db
          property: connectionString
      
      # Redis (Upstash)
      - key: REDIS_URL
        fromService:
          type: redis
          name: aegislm-redis
          property: connectionString
      
      # Celery Settings
      - key: CELERY_WORKER_CONCURRENCY
        value: 2
      - key: CELERY_TASK_RATE_LIMIT
        value: "10/m"
      
      # Learning System
      - key: ENABLE_LEARNING
        value: true
      
      # Model Provider Keys (Set in Render Dashboard)
      - key: OPENAI_API_KEY
        sync: false
      - key: ANTHROPIC_API_KEY
        sync: false
      - key: GOOGLE_API_KEY
        sync: false

# Databases
databases:
  # Neon PostgreSQL Database
  - name: aegislm-db
    databaseName: aegislm
    user: aegislm_user

# Redis Instance
redis:
  - name: aegislm-redis
    plan: starter