{ "title": "Example: http://[fdaa:x:x:x:x::x]:3000", "content": "bash theme={null}\nfly ssh console -a my-openclaw\njson theme={null}\n{\n \"plugins\": {\n \"entries\": {\n \"voice-call\": {\n \"enabled\": true,\n \"config\": {\n \"provider\": \"twilio\",\n \"tunnel\": { \"provider\": \"ngrok\" },\n \"webhookSecurity\": {\n \"allowedHosts\": [\"example.ngrok.app\"]\n }\n }\n }\n }\n }\n}\n```\n\nThe ngrok tunnel runs inside the container and provides a public webhook URL without exposing the Fly app itself. Set `webhookSecurity.allowedHosts` to the public tunnel hostname so forwarded host headers are accepted.\n\n### Security benefits\n\n| Aspect | Public | Private |\n| ----------------- | ------------ | ---------- |\n| Internet scanners | Discoverable | Hidden |\n| Direct attacks | Possible | Blocked |\n| Control UI access | Browser | Proxy/VPN |\n| Webhook delivery | Direct | Via tunnel |\n\n* Fly.io uses **x86 architecture** (not ARM)\n* The Dockerfile is compatible with both architectures\n* For WhatsApp/Telegram onboarding, use `fly ssh console`\n* Persistent data lives on the volume at `/data`\n* Signal requires Java + signal-cli; use a custom image and keep memory at 2GB+.\n\nWith the recommended config (`shared-cpu-2x`, 2GB RAM):\n\n* \\~\\$10-15/month depending on usage\n* Free tier includes some allowance\n\nSee [Fly.io pricing](https://fly.io/docs/about/pricing/) for details.", "code_samples": [ { "code": "**Option 3: SSH only**", "language": "unknown" }, { "code": "### Webhooks with private deployment\n\nIf you need webhook callbacks (Twilio, Telnyx, etc.) without public exposure:\n\n1. **ngrok tunnel** - Run ngrok inside the container or as a sidecar\n2. **Tailscale Funnel** - Expose specific paths via Tailscale\n3. **Outbound-only** - Some providers (Twilio) work fine for outbound calls without webhooks\n\nExample voice-call config with ngrok:", "language": "unknown" } ], "headings": [ { "level": "h3", "text": "Webhooks with private deployment", "id": "webhooks-with-private-deployment" }, { "level": "h3", "text": "Security benefits", "id": "security-benefits" }, { "level": "h2", "text": "Notes", "id": "notes" }, { "level": "h2", "text": "Cost", "id": "cost" } ], "url": "llms-txt#example:-http://[fdaa:x:x:x:x::x]:3000", "links": [] }