Intro
AI Agents SaaS based in OpenClaw — self-hosted, open source.
OpenOryxa is a self-hosted management platform for multiple OpenClaw AI agents. Think of it as your own private SaaS of OpenClaw: one dashboard, unlimited isolated agent containers, each with its own phone number, API key, model, and dedicated Chromium browser for web automation.
Unlike running a single OpenClaw instance, OpenOryxa lets you spin up multiple agents that coexist in the same Telegram or WhatsApp group — each with a different personality, trigger, or role. You can also expose a signup flow so your users self-provision their own agent instance, making it trivial to run a white-label AI agent SaaS on your own server.
Install
Run the install script on a fresh Ubuntu 22.04+ server:
curl -fsSL https://get.oryxa.digital | bash
The installer asks a few questions and sets everything up:
- Domain — e.g.
myagents.com. Agents get subdomains likeagent-name.myagents.com. - Admin email — used for Let's Encrypt SSL notifications.
- Cloudflare API token — optional, for wildcard SSL. See Custom Domains.
- Admin password — leave blank to auto-generate a secure password.
- AI provider — choose from OpenAI, Anthropic, Google Gemini, Groq, or Ollama. Used as the default for new agents.
- API key — the key for your chosen provider. See Getting API Keys. Skip if using Ollama (local) or to configure later.
Then it will:
- Install Docker
- Deploy Traefik as a reverse proxy with automatic Let's Encrypt SSL
- Pull and start the OpenOryxa manager container
Configure
After installation, the installer prints your dashboard URL:
✓ OpenOryxa is ready!
Dashboard: https://dashboard.yourdomain.com
Password: your-generated-password
Open the dashboard in your browser. On first login you'll be prompted to set a permanent admin password.
Create an agent
Click "New Agent"
Enter a name (lowercase letters and hyphens only), a display name, and choose an AI provider and model.
Add your API key
Paste your AI provider API key. It's stored encrypted on your server and never sent to OpenOryxa servers.
Set identity
Write an identity prompt that defines your agent's personality, role, and behavior.
Provision
Click "Create Agent". OpenOryxa spins up a Docker container, configures Traefik routing, and starts the agent. This takes about 30 seconds.
To connect an agent to WhatsApp:
- Open the agent's settings in the dashboard
- Go to the WhatsApp tab
- Click Connect WhatsApp — a QR code appears
- Open WhatsApp on your phone → Linked Devices → Link a Device
- Scan the QR code
Telegram
To connect an agent to Telegram:
- Create a bot on Telegram via @BotFather — run
/newbotand copy the token - Open the agent's settings → Telegram tab
- Paste the bot token and click Connect
Browser
Every agent automatically gets a dedicated Chromium instance for web browsing and automation. It's accessible via the agent's OpenClaw dashboard at https://<agent-name>.yourdomain.com.
Supported Channels
Each OpenClaw agent supports multiple messaging channels simultaneously. Connect one agent to WhatsApp and Telegram at the same time, or create specialized agents per platform.
Core (built-in)
| Channel | Notes |
|---|---|
| WhatsApp core | Via Baileys library. QR pairing from dashboard. Requires a personal phone number. |
| Telegram core | Bot API. Create a bot via @BotFather. Supports groups and DMs. |
| WebChat core | Embeddable web chat widget via WebSocket. No external account needed. |
Popular (plugins)
| Channel | Notes |
|---|---|
| Discord plugin | Bot API. Supports servers, channels, threads, and DMs. |
| Slack plugin | Bolt SDK. Supports workspace bots and DMs. |
| Signal plugin | Privacy-focused messaging. Requires a dedicated phone number. |
| SMS plugin | Via Twilio webhook. Send and receive SMS to any number. |
| Voice Call plugin | Telephony via Plivo, Telnyx, or Twilio. Supports inbound and outbound calls. |
| LINE plugin | Messaging API bot. Popular in Japan, Taiwan, and Thailand. |
| Twitch plugin | Chat channel bot via IRC connection. |
| IRC plugin | Classic IRC servers with pairing controls. |
| Nostr plugin | Decentralized DMs via NIP-04 protocol. |
Enterprise & others
| Channel | Notes |
|---|---|
| Microsoft Teams plugin | Bot Framework with enterprise SSO support. |
| Google Chat plugin | App API via HTTP webhook. Works with Google Workspace. |
| Mattermost plugin | Bot API with WebSocket. Self-hosted or cloud. |
| Matrix plugin | Open federated protocol. Works with Element and other clients. |
| Nextcloud Talk plugin | Self-hosted Nextcloud chat integration. |
| WeChat plugin | iLink bot via QR login. Popular in China. |
| Zalo plugin | Popular Vietnamese messenger. Bot API and QR personal login variants. |
| Feishu plugin | Lark/Feishu bot via WebSocket. Enterprise use in Asia. |
| Synology Chat plugin | NAS-based team chat via webhooks. |
AI Providers
Each agent has its own API key and model — you can mix providers across agents. Supported providers:
- OpenAI — gpt-4o, gpt-4o-mini, o3, o4-mini, etc.
- Anthropic — claude-3-5-sonnet, claude-opus-4, etc.
- Google Gemini — gemini-2.0-flash, gemini-1.5-pro
- Groq — llama3, mixtral (fast inference, free tier available)
- Ollama — local models on your server, no key needed
- Any OpenAI-compatible endpoint — LM Studio, Together AI, OpenRouter, etc.
During installation the script asks which provider to use as the default for new agents. You can change this per-agent at any time in the dashboard.
Getting API Keys
You'll need a key from at least one provider. Steps for each:
OpenAI
- Create an account at platform.openai.com
- Go to API keys in the left menu
- Click Create new secret key — copy it immediately, it's only shown once
- Add a payment method under Billing to activate the key (free trial credits available for new accounts)
Key format: sk-...
Anthropic
- Create an account at console.anthropic.com
- Go to API Keys
- Click Create Key — copy it immediately
- Add credits under Plans & Billing (or use the free tier with rate limits)
Key format: sk-ant-...
Google Gemini
- Go to aistudio.google.com/app/apikey (sign in with your Google account)
- Click Create API key
- Copy the key — it's shown in the list anytime
Key format: AIza... — Gemini has a generous free tier (RPM-limited).
Groq
- Create an account at console.groq.com
- Go to API Keys → Create API Key
- Copy the key
Key format: gsk_... — Groq has a free tier with high speed inference.
Ollama (local, no key needed)
Ollama runs models locally on your server. No API key required:
- Install Ollama on your VPS:
curl -fsSL https://ollama.com/install.sh | sh - Pull a model:
ollama pull llama3.2 - In OpenOryxa dashboard, select provider Ollama and set the base URL to
http://host.docker.internal:11434
Custom Domains
Each agent gets a subdomain under your root domain: agent-name.yourdomain.com.
Wildcard DNS (required)
Point *.yourdomain.com to your server IP so every agent subdomain resolves automatically. In Cloudflare:
- Go to DNS → Add Record
- Type:
A, Name:*, IPv4 Address: your server IP, Proxy: DNS only (grey cloud) - Save — Traefik handles SSL automatically via Let's Encrypt
Wildcard SSL via Cloudflare (recommended)
For a wildcard SSL certificate covering all subdomains at once, use the Cloudflare DNS challenge:
-
Create a Cloudflare API token
Go to Cloudflare → My Profile → API Tokens → Create Token.
Use the "Edit zone DNS" template. Under Zone Resources set Include → Specific zone → yourdomain.com.
Copy the token. -
Add your DNS record
Add anArecord for*pointing to your server IP (DNS only, not proxied). -
Paste during install
When the installer asks for a Cloudflare API token, paste it in.
Traefik will use the DNS challenge to issue a single*.yourdomain.comwildcard certificate covering all agent subdomains.
Backup
Agent data (conversation history, configuration) is stored in /opt/openoryxa/agents/<name>/. Back it up with:
tar czf openoryxa-backup-$(date +%Y%m%d).tar.gz /opt/openoryxa/agents/
Updating
To update OpenOryxa to the latest version:
curl -fsSL https://get.oryxa.digital | bash -- --update
This pulls the latest manager image and restarts containers without downtime to existing agents.
Environment Variables
The manager reads configuration from /opt/openoryxa/.env:
DOMAIN=yourdomain.com
ACME_EMAIL=you@example.com
CLOUDFLARE_API_TOKEN=your-cf-token # optional, for wildcard SSL
ADMIN_PASSWORD=your-password
DEFAULT_AI_PROVIDER=openai # openai | anthropic | gemini | groq | ollama
DEFAULT_AI_API_KEY=sk-... # used as default when creating new agents
Troubleshooting
Agent container won't start
Check Docker logs: docker logs openclaw-<name>
SSL certificate not issued
Verify that your domain's DNS is pointing to your server and that ports 80/443 are open. Traefik logs: docker logs traefik
WhatsApp disconnects frequently
This is a WhatsApp limitation for third-party clients. Keep the agent container running continuously and avoid scanning the QR code from multiple devices.
API key returns 401
The key may be invalid or quota-exhausted. Update it in the agent's settings on the dashboard. OpenOryxa shows a warning badge on the agent card when the key is returning errors.