Using Domain Proxy to Relay requests on Noticeable
This article covers how to proxy Noticeable public endpoints used by Noticeable Newspages and Widgets. Proxying is not recommended in all cases. This is purely an option requested by some organizations to meet their specialized security needs.
Introduction
A proxy service relays requests between a client and another service, acting as an intermediary step. Building a proxy lets you proxy requests to Noticeable endpoints through your own domain. For example, you can send requests on client browsers to noticeable.your-domain.com/widgets-data instead of directly to data.widgets.noticeable.io. A proxy service relays the requests to the Noticeable platform.
Sending data through a self-owned proxy service gives you better control of the data you collect and send to the Noticeable platform. Using a proxy service can have these benefits:
- Self-owned audit logging of data.
- Easier debugging, filtering, and blocking of events.
- Anonymizing end-users. For example, remove originating IP address, location, user ID, and more.
Building a proxy solution
You should notice that Noticeable makes use of different public endpoints. As a consequence, you may decide to proxy one or more:
Endpoint | Description | Requirements |
|---|---|---|
Used by Noticeable to manage forms. | Must support | |
Used by Noticeable to fetch data required for rendering widgets (e.g., publications, project names, widget preferences). | Must support | |
Used by Noticeable Newspages and Widgets to report comments, metrics and reactions. | Must support | |
Used to load widgets static assets (HTML, CSS, JS, etc.) from a CDN. | Must support |
Setting up a Caddy server
The example in this guide uses Caddy to build a proxy server. Caddy is an open-source solution to building a proxy. Here is a Caddyfile configuration sample to setup a proxy to Noticeable endpoints in seconds, including HTTPS support:
(proxy) {
handle_path {args.0}/* {
reverse_proxy {args.1} {
header_up Host {http.reverse_proxy.upstream.hostport}
header_down Access-Control-Allow-Origin *
}
}
}
noticeable.your-domain.com {
@options method OPTIONS
handle @options {
header Access-Control-Allow-Origin *
header Access-Control-Allow-Methods *
header Access-Control-Allow-Headers *
respond 204
}
# Routes
import proxy /assets https://widgets.noticeable.io
import proxy /forms https://forms.noticeable.io
import proxy /pipeline https://pipeline.noticeable.io
import proxy /widgets-data https://data.widgets.noticeable.ipregistry.co
}
This Caddy configuration defines a reusable (proxy) snippet that proxies any specified path prefix to a corresponding backend while preserving the original Host header and adding the Access-Control-Allow-Origin header for CORS. In the main site block for noticeable.your-domain.com, all HTTP requests using the OPTIONS method are intercepted and answered directly with a 204 response and permissive CORS headers to handle browser preflight checks.
The routes /assets, /forms, /pipeline, and /widgets-data, which are relative to https://noticeable.your-domain.com, are then mapped to their respective backend services. For example, a request to https://noticeable.your-domain.com/forms/... is proxied to https://forms.noticeable.io/..., with the path prefix automatically stripped during forwarding.
Available services on major cloud providers
Most major cloud providers have their own services for easy development and deployment of scalable APIs that you can use to create a proxy. You can also use API services to set up outbound traffic to Noticeable. If you use a cloud provider, refer to their documentation to set up a proxy service and for their quickstart guides:
- Amazon Web Services: API Gateway
- Microsoft Azure: API Management
- Google Cloud: API Gateway
Configuring Noticeable to work with alternate endpoints
Newspages
- Open the Noticeable dashboard and select a project.
- Click on Newspage in the left navigation.
- In the page that appears, scroll to the bottom of the page and select "Advanced options".
- You should now see a field to configure the pipeline endpoint used by Noticeable on Newspages. Enter your proxy URL and press enter:

Widgets
Before calling noticeable.render(...) to render a Noticeable widget, make sure to define global preferences as follows with the Noticeable SDK:
noticeable.set('preferences', {
endpoints: {
forms: 'https://noticeable.your-domain.com/forms'
pipeline: 'https://noticeable.your-domain.com/pipeline',
widgetsAssets: 'https://noticeable.your-domain.com/assets',
widgetsData: 'https://noticeable.your-domain.com/widgets-data'
}
});
noticeable.render(...)
Validation and deployment
Testing is as simple as loading your Newspage or Widget(s) on your site and seeing it function. Be careful to test feedback and reactions reporting if such features are enabled on your project.
Updated on: 10/24/2025
Thank you!
