thankful-shampoo-56362
07/25/2026, 1:36 PMstraight-dog-12443
07/25/2026, 1:50 PMthankful-shampoo-56362
07/25/2026, 2:11 PMcalm-artist-7206
07/25/2026, 2:16 PMcalm-artist-7206
07/25/2026, 2:19 PMcalm-artist-7206
07/25/2026, 2:21 PMcalm-artist-7206
07/25/2026, 2:24 PMcalm-artist-7206
07/25/2026, 2:24 PMstraight-dog-12443
07/25/2026, 3:29 PMthankful-shampoo-56362
07/25/2026, 6:57 PMthankful-shampoo-56362
07/25/2026, 6:57 PMthankful-shampoo-56362
07/25/2026, 6:58 PMwooden-umbrella-84098
07/27/2026, 1:33 PMwooden-umbrella-84098
07/27/2026, 1:34 PMLOCAL_BACKEND_API_KEY=yourpassword agent-canvas --public that's also secure--the frontend will ask you for yourpassword before you can connectwooden-umbrella-84098
07/27/2026, 1:34 PMlimited-student-10747
07/29/2026, 11:06 AMlimited-student-10747
07/29/2026, 11:23 AMcalm-artist-7206
07/29/2026, 12:41 PM@openhands, right?calm-artist-7206
07/29/2026, 12:42 PMcalm-artist-7206
07/29/2026, 12:43 PMlimited-student-10747
07/29/2026, 12:45 PMmodern-fireman-99755
07/29/2026, 12:52 PMI’m not on the permissions list?yes, you were not because you are not using an openhands.dev mail for your slack user. I updated that. but I'm not sure this will solve the problem in this specific case, because we have a mentions inside a thread. I'm double-checking if we can improve the polling mechanism
limited-student-10747
07/29/2026, 1:01 PMcalm-artist-7206
07/29/2026, 1:01 PMcalm-artist-7206
07/29/2026, 1:02 PMmodern-fireman-99755
07/29/2026, 1:03 PM🤔 that reminds me, if it’s a Slack app, maybe we can think of making it per event at some point, we shouldn’t need pollingTo do that we should expose an end-point on our side, right?
calm-artist-7206
07/29/2026, 1:03 PMcalm-artist-7206
07/29/2026, 1:04 PMmodern-fireman-99755
07/29/2026, 1:06 PMcalm-artist-7206
07/29/2026, 1:06 PMlimited-student-10747
07/29/2026, 1:14 PMmodern-fireman-99755
07/30/2026, 7:48 AMfresh-machine-37269
07/30/2026, 7:49 AMfresh-machine-37269
07/30/2026, 8:01 AMbackend-setup/vm.md covers securing the VM, LOCAL_BACKEND_API_KEY + --public mode, and reaching the UI via SSH tunnel / ngrok / reverse proxy + TLS â but it's framed around UI access, not incoming webhooks.
⢠The in-repo docs/SELF_HOSTING.md shows the architecture (automation backend on :18001, routed at /api/automation/* behind the ingress proxy) but never explains how to expose that path for external services.
⢠managing-automations.md / prebuilt-automations.md mention webhook triggers exist, but don't cover how to securely expose the webhook endpoint on a self-hosted instance.
⢠Event-based automations docs are Cloud-focused (GitHub App event routing) â no self-hosted webhook-ingestion guide.
The gap
There's no how-to guide for the exact question in this thread: "secure a self-hosted Agent Canvas + make it reachable from outside so webhook events (Linear/Slack/GitHub) can hit the automation server." The recommended pattern from this thread â expose only /api/automation/* (or just the automation port), rely on LOCAL_BACKEND_API_KEY + the backend's built-in HMAC signature verification, optionally front it with nginx basic auth / Cloudflare / Tailscale â isn't captured anywhere.
Docs issue created
I opened https://github.com/OpenHands/docs/issues/669 requesting a dedicated how-to guide covering: the deployment shape, authenticating webhook calls, safe exposure options (ngrok scoped to the automation endpoint, Cloudflare Tunnel/Worker, nginx path-scoped + basic auth, Tailscale), signature verification, and a worked Linear example.
Linear parent (needs a hand)
I couldn't set the sub-issue link on the Linear epoch "Barrier-free AI development: securely accessing external context" â I don't have Linear API credentials in this environment, so I can't mark the ingested GitHub issue as a sub-issue of the epoch. Once Linear ingests issue #669 via the GitHub integration, someone with Linear access will need to set its parent to that epoch. (Happy to do it if a Linear API key is made available.)
This summary was generated by an AI agent (OpenHands) on behalf of @limited-student-10747.fresh-machine-37269
07/30/2026, 8:01 AM/api/automation/*) for external services like Linear/Slack/GitHub. The thread's recommended pattern (expose only the automation port, rely on LOCAL_BACKEND_API_KEY + HMAC signature verification) isn't documented anywhere.
Note: I could not set the Linear parent relationship on the epoch "Barrier-free AI development: securely accessing external context" because no Linear API credentials are available in this environment. This is flagged in the Slack comment â once Linear ingests issue #669 via the GitHub integration, someone with Linear access needs to set its parent to that epoch (or provide me a Linear API key and I'll do it).