Juju Charm for
OpenClaw

A production-ready Juju machine charm that deploys OpenClaw, the self-hosted personal AI assistant with multi-platform messaging support.

🤖 AI-Powered 💬 13+ Platforms 🔒 Self-Hosted ⚡ Production-Ready

🏗️ Gateway-Node Architecture

Gateway (Leader) openclaw/0* Port 18789 AI • Messaging • Dashboard Node openclaw/1 Compute Capacity System Access Node openclaw/2 Compute Capacity System Access Node openclaw/N Compute Capacity System Access Messaging Platforms 💬 📱 🎮 Peer Relations Distributed Compute Horizontal Scaling

Charm Features

Everything you need for a production OpenClaw deployment

🚀 Deployment Workflow

1 Deploy Charm juju deploy • Install Node.js • Setup OpenClaw • Create systemd 2 Configure AI juju config • Set AI provider • Configure model • Add API keys 3 Add Channels Optional • Telegram • Discord • Slack, LINE... Access Gateway Port 18789 • Dashboard • Device pairing • Ready to use! ⏱️ Deployment typically takes 2-5 minutes Scale Later juju add-unit for multi-node
🚀

One-Command Deploy

Deploy OpenClaw to any Ubuntu machine with a single Juju command. No complex setup required.

💬

Multi-Platform Messaging

Supports 13+ platforms: WhatsApp, Telegram, Slack, Discord, Signal, iMessage, Teams, and more.

🤖

AI Provider Flexibility

Configure up to 11 AI models simultaneously. Works with Anthropic Claude, OpenAI, Google Gemini, AWS Bedrock, or local models via Ollama.

🔒

Security-First Design

Built-in sandboxing, pairing mode for DMs, and configurable security policies.

🌐

Browser Automation

Integrated Playwright for web scraping, testing, and automated browsing tasks.

⚙️

Fully Configurable

Extensive configuration options via Juju config. Update anytime without redeployment.

📊

Systemd Integration

Managed as a systemd service with automatic restarts, logging, and resource limits.

🔄

Auto-Update Support

Optional automatic updates to keep your OpenClaw instance current with latest features.

🎯

Production-Ready

Tested CI/CD pipeline with automated installation tests before CharmHub publication.

Quick Start

Get OpenClaw running in minutes

1

Deploy the Charm

Deploy OpenClaw to a Juju machine or LXD container

juju deploy openclaw --channel edge
2

Configure AI Provider

Set up your AI model credentials (Anthropic, OpenAI, Google, etc.)

juju config openclaw \ ai-provider="anthropic" \ ai-api-key="sk-ant-xxx" \ ai-model="claude-opus-4-5"
3

Enable Messaging Channels (Optional)

Connect your preferred messaging platforms

juju config openclaw \ telegram-bot-token="123456:ABC-DEF"
4

Access the Gateway

The OpenClaw Gateway will be running on port 18789

juju status openclaw

Configuration Options

Customize OpenClaw to fit your needs

🤖 AI Configuration

ai-provider
Primary AI provider: anthropic, openai, google, bedrock, ollama
ai-model
Model to use (e.g., claude-opus-4-5, gpt-4)
ai-api-key
API key for the selected AI provider
ai[0-9]-provider
Additional AI provider slots (0-9) for multi-model support
ai[0-9]-model
Model name for additional AI slots (0-9)
ai[0-9]-api-key
API key for additional AI slots (0-9)

🌐 Gateway Settings

gateway-port
Gateway WebSocket/HTTP port (default: 18789)
gateway-bind
Bind mode: loopback, lan, or specific IP
log-level
Logging level: debug, info, warn, error

💬 Messaging Platforms

telegram-bot-token
Telegram bot token from @BotFather
discord-bot-token
Discord bot token from Developer Portal
slack-bot-token
Slack bot token (xoxb-...)
slack-app-token
Slack app token (xapp-...)
line-channel-access-token
LINE Messaging API channel access token
line-channel-secret
LINE Messaging API channel secret

🔒 Security Settings

dm-policy
DM access policy: pairing, open, or closed
sandbox-mode
Sandbox mode: all, non-main, or none
use-browser
Browser for automation: chrome, chromium, firefox, or empty

⚙️ Installation Options

install-method
Installation method: npm, pnpm, or source
openclaw-version
Version to install (latest or specific)
auto-update
Automatically update on charm upgrade
node-version
Node.js major version (minimum 22)

Multi-Unit Scaling

Deploy multiple units for horizontal scaling with automatic Gateway-Node architecture

📈 Horizontal Scaling Architecture

Step 1: Initial Deploy juju deploy openclaw --channel edge 🌐 Gateway openclaw/0* :18789 💬 📱 🎮 Step 2: Scale Up juju add-unit openclaw -n 2 +2 Node units Multi-Unit Architecture 🌐 Gateway ⭐ openclaw/0* (leader) :18789 ⚙️ Node openclaw/1 Connected ⚙️ Node openclaw/2 Connected 🔗 💬 📱 🎮 📝 approve-nodes juju run openclaw/leader approve-nodes ⚡ Distributed Compute Scale horizontally for capacity Gateway handles messaging & AI Nodes provide system access
🖥️

Distributed Access

Nodes provide system access across multiple machines for distributed command execution.

⚖️

Load Distribution

Nodes handle system.run commands across multiple machines. Parallel task execution.

📈

Dynamic Scaling

Add or remove units on-the-fly with juju add-unit. Zero downtime.

🔗

Auto Coordination

Nodes automatically discover and connect to Gateway through peer relations.