Overview
webhookd and nginx active, listeners
The webhookd and nginx services reporting active under systemd, the installed webhookd version, and the loopback 127.0.0.1:8080 backend plus the nginx ports 80 and 443 listening.
webhookd and nginx active, listeners
Mandatory HTTP Basic auth enforced
Authenticated hook streams its output
No baked secret, per-instance credential
This is a repackaged open source software product wherein additional charges apply for cloudimg support services.
webhookd is a lightweight HTTP server that transforms any executable shell script into a callable HTTP webhook endpoint. This image delivers webhookd 1.22.0 fully installed and running behind an nginx TLS terminator, a production ready webhook server answering HTTPS requests within minutes of launch, with no compilation, no manual configuration, and no security hardening required.
Why choose this image over a self-managed deployment: deploying webhookd from source means installing Go, compiling the binary, configuring systemd, generating TLS certificates, setting up a reverse proxy, and hardening credentials, typically hours of work. This image eliminates that. You launch the instance, retrieve the auto-generated credentials, and invoke hooks immediately. Unlike a serverless function, webhookd runs continuously with no cold starts and no per-invocation fees, so you can run unlimited webhook calls on a single instance. Hook output streams back to the caller line by line as chunked transfer encoding or Server-Sent Events, rather than waiting for the whole execution to finish.
Secure by default, not secure by effort: unlike a bare deployment or an image that ships with a default password, this image generates unique credentials on every launch. HTTP Basic authentication is mandatory and no unauthenticated request can ever execute a hook, every such request is refused with HTTP 401. A unique username and password are generated on first boot, hashed with bcrypt, and stored only in a root owned file, and a per-instance self-signed TLS certificate is generated for nginx, so nothing is baked into the image. webhookd binds exclusively to the loopback interface while nginx on port 443 faces the network. The operating system ships fully patched with unattended security updates enabled.
How it works: nginx terminates HTTPS on port 443 with the per-instance certificate and reverse proxies to webhookd on the loopback interface. Response buffering is disabled so streaming and Server-Sent Events output reaches the client the instant the script produces it. An unauthenticated health probe and an HTTP to HTTPS redirect are served on port 80, and systemd manages the service for automatic restarts and clean logging. Request query parameters and HTTP headers are passed to your script as environment variables, so a hook can react to whatever triggered it.
Common uses include triggering deployments from a CI/CD pipeline such as GitHub, GitLab or Jenkins, running infrastructure tasks from a chatbot command, kicking off scheduled maintenance such as backups or certificate renewal, and restarting or scaling services from any system that can make an HTTP call. For example, a monitoring tool can fire a webhook when disk usage crosses a threshold, and the hook script snapshots a database, uploads the backup, and streams a confirmation back to the caller. To add your own hook, drop an executable script into the hooks directory and call it by name over HTTPS; to change what runs, edit the script, with no redeployment and no recompilation. The current release available is webhookd 1.22.0.
This is a repackaged open source software product with additional charges for cloudimg support services. webhookd is distributed under the MIT license. cloudimg is not affiliated with or endorsed by the webhookd project or Nicolas Carlier. All product and company names are trademarks or registered trademarks of their respective holders. Use of them does not imply any affiliation with or endorsement by them.
Highlights
- Instant script-to-endpoint conversion with real-time output streaming: drop any executable script into the hooks directory and it becomes a callable HTTPS endpoint immediately, with no compilation, no framework, and no redeployment. Output streams back to the caller line by line as chunked transfer encoding or Server-Sent Events, unlike a serverless store-and-forward model where you wait for complete execution before seeing results.
- Secure by default with unique per-instance credentials, not default passwords: every launch generates a fresh Basic-auth username, a bcrypt-hashed password, and a TLS certificate. No secrets are baked into the image. HTTP 401 is enforced on every request before any hook executes, eliminating the class of vulnerabilities common in images that ship with shared or documented default credentials.
- Production ready in minutes instead of hours of manual hardening: this image replaces the typical multi-step process of compiling webhookd, configuring systemd, generating certificates, setting up nginx, and enabling security updates. The entire stack launches preconfigured with HTTPS termination, streaming proxy, automatic restarts, unattended OS patching, and 24/7 cloudimg support included.
Details
Introducing multi-product solutions
You can now purchase comprehensive solutions tailored to use cases and industries.
Features and programs
Financing for AWS Marketplace purchases
Pricing
Free trial
- ...
Dimension | Description | Cost/hour |
|---|---|---|
m5.large Recommended | m5.large | $0.08 |
t3.micro | t3.micro instance type | $0.04 |
t2.micro | t2.micro instance type | $0.04 |
r5ad.xlarge | r5ad.xlarge instance type | $0.12 |
m5ad.16xlarge | m5ad.16xlarge instance type | $0.24 |
r5n.16xlarge | r5n.16xlarge instance type | $0.24 |
r7i.2xlarge | r7i.2xlarge instance type | $0.24 |
t2.large | t2.large instance type | $0.08 |
m8i.8xlarge | m8i.8xlarge instance type | $0.24 |
m5dn.metal | m5dn.metal instance type | $0.24 |
Vendor refund policy
Refunds available on request.
How can we make this page better?
Legal
Vendor terms and conditions
Content disclaimer
Delivery details
64-bit (x86) Amazon Machine Image (AMI)
Amazon Machine Image (AMI)
An AMI is a virtual image that provides the information required to launch an instance. Amazon EC2 (Elastic Compute Cloud) instances are virtual servers on which you can run your applications and workloads, offering varying combinations of CPU, memory, storage, and networking resources. You can launch as many instances from as many different AMIs as you need.
Version release notes
Initial release of webhookd 1.22.0 as a ready-to-use webhook server that turns shell scripts into streaming HTTP endpoints, with the HTTP Basic auth credential and TLS certificate generated on first boot and an example hook ready to call.
Additional details
Usage instructions
Connect via SSH on port 22 as the default login user for your operating system variant (for the Ubuntu 24.04 variant the user is ubuntu). webhookd starts automatically on first boot behind an nginx TLS terminator; the security group opens ports 22 (SSH), 80 (health probe and HTTP-to-HTTPS redirect) and 443 (HTTPS API). Retrieve the per-instance endpoint and credentials with: sudo cat /root/webhookd-credentials.txt. The image uses a per-instance self-signed certificate, so test with curl -k. Call the bundled example hook, which streams its output line by line: an unauthenticated request is refused with HTTP 401 (curl -k -o /dev/null -sS -w '%{http_code}\n' https://<instance-public-ip>/echo), while an authenticated request runs the hook and streams the result (curl -k -u <user>:<pass> https://<instance-public-ip>/echo). Add your own hook by dropping an executable script into /opt/webhookd/scripts and calling it by name, for example /opt/webhookd/scripts/deploy.sh becomes https://<instance-public-ip>/deploy. Rotate the password with sudo htpasswd -B /etc/webhookd/htpasswd cloudimg then sudo systemctl restart webhookd. The service runs under systemd: systemctl status webhookd.
Resources
Vendor resources
Support
Vendor support
cloudimg provides 24/7 technical support for this product by email and live chat. Our engineers help with deployment, configuration, updates, performance tuning and troubleshooting; critical issues receive a one hour average response. Contact support@cloudimg.co.uk .
AWS infrastructure support
AWS Support is a one-on-one, fast-response support channel that is staffed 24x7x365 with experienced and technical support engineers. The service helps customers of all sizes and technical abilities to successfully utilize the products and features provided by Amazon Web Services.