Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

How-to guide: Secure a self-hosted Agent Canvas instance for incoming automation webhooks

Open
#669 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
68/100
Issue type
Documentation
Clarity
Clearly specified
Activity status
Quiet
Tech stack
github, nginx

Research direction

Start by reading backend-setup/vm.md and docs/SELF_HOSTING.md, then compare managing-automations.md and prebuilt-automations.md for the existing webhook terminology. Document the self-hosted deployment shape, authentication and exposure options, signature verification, and a Linear example; the guide is done when these steps are clear without relying on the Slack thread.

Written by the indexing model from the issue text.

Description

documentation enhancement

Problem

There is no how-to guide for the common self-hosting question: how do I secure a self-hosted Agent Canvas instance (auth/login) while making it reachable from the outside so that external webhook events (e.g. Linear, Slack, GitHub) can hit the automation backend?

This came up in a Slack thread where a self-hoster needed Linear webhook events to reach their automation server. Participants pieced together a working answer from scratch (exposing only the automation port via ngrok, LOCAL_BACKEND_API_KEY, nginx basic auth, Cloudflare worker + tunnel, Tailscale), but none of that knowledge is captured in the docs today.

What exists today (partial coverage)

  • backend-setup/vm.md covers securing the VM, LOCAL_BACKEND_API_KEY + --public mode, and access methods (SSH tunnel, ngrok, reverse proxy + TLS). It is framed around reaching the UI, not around receiving incoming webhooks on the automation endpoint.
  • docs/SELF_HOSTING.md (in-repo) shows the architecture diagram with the automation backend on :18001 routed at /api/automation/*, but does not explain how to expose that path for external services.
  • managing-automations.md / prebuilt-automations.md mention that automations can have webhook triggers, but do not explain how to securely expose the webhook-receiving endpoint on a self-hosted instance.
  • Event-based automations docs are Cloud-focused (GitHub App event routing) and do not cover self-hosted webhook ingestion.

What's missing

A dedicated how-to guide that walks through securing a self-hosted instance and exposing it for incoming automation webhooks, including:

  1. The deployment shape: agent server + automation backend behind the ingress proxy, with /api/automation/* as the only externally reachable path.
  2. Authenticating webhook calls: how LOCAL_BACKEND_API_KEY / X-Session-API-Key applies to the automation endpoint, and how third-party webhook providers (Linear, Slack, GitHub) can be configured to send the key (header injection via a proxy, etc.).
  3. Options for safely reaching the automation endpoint from the public internet without exposing the full UI/agent server:
    • ngrok scoped to the automation ingress port
    • Cloudflare Tunnel / Worker fronting only /api/automation/*
    • Reverse proxy (nginx) with path-scoped exposure + basic auth / IP allow-listing
    • Tailscale / VPN for a zero-public-exposure option
  4. Webhook signature verification (the automation backend already verifies Linear/Slack HMAC signatures) so readers understand the layered security model.
  5. A worked example for at least one provider (Linear is the motivating case).

Context

  • Slack thread: a self-hoster running Agent Canvas locally needed Linear webhook events to reach the automation server, and the recommended pattern (expose only the automation port, rely on LOCAL_BACKEND_API_KEY) had to be reverse-engineered from the thread.
  • This is relevant to the Linear epoch "Barrier-free AI development: securely accessing external context" — securely exposing an automation instance for external context is a prerequisite for that vision.

Proposed title

"How-to: Secure a self-hosted Agent Canvas instance for incoming automation webhooks"


This issue was created by an AI agent (OpenHands) on behalf of a team member, summarizing a Slack thread discussion.

Dominant language
MDX
Stars
12
Forks
55
Avg merge
1d 11h
Merged PRs (30d)
36

Getting set up

We have not checked this project's setup files yet. Start from its README, and see our first-contribution guide for the general steps.

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from OpenHands/docs

All issues in OpenHands/docs

Similar issues

More Backend & API Design issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.