Integration offers#
An installed app can make an offer on another page of the web UI: a note on how the two work together, and in some cases a change that connects them. With AdGuard Home installed, for example, the DNS page offers "Point the resolver at AdGuard Home", with a button that adds AdGuard Home's address to the DNS servers the router forwards queries to.
An offer never changes anything by itself. Its change goes to the pending changes, and takes effect when it is applied with Apply changes in the bar at the bottom of the page.
The card#
An offer appears on the page it is for, as a card with:
- the offer's title, followed by the app and its address, such as "from AdGuard Home at 10.99.0.10";
- the offer's text;
- for an offer with a change, Add this change, which adds it to the pending changes. It needs the operator role; a viewer sees it disabled, with "Changing settings needs the operator role". The notice says "Change saved — It takes effect when you apply pending changes.";
- for an offer with a change, Show what this changes, which lists the change as it will read in the pending changes. In Advanced mode it reads Show the 1 command, and shows the command.
A stopped app makes no offers. The offers on a page are read again every 30 seconds while it is open.
The Integrations section of the install panel, and the Integrations panel on an app's page, list the offers an app makes and the pages they appear on.
Values from this router#
The catalogue names no address, network or domain of its own; a test refuses one. An offer's change takes those values from the router it appears on:
| Value | Taken from |
|---|---|
| The app's address | The app's address on the app network. |
| The DHCP scope and subnet | The first DHCP scope, by name, that has a subnet, and its first subnet. |
| The domain | The router's Domain name (System → Settings), or else its first authoritative DNS zone. |
When the router lacks a value, the offer keeps its text and drops its change, and adds a sentence saying why, such as "This change is not offered because the router has no DHCP scope." An app on the router's own network has no address of its own, so an offer that needs one reads "This change is not offered because the app has no address."
The offers in the catalogue#
The catalogue declares 22 offers. Six of them carry a change.
| Page | App | Offer | Change |
|---|---|---|---|
| DNS | AdGuard Home | Point the resolver at AdGuard Home | Adds the app as a DNS server the router forwards to |
| DNS | Pi-hole | Point the resolver at Pi-hole | Adds the app as a DNS server the router forwards to |
| DNS | Unbound | Resolve recursively instead of forwarding | Adds the app as a DNS server the router forwards to |
| DNS | Blocky | Filter through Blocky | Adds the app as a DNS server the router forwards to |
| DNS | dnsmasq | Hand wildcard zones to dnsmasq | Forwards the router's domain to the app |
| DHCP | netboot.xyz | Point PXE clients here | Sets the TFTP server of the first DHCP subnet to the app; the boot file name is set on the subnet |
| DHCP | WatchYourLAN | Turn discoveries into reservations | — |
| Firewall | CrowdSec | CrowdSec detects, it does not block | — |
| NAT | Cloudflared | An alternative to a port forward | — |
| NAT | Nginx Proxy Manager | One forward instead of many | — |
| Certificates | Nginx Proxy Manager | Its certificates stay in the proxy | — |
| QoS | Speedtest Tracker | Set shaping from measured speed | — |
| Sessions | ntopng | Traffic history for each device | — |
| Static routes | Tailscale | Tailscale routes are approved in Tailscale | — |
| WireGuard | WG-Easy | This is a separate tunnel | — |
| System | Prometheus | Collect Wheelhouse’s own metrics | — |
| Apps, Installed tab | Portainer | Containers made in Portainer are not managed here | — |
| Companions | dnsmasq | Wildcard DNS, per-device DHCP options and PXE | — |
The entries for the three built-in features carry the other four, none with a change: WireGuard's "Allow tunnel traffic through the firewall", Suricata IDS's "The IDS does not block traffic" and UPnP's "UPnP adds firewall rules too" for the Firewall page, and UPnP's "Rules 4000-4199 belong to UPnP" for the NAT page. A built-in feature makes its offers while it is installed, that is while its page is in the menu, and its card names the feature with no address: "from UPnP / NAT-PMP".
With AdGuard Home at 10.99.0.10, Add this change on its DNS offer adds one change: 10.99.0.10 as a DNS server the router forwards queries to.
What offers do not do#
- They never apply a change themselves.
- They cannot be edited on the router: their text and changes come from the catalogue.
- They are not notifications: an offer is shown only on its page, and nothing is sent anywhere.
For automation#
GET /api/apps/hints/{page} answers the offers for one page, with their changes filled
in from this router: for example GET /api/apps/hints/dns. The pages the catalogue uses
are dns, dhcp, firewall, nat, certificates, qos, sessions, routes,
wireguard, system, apps and daemons (the Companions page).
See also#
- Hint placeholders — the values an offer's change can use, in detail.
- Apps — the install panel's Integrations section.
- One app — the Integrations panel.
- DNS, DHCP, Firewall, NAT, QoS and Companions — pages with offers.