A Home Assistant custom integration that acts as a secure server-side proxy between the Arr Stack Card and your local media services.
Browsers block direct API calls from a web page to local network services (CORS policy). This integration solves that by routing all requests through Home Assistant's own API — keeping your API keys secure on the server side and requiring HA authentication for every call.
| Service | Role | Required |
|---|---|---|
| Radarr | Movie library management | ✅ Yes |
| Sonarr | TV show library management | ✅ Yes |
| Radarr 2 | Second Radarr instance (e.g. 4K) | Optional |
| Sonarr 2 | Second Sonarr instance (e.g. 4K) | Optional |
| qBittorrent | Torrent download client | Optional |
| Deluge | Torrent download client | Optional |
| rTorrent / ruTorrent | Torrent download client | Optional |
| SABnzbd | Usenet download client | Optional |
| NZBGet | Usenet download client | Optional |
| Overseerr / Jellyseerr | Media discovery & requests | Optional |
| Bazarr | Subtitle management | Optional |
| Plex | Stream monitoring & playback control | Optional |
| Jellyfin | Stream monitoring & playback control (via HA integration — no config needed here) | Optional |
| Emby | Stream monitoring & playback control | Optional |
| Kodi | Stream monitoring & playback control (via HA integration — no config needed here) | Optional |
| Tautulli | Watch history, statistics & account sharing detection | Optional |
| Jellystat | Watch history and statistics | Optional |
| Prowlarr | Indexer management and search statistics | Optional |
| Trakt | Personalised movie & show recommendations | Optional |
Note: Plex, Jellyfin, and Kodi also require their official Home Assistant integrations to be installed and connected — Plex, Jellyfin, Kodi. The card uses these HA integrations for live stream detection. Emby does not have an official HA integration — configure it directly in Arr Stack instead.
- Open HACS → Integrations
- Click the ⋮ menu (top right) → Custom repositories
- Add
https://github.com/martinargalas/arr-stack-integration— category Integration - Search for Arr Stack Integration and install
- Restart Home Assistant
- Go to Settings → Devices & Services → + Add Integration
- Search for Arr Stack and follow the setup wizard
- Copy the
custom_components/arr_stack/folder to your HA/config/custom_components/directory - Restart Home Assistant
- Add the integration via Settings → Devices & Services
⚠️ After any change to the integration settings, restart Home Assistant for changes to take effect.
Setup starts with two steps that are always shown, followed by steps for the services you select.
| Field | Default | Notes |
|---|---|---|
| Skip SSL certificate verification | Off | Enable if any of your services use a self-signed or untrusted certificate. Applies to all services at once. |
Choose which optional services you want to configure. Only the selected steps will appear. Radarr and Sonarr are always configured — they are required for the card to work.
| Toggle | Services configured |
|---|---|
| Torrent clients | qBittorrent, Deluge, rTorrent |
| Usenet clients | SABnzbd, NZBGet |
| 2nd instances | Radarr 2, Sonarr 2 |
| Bazarr | Bazarr |
| Discovery | Overseerr / Jellyseerr |
| Plex / Emby | Plex, Emby |
| Streaming stats | Tautulli, Jellystat |
| Prowlarr | Prowlarr |
| Trakt | Trakt |
| Field | Example |
|---|---|
| Radarr URL | http://192.168.1.10:7878 |
| Radarr API key | Find in Radarr → Settings → General |
| Sonarr URL | http://192.168.1.10:8989 |
| Sonarr API key | Find in Sonarr → Settings → General |
| Field | Example |
|---|---|
| qBittorrent URL | http://192.168.1.10:8080 |
| qBittorrent username | admin |
| qBittorrent password | •••• |
| Deluge URL | http://192.168.1.10:8112 |
| Deluge password | Your Deluge Web UI password |
| rTorrent URL | http://192.168.1.10:9080 — base URL of ruTorrent |
| rTorrent username | HTTP Basic auth username (if configured) |
| rTorrent password | HTTP Basic auth password |
Leave any field empty to skip that service individually.
| Field | Example |
|---|---|
| SABnzbd URL | http://192.168.1.10:8080 |
| SABnzbd API key | Find in SABnzbd → Config → General |
| NZBGet URL | http://192.168.1.10:6789 |
| NZBGet username | nzbget (default) |
| NZBGet password | Find in NZBGet → Settings → Security |
Leave any field empty to skip that service individually.
Configure a second Radarr and/or Sonarr instance — useful for HD + 4K setups.
| Field | Example |
|---|---|
| Radarr 2 URL | http://192.168.1.10:7879 |
| Radarr 2 API key | •••• |
| Sonarr 2 URL | http://192.168.1.10:8990 |
| Sonarr 2 API key | •••• |
| Field | Example |
|---|---|
| Bazarr URL | http://192.168.1.10:6767 |
| Bazarr API key | Find in Bazarr → Settings → General |
Trending, popular, and upcoming sections are always available without Overseerr. Adding it enables request approvals and family account support.
| Field | Notes |
|---|---|
| Overseerr / Jellyseerr URL | http://192.168.1.10:5055 |
| Overseerr / Jellyseerr API key | Find in Settings → General |
| Family account email | Optional — non-admin account for household members |
| Family account password | Optional |
Plex — authenticate via the Plex login link shown during setup. This enables stream monitoring, active user display, and playback control.
| Field | Notes |
|---|---|
| Plex Server URL | Leave empty to auto-detect. Fill in if HA runs on a different machine or VLAN than Plex — e.g. http://192.168.1.10:32400. |
Note: Plex Now Playing in the card also requires the official Plex integration installed in HA.
Emby — enter your Emby server URL and API key to enable stream monitoring and remote stop with a message.
| Field | Notes |
|---|---|
| Emby URL | http://192.168.1.10:8096 |
| Emby API key | Find in Emby → Dashboard → API Keys → New API Key |
Jellyfin and Kodi do not require any configuration here. Install the official Jellyfin or Kodi HA integration and the card picks them up automatically.
| Field | Notes |
|---|---|
| Tautulli URL | http://192.168.1.10:8181 |
| Tautulli API key | Find in Tautulli → Settings → Web Interface |
| Jellystat URL | http://192.168.1.10:4000 |
| Jellystat API key | Find in Jellystat → Settings |
Tautulli also powers account sharing detection — alerts when the same user streams from multiple IPs simultaneously.
| Field | Example |
|---|---|
| Prowlarr URL | http://192.168.1.10:9696 |
| Prowlarr API key | Find in Prowlarr → Settings → General |
Enables personalised movie and show recommendations in the card based on your Trakt watch history.
Scrobbling required for personalised results. Trakt recommendations are based on your watch history — titles you've already seen are filtered out and the suggestions are tailored to your taste. For this to work, your plays need to be synced to Trakt automatically. If you use Plex, PlexTraktSync is a good option — run it as a Docker container in
watchmode and it will mark titles as watched on Trakt in real time as you finish them.
- Go to trakt.tv/oauth/applications/new and create a new application (redirect URI:
urn:ietf:wg:oauth:2.0:oob) - Copy the Client ID and Client Secret into the setup step
- Visit the shown URL on trakt.tv, enter the code, then click Submit
If you configure a family account (non-admin Overseerr/Jellyseerr user), the card uses that account for media requests made by non-admin HA users. This lets household members request media without admin privileges.
This integration does not expose any Home Assistant sensors, entities, or devices. It acts purely as a proxy — all data is fetched on demand by the card.
Change any setting at any time without reinstalling:
Settings → Devices & Services → Arr Stack → ⋮ → Reconfigure
Your existing settings are pre-filled. Clearing a URL disables that service in the card.
- Arr Stack Card — the Lovelace card that uses this integration
