Configuration Examples¶
Real-world configuration examples for common scenarios.
Web Applications¶
Static Site (Nginx)¶
name: my-website
region: us-east-1
container:
image: nginx:alpine
ports:
- container_port: 80
protocol: HTTP
health_check:
path: /
service:
replicas: 1
public: true
resources:
size: nano
Node.js API¶
name: node-api
region: us-east-1
container:
image: ghcr.io/myorg/node-api:latest
ports:
- container_port: 3000
protocol: HTTP
health_check:
path: /health
interval: 15s
service:
replicas: 2
public: true
resources:
size: small
environment:
NODE_ENV: production
PORT: "3000"
DATABASE_URL: ${DATABASE_URL}
Python Flask App¶
name: flask-app
region: us-west-2
container:
image: ghcr.io/myorg/flask-app:v1.0.0
args:
- gunicorn
- --bind=0.0.0.0:8000
- app:app
ports:
- container_port: 8000
protocol: HTTP
health_check:
path: /health
service:
replicas: 2
public: true
resources:
size: small
environment:
FLASK_ENV: production
SECRET_KEY: ${SECRET_KEY}
DATABASE_URL: ${DATABASE_URL}
AI/ML Applications¶
OmniAgent Gateway¶
name: my-agent
region: us-east-1
container:
image: ghcr.io/myorg/my-agent:latest
args:
- gateway
- run
ports:
- container_port: 18789
protocol: HTTP
health_check:
path: /api/health
service:
replicas: 1
public: true
resources:
size: small
environment:
OMNIAGENT_AGENT_PROVIDER: anthropic
OMNIAGENT_AGENT_MODEL: claude-sonnet-4-20250514
ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY}
LOG_LEVEL: info
tags:
app: omniagent
type: ai-gateway
LLM Proxy¶
name: llm-proxy
region: us-east-1
container:
image: ghcr.io/myorg/llm-proxy:latest
ports:
- container_port: 8080
protocol: HTTP
health_check:
path: /health
interval: 10s
timeout: 3s
service:
replicas: 3
public: true
resources:
size: medium
environment:
OPENAI_API_KEY: ${OPENAI_API_KEY}
ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY}
RATE_LIMIT: "100"
CACHE_TTL: "3600"
Microservices¶
API Gateway¶
name: api-gateway
region: us-east-1
container:
image: ghcr.io/myorg/gateway:latest
ports:
- container_port: 8080
protocol: HTTP
health_check:
path: /health
service:
replicas: 2
public: true
resources:
size: small
environment:
AUTH_SERVICE_URL: http://auth-service:8080
USER_SERVICE_URL: http://user-service:8080
JWT_SECRET: ${JWT_SECRET}
Background Worker¶
name: queue-worker
region: us-east-1
container:
image: ghcr.io/myorg/worker:latest
args:
- --queue=high,default,low
- --concurrency=20
ports:
- container_port: 9090
protocol: HTTP
name: metrics
health_check:
path: /metrics
service:
replicas: 3
public: false
resources:
size: medium
environment:
REDIS_URL: ${REDIS_URL}
DATABASE_URL: ${DATABASE_URL}
Full-Stack Applications¶
Next.js with API¶
name: nextjs-app
region: us-east-1
container:
image: ghcr.io/myorg/nextjs-app:latest
ports:
- container_port: 3000
protocol: HTTP
health_check:
path: /api/health
service:
replicas: 2
public: true
resources:
size: small
environment:
NODE_ENV: production
NEXT_PUBLIC_API_URL: https://api.example.com
DATABASE_URL: ${DATABASE_URL}
NEXTAUTH_SECRET: ${NEXTAUTH_SECRET}
NEXTAUTH_URL: https://app.example.com
Multi-Environment Setup¶
Development¶
# deploy.dev.yaml
name: my-app-dev
region: us-east-1
container:
image: ghcr.io/myorg/my-app:dev
ports:
- container_port: 8080
protocol: HTTP
health_check:
path: /health
service:
replicas: 1
public: true
resources:
size: nano
environment:
LOG_LEVEL: debug
DATABASE_URL: ${DEV_DATABASE_URL}
Production¶
# deploy.prod.yaml
name: my-app-prod
region: us-east-1
container:
image: ghcr.io/myorg/my-app:v1.2.3
ports:
- container_port: 8080
protocol: HTTP
health_check:
path: /health
interval: 15s
timeout: 3s
healthy_threshold: 3
unhealthy_threshold: 2
service:
replicas: 3
public: true
resources:
size: medium
environment:
LOG_LEVEL: info
DATABASE_URL: ${PROD_DATABASE_URL}
tags:
environment: production
cost-center: engineering