All apps · 0 apps
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 / 3Install 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.
Requirements
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 allDetails
Runtime arguments
- Web UI
https://[IP]:[PORT:443]/- Network
bridge- Shell
bash- Privileged
- false
Template configuration
HTTP
- Target
- 80
- Default
- 80
- Value
- 80
HTTPS
- Target
- 443
- Default
- 443
- Value
- 443
Server IP for private mode (e.g., 192.168.1.100)
- Target
- IP
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
Your domain for public mode (e.g., yahlp.yourdomain.com)
- Target
- DOMAIN
Email for Let's Encrypt notifications (public mode only)
- Target
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
Displayed in browser title and dashboard
- Target
- DASHBOARD_NAME
- Default
- YAHLP
- Value
- YAHLP
Choose: classic, modern, sleek, minimal (If you have added custom templates you can add them here)
- Target
- DASHBOARD_STYLE
- Default
- modern
- Value
- modern
Hex color for dashboard UI accents and highlights for default templates (e.g., #00A99D, #FF5733). Leave blank for default theme color
- Target
- DASHBOARD_COLOR
Set the default landing page when accessing dashboard (e.g., sonarr, radarr, radarr/upcoming, seerr). Leave blank to show service grid
- Target
- DASHBOARD_LANDING
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
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
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
Choose: none, basic, google, entra
- Target
- AUTHTYPE
- Default
- none|basic|google|entra
- Value
- none
Format: user:pass or user1:pass1|user2:pass2
- Target
- BASIC_AUTH_CREDENTIALS
From Entra App
- Target
- ENTRA_CLIENT_ID
From Entra App
- Target
- ENTRA_CLIENT_SECRET
Your Azure Tenant ID
- Target
- ENTRA_TENANT_ID
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
Encryption passphrase for Entra
- Target
- ENTRA_CRYPTO_PASSPHRASE
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
From Google Cloud Console - your URI should be set to your Dashboard Domain
- Target
- GOOGLE_CLIENT_ID
From Google Cloud Console
- Target
- GOOGLE_CLIENT_SECRET
SABnzbd - Usenet Client (Config - Special - url_base() to /sabnzbd)
- Target
- SABNZBD_ENABLED
- Default
- false|true
- Value
- false
Local internal URL for SABnzbd service (usually http://sabnzbd:8080)
- Target
- SABNZBD_URL
- Default
- http://sabnzbd:8080
- Value
- http://sabnzbd:8080
NZBGet - Usenet Client (Set User and Pass below to bypass NZBGet auth
- Target
- NZBGET_ENABLED
- Default
- false|true
- Value
- false
Local internal URL for NZBGet service (usually http://nzbget:6789)
- Target
- NZBGET_URL
- Default
- http://nzbget:6789
- Value
- http://nzbget:6789
NZBHydra - Usenet Meta Indexer (Config - Main - URLBase to /nzbhydra)
- Target
- NZBHYDRA_ENABLED
- Default
- false|true
- Value
- false
Local internal URL for NZBHydra service (usually http://nzbhydra:5076)
- Target
- NZBHYDRA_URL
- Default
- http://nzbhydra:5076
- Value
- http://nzbhydra:5076
Transmission - Torrent Client
- Target
- TRANSMISSION_ENABLED
- Default
- false|true
- Value
- false
Local internal URL for Transmission service (usually http://transmission:9091)
- Target
- TRANSMISSION_URL
- Default
- http://transmission:9091
- Value
- http://transmission:9091
qBittorrent - Torrent Client
- Target
- QBITTORRENT_ENABLED
- Default
- false|true
- Value
- false
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
Deluge - Torrent Client
- Target
- DELUGE_ENABLED
- Default
- false|true
- Value
- false
Local internal URL for Deluge service (usually http://deluge:8112)
- Target
- DELUGE_URL
- Default
- http://deluge:8112
- Value
- http://deluge:8112
Sonarr - TV Show Automation (Settings - General - URL Base to /sonarr)
- Target
- SONARR_ENABLED
- Default
- false|true
- Value
- false
Local internal URL for Sonarr service (usually http://sonarr:8989)
- Target
- SONARR_URL
- Default
- http://sonarr:8989
- Value
- http://sonarr:8989
Landing page (e.g., sonarr, sonarr/calendar)
- Target
- SONARR_LANDING
- Default
- sonarr
- Value
- sonarr
Radarr - Movie Automation ((Settings - General - URL Base to /radarr)
- Target
- RADARR_ENABLED
- Default
- false|true
- Value
- false
Local internal URL for Radarr service (usually http://radarr:7878)
- Target
- RADARR_URL
- Default
- http://radarr:7878
- Value
- http://radarr:7878
Landing page (e.g., radarr, radarr/calendar)
- Target
- RADARR_LANDING
- Default
- radarr
- Value
- radarr
Whisparr - Adult Content Automation (Settings - General - URL Base to /whisparr)
- Target
- WHISPARR_ENABLED
- Default
- false|true
- Value
- false
Local internal URL for Whisparr service (usually http://whisparr:6969)
- Target
- WHISPARR_URL
- Default
- http://whisparr:6969
- Value
- http://whisparr:6969
Landing page for Whisparr (e.g., whisparr, whisparr/calendar). Leave blank for default
- Target
- WHISPARR_LANDING
- Default
- whisparr
- Value
- whisparr
Lidarr - Music Automation (Settings - General - URL Base to to /lidarr)
- Target
- LIDARR_ENABLED
- Default
- false|true
- Value
- false
Local internal URL for Lidarr service (usually http://lidarr:8686)
- Target
- LIDARR_URL
- Default
- http://lidarr:8686
- Value
- http://lidarr:8686
Landing page for Lidarr (e.g., lidarr, lidarr/library). Leave blank for default
- Target
- LIDARR_LANDING
- Default
- lidarr
- Value
- lidarr
Prowlarr - Indexer Manager (Settings - General - URL Base to /prowlarr)
- Target
- PROWLARR_ENABLED
- Default
- false|true
- Value
- false
Local internal URL for Prowlarr service (usually http://prowlarr:9696)
- Target
- PROWLARR_URL
- Default
- http://prowlarr:9696
- Value
- http://prowlarr:9696
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
Local internal URL for Jackett service (usually http://jackett:9117)
- Target
- JACKETT_URL
- Default
- http://jackett:9117
- Value
- http://jackett:9117
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
Local internal URL for Seerr service
- Target
- SEERR_URL
- Default
- http://seerr:5055
- Value
- http://seerr:5055
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
Bazarr - Subtitle Manager (Settings - General - Base URL to /bazarr)
- Target
- BAZARR_ENABLED
- Default
- false|true
- Value
- false
Local internal URL for Bazarr service (usually http://bazarr:6767)
- Target
- BAZARR_URL
- Default
- http://bazarr:6767
- Value
- http://bazarr:6767
Jellyfin - Media Server (Settings -Admin Dash - Networking - Base URL /jellyfin)
- Target
- JELLYFIN_ENABLED
- Default
- false|true
- Value
- false
Local internal URL for Jellyfin service (usually http://jellyfin:8096)
- Target
- JELLYFIN_URL
- Default
- http://jellyfin:8096
- Value
- http://jellyfin:8096
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
Local internal URL for Emby service
- Target
- EMBY_URL
- Default
- http://emby:8096
- Value
- http://emby:8096
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
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
Local internal URL for Plex service (usually http://plex:32400)
- Target
- PLEX_URL
- Default
- http://plex:32400
- Value
- http://plex:32400
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
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
Local internal URL for Tautulli service (usually http://tautulli:8181/tautulli)
- Target
- TAUTULLI_URL
- Default
- http://tautulli:8181
- Value
- http://tautulli:8181
Maintainerr - Media Server Maintenance (Enable BASE_URL environment variable on its docker and set to /maintainerr)
- Target
- MAINTAINERR_ENABLED
- Default
- false|true
- Value
- false
Local internal URL for Maintainerr service (usually http://maintainerr:6246)
- Target
- MAINTAINERR_URL
- Default
- http://maintainerr:6246
- Value
- http://maintainerr:6246
User ID for file permissions (99 = nobody)
- Default
- 99
- Value
- 99
Group ID for file permissions (100 = users)
- Default
- 100
- Value
- 100
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
Read Timezone from host
- Target
- /etc/localtime
- Default
- /etc/localtime
- Value
- /etc/localtime