ORBITARIA โ AI Operating System
13 specialist agents on OpenClaw + N8N + Portainer. Full orchestration, governance, and automation โ Hostinger or AWS.
Phase 0 Platform Readiness
OpenClaw, Portainer, NPM, SSH all verified running
Phase 1 MASTER_ORCHESTRATOR
Routing spine, intent classification, workflow triggers
Phase 2 Governance Layer
09_SECURITY โ 12_COST โ 10_EVALS โ must be live before scaling
Phase 3 Communication Backbone
04_EMAIL โ 05_CALENDAR โ 08_MESSAGING
Phase 4 Interaction Capture
13_MEETING โ 07_CALLING
Phase 5 Growth Execution
06_MARKETING โ 11_WEBSITE โ 03_SOCIAL
Phase 6โ8 Harden โ Test โ Optimize
End-to-end tests, eval coverage, cost visibility
| From | Routes To | Trigger |
|---|---|---|
| MASTER_ORCHESTRATOR | All 12 specialists | Intent classification |
| EMAIL_AGENT | CALENDAR_AGENT | Booking request detected |
| CALENDAR_AGENT | MEETING_AGENT | Event confirmed |
| MEETING_AGENT | EMAIL + MESSAGING | Summary ready |
| CALLING_AGENT | MESSAGING + MEETING | Call ended |
| MARKETING_AGENT | SOCIAL + EMAIL | Campaign brief approved |
| WEBSITE_AGENT | EMAIL + MARKETING | Lead captured |
Go to Google Cloud Console
Open console.cloud.google.com โ create or select your OrbitumAI project.
Enable APIs
APIs & Services โ Library โ enable: Gmail API, Google Calendar API, Vertex AI API, Generative Language API, OAuth2 API.
Create OAuth Client ID
Credentials โ Create Credentials โ OAuth Client ID โ Web Application. Add redirect URIs:
https://openclawagents.orbitumai.com/auth/google/callback
https://build.orbitumai.com/rest/oauth2-credential/callbackSet Consent Screen to "In production"
App: OrbitumAI ยท Domain: orbitumai.com ยท Scopes: gmail.modify, gmail.send, calendar ยท Status: In production
Store in Portainer (both stacks)
GOOGLE_CLIENT_ID=your_id.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=your_secret
GMAIL_REFRESH_TOKEN=your_refresh_tokenGo to Anthropic Console
Open console.anthropic.com โ API Keys โ Create Key โ copy immediately (shown once).
Add Billing
Settings โ Billing โ add payment method and set a monthly spend limit.
Configure in OpenClaw
Run openclaw configure in Portainer console โ stores the key in auth-profiles.json automatically.
Go to OpenAI Platform
Open platform.openai.com โ API Keys โ Create new secret key โ copy immediately.
Set Usage Limits
Settings โ Limits โ set a monthly hard limit (recommend $50 to start).
Store in Portainer (openclaw stack)
OPENAI_API_KEY=sk-your_key_hereGenerate API Key
cal.com โ Settings โ Developer โ API Keys โ Add โ label "ORBITARIA".
Add to openclaw stack
Portainer โ Stacks โ openclaw โ Env vars โ add CAL_API_KEY
Add to n8n stack (separately)
Portainer โ Stacks โ n8n โ Env vars โ add CAL_API_KEY same value.
n8n Credential
n8n โ Credentials โ New โ Generic โ Header Auth. Name: cal-api-key (lowercase, hyphenated).
https://api.cal.com/v2/bookings. v1 is decommissioned. Response data at $input.first().json.dataCreate Resend Account
resend.com โ API Keys โ Create API Key.
Verify Domain
Domains โ Add Domain โ orbitumai.com โ add DNS records in Hostinger panel.
Store in Portainer
RESEND_API_KEY=re_your_key_here
RESEND_FROM_EMAIL=info@orbitumai.comRetellAI
app.retellai.com โ API Keys โ copy.
Telnyx
portal.telnyx.com โ API Keys โ create.
Store in Portainer
RETELL_API_KEY=your_retell_key
TELNYX_API_KEY=your_telnyx_keyCreate AWS Account
aws.amazon.com โ Create account โ add billing.
Create IAM User
IAM โ Users โ Create User โ Programmatic access. Start with AdministratorAccess then restrict.
Generate Access Keys
IAM โ User โ Security Credentials โ Create Access Key โ copy both values immediately.
Configure CLI
aws configure
# Access Key ID: your_key_id
# Secret Access Key: your_secret
# Region: us-east-1
# Output: json| Variable | Service | openclaw stack | n8n stack | Phase |
|---|---|---|---|---|
| ANTHROPIC_API_KEY | Anthropic | โ | โ | Phase 0 โ |
| OPENAI_API_KEY | OpenAI | โ | โ | Phase 0 |
| GMAIL_REFRESH_TOKEN | โ | โ | Phase 3 โ | |
| GOOGLE_CLIENT_ID/SECRET | โ | โ | Phase 3 | |
| CAL_API_KEY | Cal.com | verify | verify | Phase 3 โ |
| RESEND_API_KEY | Resend | โ | โ | Phase 3 |
| RETELL_API_KEY | RetellAI | store now | โ | Phase 4 |
| TELNYX_API_KEY | Telnyx | store now | โ | Phase 4 |
Portainer CE
portainer.orbitumai.com โ Container management, stack deploys, env vars, console access
Nginx Proxy Manager
proxy.orbitumai.com โ SSL termination, subdomain routing, Basic Auth
Umami Analytics
analytics.orbitumai.com โ Privacy-first website analytics for WEBSITE_AGENT
| Domain | Forward To | Port | Websockets | SSL |
|---|---|---|---|---|
| openclawagents.orbitumai.com | openclaw | 18789 | ON | Let's Encrypt |
| build.orbitumai.com | n8n | 5678 | ON | Let's Encrypt |
| portainer.orbitumai.com | portainer | 9000 | OFF | Let's Encrypt |
| analytics.orbitumai.com | umami | 3000 | ON | Let's Encrypt |
/opt/openclaw/config/ โ EDIT HERE (host, not container)
openclaw.json โ Main config + gateway token
agents/main/agent/auth-profiles.json
/opt/openclaw/workspace/ โ All SOUL.md files
/opt/n8n/data/
/opt/umami/data//opt/openclaw/config/openclaw.json on VPS host. maxSpawnDepth crashes container. Use "ask":"off" not "never". Use "bind":"lan" not "0.0.0.0". No per-agent fallbacks.version: '3.8'
services:
openclaw:
image: ghcr.io/openclaw/openclaw:latest
container_name: openclaw
restart: unless-stopped
ports:
- "18789:18789"
volumes:
- /opt/openclaw/config:/home/node/.openclaw
- /opt/openclaw/workspace:/home/node/.openclaw/workspace
environment:
- OPENCLAW_GATEWAY_BIND=0.0.0.0
- OPENAI_API_KEY=${OPENAI_API_KEY}
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
- GMAIL_REFRESH_TOKEN=${GMAIL_REFRESH_TOKEN}
- CAL_API_KEY=${CAL_API_KEY}
- RESEND_API_KEY=${RESEND_API_KEY}
- RETELL_API_KEY=${RETELL_API_KEY}
- TELNYX_API_KEY=${TELNYX_API_KEY}
networks:
- openclaw-net
networks:
openclaw-net:
name: openclaw_openclaw-net
external: true{
"gateway": {
"mode": "local", "bind": "lan",
"auth": { "token": "REPLACE_WITH_GATEWAY_TOKEN",
"rateLimit": { "maxAttempts": 10, "windowMs": 60000, "lockoutMs": 300000 }
},
"controlUi": { "allowInsecureAuth": true }
},
"session": { "dmScope": "per-channel-peer" },
"tools": {
"fs": { "workspaceOnly": true },
"exec": { "strictInlineEval": true, "ask": "off" },
"elevated": { "enabled": false }
},
"agents": {
"defaults": { "model": { "primary": "openai/gpt-4.1-mini",
"fallbacks": ["openai/gpt-4o","anthropic/claude-opus-4-6"] } },
"list": [
{ "id": "main", "model": { "primary": "anthropic/claude-opus-4-6" } },
{ "id": "master-orchestrator" }, { "id": "social-agent" },
{ "id": "email-agent" }, { "id": "calendar-agent" },
{ "id": "marketing-agent" }, { "id": "calling-agent" },
{ "id": "messaging-agent" }, { "id": "security-agent" },
{ "id": "evals-agent" }, { "id": "website-agent" },
{ "id": "cost-agent" }, { "id": "meeting-agent" }
]
}
}openclaw agents add master-orchestrator
openclaw agents add social-agent
openclaw agents add email-agent
openclaw agents add calendar-agent
openclaw agents add marketing-agent
openclaw agents add calling-agent
openclaw agents add messaging-agent
openclaw agents add security-agent
openclaw agents add evals-agent
openclaw agents add website-agent
openclaw agents add cost-agent
openclaw agents add meeting-agent
openclaw agents list --bindingsopenclaw agents config main --system-prompt-file /home/node/.openclaw/workspace/ARIASKILLS.MD
openclaw agents config master-orchestrator --system-prompt-file /home/node/.openclaw/workspace/MASTERSKILLS.MD
openclaw agents config social-agent --system-prompt-file /home/node/.openclaw/workspace/SOCIALSKILLS.MD
openclaw agents config email-agent --system-prompt-file /home/node/.openclaw/workspace/EMAILSKILLS.MD
openclaw agents config calendar-agent --system-prompt-file /home/node/.openclaw/workspace/CALENDARSKILLS.MD
openclaw agents config marketing-agent --system-prompt-file /home/node/.openclaw/workspace/MARKETINGSKILLS.MD
openclaw agents config calling-agent --system-prompt-file /home/node/.openclaw/workspace/CALLINGSKILLS.MD
openclaw agents config messaging-agent --system-prompt-file /home/node/.openclaw/workspace/MESSAGINGSKILLS.MD
openclaw agents config security-agent --system-prompt-file /home/node/.openclaw/workspace/SECURITYSKILLS.MD
openclaw agents config evals-agent --system-prompt-file /home/node/.openclaw/workspace/EVALSSKILLS.MD
openclaw agents config website-agent --system-prompt-file /home/node/.openclaw/workspace/WEBSITESKILLS.MD
openclaw agents config cost-agent --system-prompt-file /home/node/.openclaw/workspace/COSTSKILLS.MD
openclaw agents config meeting-agent --system-prompt-file /home/node/.openclaw/workspace/MEETINGSKILLS.MD
openclaw secrets reloadversion: '3.8'
services:
n8n:
image: n8nio/n8n:latest
container_name: n8n
restart: unless-stopped
ports:
- "5678:5678"
environment:
- N8N_HOST=build.orbitumai.com
- N8N_PORT=5678
- N8N_PROTOCOL=https
- WEBHOOK_URL=https://build.orbitumai.com/
- N8N_EDITOR_BASE_URL=https://build.orbitumai.com/
- N8N_BLOCK_ENV_ACCESS_IN_NODE=false
- EXECUTIONS_PROCESS=main
- CAL_API_KEY=${CAL_API_KEY}
- GMAIL_REFRESH_TOKEN=${GMAIL_REFRESH_TOKEN}
- GOOGLE_CLIENT_ID=${GOOGLE_CLIENT_ID}
- GOOGLE_CLIENT_SECRET=${GOOGLE_CLIENT_SECRET}
volumes:
- /opt/n8n/data:/home/node/.n8n
networks:
- n8n-net
networks:
n8n-net:
name: n8n_n8n-net
external: true# Cron trigger: 0 8 * * * (America/Chicago)
# HTTP Request: GET https://api.cal.com/v2/bookings
# Auth: Generic Credential โ Header Auth โ cal-api-key
# Params:
afterStart: {{ $now.startOf('day').toISO() }}
beforeEnd: {{ $now.endOf('day').toISO() }}
# Parse: const bookings = $input.first().json.data;Endpoint: https://build.orbitumai.com/webhook/calcom-relay
// HMAC verify Code node:
const crypto = require('crypto');
const sig = crypto.createHmac('sha256', $env.CAL_WEBHOOK_SECRET)
.update(JSON.stringify($input.first().json)).digest('hex');
if ('sha256='+sig !== $input.first().headers['x-cal-signature-256'])
throw new Error('Invalid signature');Antigravity is a browser extension that gives you an AI chat panel on any webpage โ including your N8N dashboard. You describe what you want in plain English and it writes the whole workflow for you.
N8N is your visual automation engine โ like a flowchart where each box does one job and the boxes connect to run automatically.
When connected via MCP, Antigravity pushes the finished workflow straight into your N8N. No copy-paste. No coding. The workflow just appears.
Generate N8N API Key
Go to build.orbitumai.com โ avatar bottom-left โ Settings โ n8n API โ Create API key โ label "Antigravity" โ copy immediately.
Save in Portainer (n8n stack)
N8N_API_KEY=n8n_api_your_key_hereAdd MCP Variables to N8N Stack
Portainer โ Stacks โ n8n โ Editor tab โ add to environment section:
- N8N_COMMUNITY_PACKAGES_ALLOW_TOOL_USAGE=true
- N8N_MCP_ENABLED=true
- N8N_API_KEY=${N8N_API_KEY}Redeploy Stack
Portainer โ n8n stack โ Update the stack โ wait 30 seconds.
Verify MCP is Live
Open in browser โ should return JSON, not an error:
https://build.orbitumai.com/mcp-server/httpOpen Chrome or Edge
Antigravity works in Chromium-based browsers only.
Install from Chrome Web Store
Search "Antigravity" โ Add to Chrome.
Pin to Toolbar & Add API Key
Click ๐งฉ โ pin Antigravity โ click icon โ Settings โ paste your sk-ant-... Anthropic key.
Open MCP Servers in Antigravity Settings
Look for MCP Servers, Tools, or Connections section.
Add New Server
Save and Verify
Click Save. You should see a green "Connected" status. If red โ check the URL and API key.
Daily Calendar Summary โ CALENDAR_AGENT
Cal.com Webhook Relay โ CALENDAR_AGENT
Gmail Inbound Monitor โ EMAIL_AGENT
Weekly Marketing Report โ MARKETING_AGENT
| Problem | Cause | Fix |
|---|---|---|
| Red dot in Antigravity | Can't reach MCP endpoint | Visit build.orbitumai.com/mcp-server/http in browser. If error โ verify N8N_MCP_ENABLED=true in Portainer and redeploy. |
| Workflow appears empty in N8N | Malformed JSON push | Ask Antigravity: "The workflow appeared empty โ please rebuild and push again." |
| 401 Unauthorized in execution | Wrong/missing API key | N8N โ click red node โ Edit Credentials โ re-enter correct key. |
| Workflow runs but nothing happens | Not Activated | N8N โ open workflow โ toggle Active switch ON (turns green). |
| Cal.com webhook not received | URL not registered | Cal.com โ Settings โ Developer โ Webhooks โ add URL: build.orbitumai.com/webhook/calcom-relay |
| Agent | Layer | Model | Key Integration | Auto-Schedule |
|---|---|---|---|---|
| main (OrbitAria) | Entry | claude-opus-4-6 | Telegram bot | Human only |
| 01_MASTER_ORCHESTRATOR | L1 | gpt-4.1-mini | All agents, routing | Yes โ routing spine |
| 03_SOCIAL_AGENT | L2 | gpt-4.1-mini | LinkedIn, Instagram, X | Approval only |
| 04_EMAIL_AGENT | L2 | gpt-4.1-mini | Gmail OAuth, Resend | Yes |
| 05_CALENDAR_AGENT | L2 | gpt-4.1-mini | Cal.com v2, n8n relay | Yes โ daily summary |
| 06_MARKETING_AGENT | L3 | gpt-4.1-mini | Social, Email, Calling briefs | Weekly report auto |
| 07_CALLING_AGENT | L2 | gpt-4.1-mini | RetellAI, Telnyx | NEVER auto |
| 08_MESSAGING_AGENT | L2 | gpt-4.1-mini | Telegram, WhatsApp, Slack | Yes |
| 09_SECURITY_AGENT | L4 | gpt-4.1-mini | All agents (horizontal) | Yes โ governance |
| 10_EVALS_AGENT | L4 | gpt-4.1-mini | All agents (scoring) | Yes โ governance |
| 11_WEBSITE_AGENT | L3 | gpt-4.1-mini | Vercel, Umami, leads | Yes |
| 12_COST_AGENT | L4 | gpt-4.1-mini | All agents (token tracking) | Yes โ governance |
| 13_MEETING_AGENT | L2 | gpt-4.1-mini | Transcripts, Email, Telegram | NEVER auto |
scp 01_MASTER_ORCHESTRATOR.md root@31.220.18.167:/opt/openclaw/workspace/MASTERSKILLS.MD
scp 03_SOCIAL_AGENT.md root@31.220.18.167:/opt/openclaw/workspace/SOCIALSKILLS.MD
scp 04_EMAIL_AGENT.md root@31.220.18.167:/opt/openclaw/workspace/EMAILSKILLS.MD
scp 05_CALENDAR_AGENT.md root@31.220.18.167:/opt/openclaw/workspace/CALENDARSKILLS.MD
scp 06_MARKETING_AGENT.md root@31.220.18.167:/opt/openclaw/workspace/MARKETINGSKILLS.MD
scp 07_CALLING_AGENT.md root@31.220.18.167:/opt/openclaw/workspace/CALLINGSKILLS.MD
scp 08_MESSAGING_AGENT.md root@31.220.18.167:/opt/openclaw/workspace/MESSAGINGSKILLS.MD
scp 09_SECURITY_AGENT.md root@31.220.18.167:/opt/openclaw/workspace/SECURITYSKILLS.MD
scp 10_EVALS_AGENT.md root@31.220.18.167:/opt/openclaw/workspace/EVALSSKILLS.MD
scp 11_WEBSITE_AGENT.md root@31.220.18.167:/opt/openclaw/workspace/WEBSITESKILLS.MD
scp 12_COST_AGENT.md root@31.220.18.167:/opt/openclaw/workspace/COSTSKILLS.MD
scp 13_MEETING_AGENT.md root@31.220.18.167:/opt/openclaw/workspace/MEETINGSKILLS.MD# [AGENT_NAME]SKILLS โ [Agent Title]
# OpenClaw Agent Skill File | OrbitumAI
# Agent ID: [agent-id] | Model: openai/gpt-4.1-mini | v2026.3.24+
## IDENTITY
You are [Persona Name] โ OrbitumAI's [role].
North star: [One sentence mission aligned to ORBIT Framework]
## OPERATING MODE
[Describe modes: Research / Advise / Execute or similar]
## CORE CAPABILITIES
[List specific tasks this agent performs]
## INTEGRATION REFERENCES
| Integration | Credential | Purpose |
|---|---|---|
| [Service] | $env.[VAR_NAME] | [What it does] |
## WORKFLOW ROUTING
Receives from: [upstream agents]
Routes to: [downstream agents]
Governance: SECURITY_AGENT, EVALS_AGENT, COST_AGENT
## PROTECTED CONTACTS โ NEVER ACTION THESE
Riddhi, Ranjita, Rahul, Uttama, Jaydeep, Medha, Gudia
## WHAT YOU MUST NEVER DO
- Never execute without Shuv approval where required
- Never store credentials in this file
- Never invent client results or outcome guarantees
- Never contact protected contacts above
*OrbitumAI | [AGENT]SKILLS.MD | v2026.3.24+ | CONFIDENTIAL*EC2 โ Compute
t3.medium minimum (2 vCPU, 4GB RAM). t3.large recommended for all 13 agents in production.
S3 โ Storage
Store SOUL.md files, workflow exports, meeting transcripts, and config backups.
Secrets Manager
Replace Portainer env vars with AWS Secrets Manager for production-grade credential management.
Route 53 + ACM
DNS management and free SSL certificates โ replaces NPM Let's Encrypt for AWS deployments.
# Security Group inbound: 22 (your IP), 80, 443 โ block 18789
ssh -i your-key.pem ubuntu@your-ec2-ip
curl -fsSL https://get.docker.com | sh
apt install docker-compose-plugin -y
usermod -aG docker ubuntu
mkdir -p /opt/openclaw/config /opt/openclaw/workspace
mkdir -p /opt/n8n/data /opt/portainer/data /opt/umami/data
chmod 755 /opt/openclaw/config /opt/openclaw/workspaceaws secretsmanager create-secret \
--name "orbitumai/production" \
--secret-string '{
"ANTHROPIC_API_KEY":"sk-ant-...",
"OPENAI_API_KEY":"sk-...",
"CAL_API_KEY":"...",
"GMAIL_REFRESH_TOKEN":"...",
"RESEND_API_KEY":"re_..."
}'| Task | Priority | Status | Where |
|---|---|---|---|
| OpenClaw 5-point hardening | HIGH | โ Done | OpenClaw Chat |
| Block port 18789 externally | HIGH | โ Done | UFW + iptables |
| Docker UFW bypass fix | HIGH | โ Done | DOCKER-USER chain |
| Rotate gateway auth token | MEDIUM | โ Done | SSH Terminal |
| Fix file permissions | MEDIUM | โณ Pending | SSH Terminal |
| Install Fail2Ban | MEDIUM | โณ Pending | SSH Terminal |
| Remove port 8080 | MEDIUM | โณ Pending | SSH Terminal |
chmod 700 /opt/openclaw/config
chmod 600 /opt/openclaw/config/openclaw.json
chmod 600 /opt/openclaw/config/agents/main/agent/auth-profiles.jsonapt install fail2ban -y
systemctl enable fail2ban && systemctl start fail2ban
fail2ban-client statusopenclaw security audit
openclaw security audit --deep
openclaw security audit --fix