Building Custom AI Skills with InstructLab Taxonomy
Create domain-specific AI capabilities using InstructLab's taxonomy system—from writing skill definitions to generating synthetic training data and validating fine-tuned models.
OpenClaw sits between your AI models and your messaging platforms. A compromised gateway means:
OpenClaw takes security seriously with multiple layers of protection. Let’s configure them properly for Azure.
The gateway token is the first line of defense. It’s auto-generated during docker-setup.sh and stored in .env:
cd ~/openclaw
grep OPENCLAW_GATEWAY_TOKEN .env# Generate a new token
NEW_TOKEN=$(openssl rand -hex 32)
echo "New token: $NEW_TOKEN"
# Update .env
sed -i "s/OPENCLAW_GATEWAY_TOKEN=.*/OPENCLAW_GATEWAY_TOKEN=$NEW_TOKEN/" .env
# Restart
docker compose down
docker compose up -dOpenClaw requires browsers to pair with the gateway before accessing the Control UI. This creates a device identity tied to the browser’s secure context.
# List all paired and pending devices
docker compose run --rm openclaw-cli devices list
# Approve a pending device
docker compose run --rm openclaw-cli devices approve <requestId>
# Revoke a device (if supported)
docker compose run --rm openclaw-cli devices listIf you’re locked out and can’t pair (e.g., no HTTPS, no localhost):
# Generate a direct dashboard URL with token
docker compose run --rm openclaw-cli dashboard --no-openWarning: The following flags should only be used temporarily for debugging:
gateway.controlUi.allowInsecureAuth— allows token-only auth over HTTPgateway.controlUi.dangerouslyDisableDeviceAuth— disables device checks entirely
Azure Network Security Groups (NSGs) are your perimeter defense.
| Priority | Name | Port | Source | Action |
|---|---|---|---|---|
| 1000 | AllowSSH | 22 | Your IP | Allow |
| 1001 | AllowOpenClaw | 18789-18790 | Your IP | Allow |
| 65000 | DenyAll | * | * | Deny |
# Allow SSH from your IP only
az network nsg rule create \
--resource-group rg-openclaw \
--nsg-name vm-openclaw-01NSG \
--name AllowSSH \
--priority 1000 \
--destination-port-ranges 22 \
--source-address-prefixes "<YOUR_IP>" \
--protocol Tcp --access Allow
# Allow OpenClaw from your IP only (skip if using SSH tunnel)
az network nsg rule create \
--resource-group rg-openclaw \
--nsg-name vm-openclaw-01NSG \
--name AllowOpenClaw \
--priority 1001 \
--destination-port-ranges 18789 18790 \
--source-address-prefixes "<YOUR_IP>" \
--protocol Tcp --access AllowYou don’t need the OpenClaw NSG rule at all — just allow SSH:
OPENCLAW_GATEWAY_BIND=loopback # in .envWhen the gateway binds to non-loopback, OpenClaw enforces browser origin checks.
docker compose run --rm openclaw-cli config set \
gateway.controlUi.allowedOrigins \
'["https://openclaw.yourdomain.com"]'| Flag | Risk Level | What it does |
|---|---|---|
dangerouslyAllowHostHeaderOriginFallback | High | Trusts Host header for origin checks |
dangerouslyDisableDeviceAuth | Critical | Disables device identity checks entirely |
allowInsecureAuth | Medium | Allows token-only auth without device pairing |
For production deployments with remote access, HTTPS is the gold standard. Tailscale Serve is the easiest way to add HTTPS to OpenClaw:
curl -fsSL https://tailscale.com/install.sh | sh
sudo tailscale upsudo tailscale serve https / http://127.0.0.1:18789Now access the Control UI at:
https://<your-machine-name>.<your-tailnet>.ts.net/Benefits:
OpenClaw includes a security audit command that checks your configuration:
docker compose run --rm openclaw-cli security auditThis command checks for:
| Check | Severity | What it flags |
|---|---|---|
| Missing allowed origins | Critical | Non-loopback UI without origin allowlist |
| Host-header fallback enabled | Warning/Critical | DNS rebinding risk |
| Insecure auth enabled | Warning | Token-only auth without device pairing |
| Device auth disabled | Critical | No device identity checks |
| Missing gateway auth | Warning | No token/password on gateway |
| Loopback without auth | Info | Localhost-only but no token |
The audit will report findings with severity levels and remediation suggestions. Address all critical findings before going to production.
Before running OpenClaw in production on Azure:
.env file has restricted permissions (chmod 600 .env)loopback (SSH tunnel) or lan with explicit allowedOriginsdangerous* flags enabled in productionsecurity audit reports no critical findingsNow let’s look at common deployment issues: Troubleshooting OpenClaw Docker Deployments.
AI & Cloud Advisor with 18+ years experience. Author of 8 technical books, creator of Ansible Pilot. Speaker at KubeCon EU & Red Hat Summit 2026.
Create domain-specific AI capabilities using InstructLab's taxonomy system—from writing skill definitions to generating synthetic training data and validating fine-tuned models.
How to access the OpenClaw Control UI dashboard from an Azure VM — via SSH tunnel (secure) or public IP. Covers device pairing, dashboard authentication, and the browser-based management interface.
End-to-end guide to building a complete persistent memory system for your OpenClaw AI agent. Combine memory flush, hybrid search, file-backed notes, SQLite indexing, and session hooks into a cohesive knowledge architecture.