Skip to content

Adding Apps

Digitalcheffe edited this page Apr 19, 2026 · 1 revision

Adding Apps

An app in NORA is any external service that reports webhooks, polls an API, or otherwise feeds events into the system — Sonarr, Radarr, Gotify, whatever. Each app is bound to a profile (a YAML template) that tells NORA how to parse its data.


Apps list page

  • Stats strip at the top: total apps, healthy / warn / down counts, recent events summary, last-event timestamp.
  • App cards: icon (from the profile or a monogram fallback), name, profile badge, date added, status dot.
  • Settings gear on each card opens the App Settings slide-panel.
  • Add app button (topbar or top-right) opens the 3-step Add App modal.

Adding an app (3-step modal)

Step 1 — Setup

Name the app and pick a profile template. Profiles are grouped by category (Media, Automation, Infrastructure, etc.) in the dropdown.

Step 2 — Config

Field Notes
Base URL Where the app lives (what humans click through to). Used for the Launch button and for URL checks.
API URL Where API polling goes if different from the base URL. Optional — leave blank to use base URL.
API key Used by API polling. Stored encrypted at rest.
Rate limit Events per minute. 0 = unlimited.

If the base URL is HTTPS, NORA offers to auto-create a URL check and SSL check as pills on this step — click to accept.

Step 3 — Done

Shows the generated webhook URL with a copy button. Paste it into the source app's webhook configuration (the profile's setup instructions tell you where). From here you can add another app or jump to the one you just created.


Editing an app (Settings slide-panel)

The panel covers:

  • Name and profile. Changing profile re-pulls auth defaults if you haven't set custom ones.
  • Base URL and API URL. The API URL overrides the base URL for API polling only — useful when the API lives on a different hostname.
  • API Polling Auth section:
    • Auth type: None, API Key Header, API Key Query, Bearer, Basic
    • Header or query parameter name (shown when the auth type uses one)
    • API key field with show/hide toggle. For Basic, format as user:pass.
  • Rate limit (events per minute).
  • Webhook URL (read-only) with a copy button.
  • Regenerate Token — useful if a token leaks. After regenerating, the old URL stops working immediately and you must update the source app.
  • Delete App — in the danger zone, with confirmation.

App Detail page

The app detail page is where you see live data for one app.

  • Header — name, icon, profile, capability badge (Webhook, API, Webhook + API, or Monitor), rate limit, base URL, status. Buttons: Launch (opens base URL in a new tab if set), Discover Now, Settings.
  • Live Metrics — per-category and per-widget tiles from your profile's digest configuration. Only tiles active in the digest registry render here.
  • Events summary — 24 hour / week / month tiles by severity, clickable through to filtered Events.
  • Monitor Checks — every check linked to this app, with status, type icon, and target. Add check opens the check form with this app pre-selected.
  • Infrastructure chain (right column on desktop) — vertical visualization of the infra components this app runs on, pulled from the Relationships page links. Only renders if relationships exist.

What "Discover Now" actually does

Clicking Discover Now on an app detail page runs all three of these in parallel:

  1. API polling for this app (if the profile has an api_polling block and the app has an API key configured).
  2. Infrastructure scans on every infra component in this app's chain.
  3. Every monitor check linked to this app.

Then the page refreshes its metrics and check statuses. Expect a few seconds on busy instances.


Capability inference

NORA computes a profile's capability from the content of its YAML:

YAML content Capability
webhook mappings and api_polling block Webhook + API
webhook mappings only Webhook
api_polling block only API
Neither (just meta:) Monitor — attach purely for name + icon + monitor checks

The capability badge on the App Detail header and in the library reflects this.


Webhook endpoint

Every app gets a unique token-authenticated ingest URL:

POST http://your-nora-host:8081/api/v1/ingest/{token}

The token is in the webhook URL shown in the Settings slide-panel. No additional authentication on the ingest endpoint — the token is the credential. Use network-level controls (firewall, internal network) to limit who can hit the endpoint if needed.


If your app isn't in the library

Two options:

  • Attach it to the Generic Webhook profile — you get events in the feed but no mapping, severity, or cards.
  • Author a custom profile. See Custom App Profiles.

See also

Clone this wiki locally