YAHLP

YAHLP

Docker app from auskento's Repository

Overview

YAHLP - Yet Another HomeLab Portal - Complete Master Template

Unified dashboard and reverse proxy for 19 homelab services: USENET (SABnzbd, NZBget, NZBHydra), TORRENTS (Transmission, qBittorrent, Deluge), SEARCH (Prowlarr, Jackett, Sonarr, Radarr, Lidarr, Whisparr), UTILITY (Seerr, Bazarr, Tautulli, Maintainerr), MEDIA (Jellyfin, Plex, Emby).

Features:

  • Automatic HTTPS via Let's Encrypt (public mode) or HTTP (private mode)
  • 5 responsive layouts: Classic, Modern, Sleek, Minimal, Mobile
  • Flexible authentication: Basic Auth, Entra ID, Google OAuth, or none
  • Real-time service health monitoring
  • Customizable service ordering and theming

For simpler deployments, use specialized templates:

  • yahlp-private-none.xml (Private mode, HTTP, no Auth)
  • yahlp-public-basic.xml (Public mode, HTTPS, Basic Auth)
  • yahlp-public-google.xml (Public mode, HTTPS, Google OAuth)
  • yahlp-public-entra.xml (Public mode, HTTPS, Entra ID OAuth)

Documentation: https://github.com/auskento/YAHLP/docs

Media gallery

1 / 3

Install YAHLP on Unraid in a few clicks.

Find YAHLP in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for YAHLP Review the template variables and paths Click Install

Requirements

This app runs best on a dedicated IP on your LAN - not forwarding other ports to host.
Your own domain name with DNS control for Lets Encrypt certificate generation
Settings here are saved to yahlp.json5 on first run and are then overrides - if they exist, they take precedence over the config file

Categories

Related apps

Explore more like this

Explore all

Details

Repository
ghcr.io/auskento/yahlp
Last Updated2026-07-20
First Seen2026-07-20

Runtime arguments

Web UI
https://[IP]:[PORT:443]/
Network
bridge
Shell
bash
Privileged
false

Template configuration

HTTPPorttcp

HTTP

Target
80
Default
80
Value
80
HTTPSPorttcp

HTTPS

Target
443
Default
443
Value
443
Internal IP (Private)Variable

Server IP for private mode (e.g., 192.168.1.100)

Target
IP
Access ModeVariable

public=subdomain-based routing with OAuth support (HTTPS via Let's Encrypt); private=folder-based routing with basic auth (HTTP on internal network)

Target
ACCESS_MODE
Default
public|private
Value
public
Domain (Public)Variable

Your domain for public mode (e.g., yahlp.yourdomain.com)

Target
DOMAIN
Email (Public)Variable

Email for Let's Encrypt notifications (public mode only)

Target
EMAIL
Let's Encrypt Test ModeVariable

Let's Encrypt --dry-run mode (test without rate limits). WARNING: Certificates will NOT be issued. Set to false when ready for production.

Target
DASHBOARD_TEST
Default
true|false
Value
true
Dashboard NameVariable

Displayed in browser title and dashboard

Target
DASHBOARD_NAME
Default
YAHLP
Value
YAHLP
Dashboard LayoutVariable

Choose: classic, modern, sleek, minimal (If you have added custom templates you can add them here)

Target
DASHBOARD_STYLE
Default
modern
Value
modern
Accent ColorVariable

Hex color for dashboard UI accents and highlights for default templates (e.g., #00A99D, #FF5733). Leave blank for default theme color

Target
DASHBOARD_COLOR
Dashboard LandingVariable

Set the default landing page when accessing dashboard (e.g., sonarr, radarr, radarr/upcoming, seerr). Leave blank to show service grid

Target
DASHBOARD_LANDING
Service Display OrderVariable

SAB - SABnzbd, GET - NZBGet, HYD - NZBHydra, TRA - Transmission, QBI - qBittorrent, DEL - Deluge, PRO - Prowlarr, JAC - Jackett, SON - Sonarr, RAD - Radarr, LID - Lidarr, WHI - Whisparr, SEE - Seerr, BAZ - Bazarr, TAU - Tautulli, MNT - Maintainerr, JEL - Jellyfin, PLX - Plex, EMB - Emby

Target
DASHBOARD_ORDER
Default
SAB,GET,HYD,TRA,QBI,DEL,PRO,JAC,SON,RAD,LID,WHI,SEE,BAZ,TAU,MNT,JEL,PLX,EMB
Value
SAB,GET,HYD,TRA,QBI,DEL,PRO,JAC,SON,RAD,LID,WHI,SEE,BAZ,TAU,MNT,JEL,PLX,EMB
Sites Display OrderVariable

TPB - The Pirate Bay, FIL - FileList.io, HDB - HDBits, IPT - IP Torrents, 1337 - 1337x, YTS - YTS, LAT - LimeTorrents, NYA - Nyaa, PTP - PassThePopcorn, DOG - DOGnzb, DRS - DrunkenSlug, NLF - nzb.life, NFW - NZBFinder.ws, NGK - NZBgeek, PLA - nzbplanet.net, TAB - Tabula Rasa (Additional sites enabled in the sites.json5 file)

Target
DASHBOARD_SITES
Window BehaviourVariable

Jackett, Seerr, Emby and Plex do not play nice in frames, they'll either open in a new tab or popout window based on this setting

Target
DASHBOARD_WINDOWS
Default
popout|newtab
Value
popout
Authentication TypeVariable

Choose: none, basic, google, entra

Target
AUTHTYPE
Default
none|basic|google|entra
Value
none
Basic Auth CredentialsVariable

Format: user:pass or user1:pass1|user2:pass2

Target
BASIC_AUTH_CREDENTIALS
Entra Client IDVariable

From Entra App

Target
ENTRA_CLIENT_ID
Entra Client SecretVariable

From Entra App

Target
ENTRA_CLIENT_SECRET
Entra Tenant IDVariable

Your Azure Tenant ID

Target
ENTRA_TENANT_ID
Entra Redirect URIVariable

OAuth callback URL - configure in Azure Portal. For public mode with OAuth, set to your domain's OAuth callback path

Target
ENTRA_REDIRECT_URI
Default
https://yourdomain.com/oauth2/callback
Value
https://yourdomain.com/oauth2/callback
Entra Crypto PassphraseVariable

Encryption passphrase for Entra

Target
ENTRA_CRYPTO_PASSPHRASE
Entra Metadata URLVariable

Entra OpenID metadata URL

Target
ENTRA_PROVIDER_METADATA_URL
Default
https://login.microsoftonline.com/<YOUR TENANT ID>/v2.0/.well-known/openid-configuration
Value
https://login.microsoftonline.com/<YOUR TENANT ID>/v2.0/.well-known/openid-configuration
Google Client IDVariable

From Google Cloud Console - your URI should be set to your Dashboard Domain

Target
GOOGLE_CLIENT_ID
Google Client SecretVariable

From Google Cloud Console

Target
GOOGLE_CLIENT_SECRET
Enable SABnzbdVariable

SABnzbd - Usenet Client (Config - Special - url_base() to /sabnzbd)

Target
SABNZBD_ENABLED
Default
false|true
Value
false
SABnzbd URLVariable

Local internal URL for SABnzbd service (usually http://sabnzbd:8080)

Target
SABNZBD_URL
Default
http://sabnzbd:8080
Value
http://sabnzbd:8080
Enable NZBGetVariable

NZBGet - Usenet Client (Set User and Pass below to bypass NZBGet auth

Target
NZBGET_ENABLED
Default
false|true
Value
false
NZBGet URLVariable

Local internal URL for NZBGet service (usually http://nzbget:6789)

Target
NZBGET_URL
Default
http://nzbget:6789
Value
http://nzbget:6789
Enable NZBHydraVariable

NZBHydra - Usenet Meta Indexer (Config - Main - URLBase to /nzbhydra)

Target
NZBHYDRA_ENABLED
Default
false|true
Value
false
NZBHydra URLVariable

Local internal URL for NZBHydra service (usually http://nzbhydra:5076)

Target
NZBHYDRA_URL
Default
http://nzbhydra:5076
Value
http://nzbhydra:5076
Enable TransmissionVariable

Transmission - Torrent Client

Target
TRANSMISSION_ENABLED
Default
false|true
Value
false
Transmission URLVariable

Local internal URL for Transmission service (usually http://transmission:9091)

Target
TRANSMISSION_URL
Default
http://transmission:9091
Value
http://transmission:9091
Enable qBittorrentVariable

qBittorrent - Torrent Client

Target
QBITTORRENT_ENABLED
Default
false|true
Value
false
qBittorrent URLVariable

Local internal URL for qBittorrent service (check for port conflicts; default is http://qbittorrent:8080)

Target
QBITTORRENT_URL
Default
http://qbittorrent:8080
Value
http://qbittorrent:8080
Enable DelugeVariable

Deluge - Torrent Client

Target
DELUGE_ENABLED
Default
false|true
Value
false
Deluge URLVariable

Local internal URL for Deluge service (usually http://deluge:8112)

Target
DELUGE_URL
Default
http://deluge:8112
Value
http://deluge:8112
Enable SonarrVariable

Sonarr - TV Show Automation (Settings - General - URL Base to /sonarr)

Target
SONARR_ENABLED
Default
false|true
Value
false
Sonarr URLVariable

Local internal URL for Sonarr service (usually http://sonarr:8989)

Target
SONARR_URL
Default
http://sonarr:8989
Value
http://sonarr:8989
Sonarr LandingVariable

Landing page (e.g., sonarr, sonarr/calendar)

Target
SONARR_LANDING
Default
sonarr
Value
sonarr
Enable RadarrVariable

Radarr - Movie Automation ((Settings - General - URL Base to /radarr)

Target
RADARR_ENABLED
Default
false|true
Value
false
Radarr URLVariable

Local internal URL for Radarr service (usually http://radarr:7878)

Target
RADARR_URL
Default
http://radarr:7878
Value
http://radarr:7878
Radarr LandingVariable

Landing page (e.g., radarr, radarr/calendar)

Target
RADARR_LANDING
Default
radarr
Value
radarr
Enable WhisparrVariable

Whisparr - Adult Content Automation (Settings - General - URL Base to /whisparr)

Target
WHISPARR_ENABLED
Default
false|true
Value
false
Whisparr URLVariable

Local internal URL for Whisparr service (usually http://whisparr:6969)

Target
WHISPARR_URL
Default
http://whisparr:6969
Value
http://whisparr:6969
Whisparr LandingVariable

Landing page for Whisparr (e.g., whisparr, whisparr/calendar). Leave blank for default

Target
WHISPARR_LANDING
Default
whisparr
Value
whisparr
Enable LidarrVariable

Lidarr - Music Automation (Settings - General - URL Base to to /lidarr)

Target
LIDARR_ENABLED
Default
false|true
Value
false
Lidarr URLVariable

Local internal URL for Lidarr service (usually http://lidarr:8686)

Target
LIDARR_URL
Default
http://lidarr:8686
Value
http://lidarr:8686
Lidarr LandingVariable

Landing page for Lidarr (e.g., lidarr, lidarr/library). Leave blank for default

Target
LIDARR_LANDING
Default
lidarr
Value
lidarr
Enable ProwlarrVariable

Prowlarr - Indexer Manager (Settings - General - URL Base to /prowlarr)

Target
PROWLARR_ENABLED
Default
false|true
Value
false
Prowlarr URLVariable

Local internal URL for Prowlarr service (usually http://prowlarr:9696)

Target
PROWLARR_URL
Default
http://prowlarr:9696
Value
http://prowlarr:9696
Enable JackettVariable

Jackett - Indexer Aggregator (Config - Admin - url_base() to /jackett). For public mode with OAuth, configure JACKETT_OAUTH_URI in advanced settings

Target
JACKETT_ENABLED
Default
false|true
Value
false
Jackett URLVariable

Local internal URL for Jackett service (usually http://jackett:9117)

Target
JACKETT_URL
Default
http://jackett:9117
Value
http://jackett:9117
Enable SeerrVariable

Seerr - Request Manager (In public mode, uses subdomain routing). For public mode with OAuth, also set SEERR_DOMAIN and SEERR_REDIRECT_URI

Target
SEERR_ENABLED
Default
false|true
Value
false
Seerr URLVariable

Local internal URL for Seerr service

Target
SEERR_URL
Default
http://seerr:5055
Value
http://seerr:5055
Seerr DomainVariable

Subdomain for Seerr (e.g., seerr.yourdomain.com). For public mode with OAuth, also set SEERR_REDIRECT_URI to https://[SEERR_DOMAIN]/oauth2callback

Target
SEERR_DOMAIN
Enable BazarrVariable

Bazarr - Subtitle Manager (Settings - General - Base URL to /bazarr)

Target
BAZARR_ENABLED
Default
false|true
Value
false
Bazarr URLVariable

Local internal URL for Bazarr service (usually http://bazarr:6767)

Target
BAZARR_URL
Default
http://bazarr:6767
Value
http://bazarr:6767
Enable JellyfinVariable

Jellyfin - Media Server (Settings -Admin Dash - Networking - Base URL /jellyfin)

Target
JELLYFIN_ENABLED
Default
false|true
Value
false
Jellyfin URLVariable

Local internal URL for Jellyfin service (usually http://jellyfin:8096)

Target
JELLYFIN_URL
Default
http://jellyfin:8096
Value
http://jellyfin:8096
Enable EmbyVariable

Emby - Media Server (In public mode, uses subdomain routing). For public mode with OAuth, also set EMBY_DOMAIN and EMBY_REDIRECT_URI

Target
EMBY_ENABLED
Default
false|true
Value
false
Emby URLVariable

Local internal URL for Emby service

Target
EMBY_URL
Default
http://emby:8096
Value
http://emby:8096
Emby DomainVariable

Subdomain for Emby (e.g., emby.yourdomain.com). For public mode with OAuth, also set EMBY_REDIRECT_URI to https://[EMBY_DOMAIN]/oauth2callback

Target
EMBY_DOMAIN
Enable PlexVariable

Plex - Media Server (in public mode, uses subdomain routing). For public mode with OAuth, also set PLEX_DOMAIN and PLEX_REDIRECT_URI

Target
PLEX_ENABLED
Default
false|true
Value
false
Plex URLVariable

Local internal URL for Plex service (usually http://plex:32400)

Target
PLEX_URL
Default
http://plex:32400
Value
http://plex:32400
Plex DomainVariable

Subdomain for Plex (e.g., plex.yourdomain.com). For public mode with OAuth, also set PLEX_REDIRECT_URI to https://[PLEX_DOMAIN]/oauth2callback

Target
PLEX_DOMAIN
Enable TautulliVariable

Tautulli - Plex Analytics (Settings - Show Advanced - Web Interface - Enable Proxy, Set Public Domain to https://yahlp.yourdomain.com/tautulli and HTTP root to /tautulli)

Target
TAUTULLI_ENABLED
Default
false|true
Value
false
Tautulli URLVariable

Local internal URL for Tautulli service (usually http://tautulli:8181/tautulli)

Target
TAUTULLI_URL
Default
http://tautulli:8181
Value
http://tautulli:8181
Enable MaintainerrVariable

Maintainerr - Media Server Maintenance (Enable BASE_URL environment variable on its docker and set to /maintainerr)

Target
MAINTAINERR_ENABLED
Default
false|true
Value
false
Maintainerr URLVariable

Local internal URL for Maintainerr service (usually http://maintainerr:6246)

Target
MAINTAINERR_URL
Default
http://maintainerr:6246
Value
http://maintainerr:6246
PUIDVariable

User ID for file permissions (99 = nobody)

Default
99
Value
99
PGIDVariable

Group ID for file permissions (100 = users)

Default
100
Value
100
ConfigurationPathrw

Configuration folder - store the yahlp and sites JSON5 files here - ENV Variables override config settings, remove the variable settings from the form. Custom templates in the templates folder

Target
/etc/yahlp
Default
/mnt/user/appdata/yahlp
Value
/mnt/user/appdata/yahlp
TimezonePathro

Read Timezone from host

Target
/etc/localtime
Default
/etc/localtime
Value
/etc/localtime