Available Widget Types
Homarr includes widgets for various purposes:Application & Link Widgets
App
Display application links with icons, descriptions, and status indicators. Supports ping monitoring and custom layouts.Integration: None required
Bookmarks
Organize multiple app links in a customizable list. Perfect for quick access to frequently used services.Integration: None required
iFrame
Embed external web pages directly in your dashboard. Useful for displaying existing monitoring pages.Integration: None required
Media Management Widgets
Media Server
Display library statistics from Plex, Jellyfin, or Emby. Shows total movies, TV shows, episodes, and music.Integration: Plex, Jellyfin, or Emby
Calendar
View upcoming releases for TV shows and movies from Sonarr, Radarr, Lidarr, or Readarr.Integration: Sonarr, Radarr, Lidarr, Readarr, or Home Assistant
Media Requests
View and manage media requests from Overseerr, Jellyseerr, or Seerr. Shows request statistics and recent requests.Integration: Overseerr, Jellyseerr, or Seerr
Media Releases
Display recently added media from your media servers. Shows new movies, TV episodes, and music.Integration: Plex, Jellyfin, or Emby
Media Transcoding
Monitor active transcoding sessions in Tdarr. Shows encoding progress and statistics.Integration: Tdarr
Download Management Widgets
Downloads
Monitor active downloads from torrent and usenet clients. Shows download progress, speeds, and queue.Integration: qBittorrent, Transmission, Deluge, SABnzbd, NZBGet, or Aria2
Indexer Manager
View indexer statistics and health from Prowlarr. Monitor indexer availability and usage.Integration: Prowlarr
System Monitoring Widgets
System Resources
Display CPU, memory, and storage usage from system monitoring tools.Integration: Dash., Glances, OpenMediaVault, Proxmox, TrueNAS, or Unraid
System Disks
Monitor disk usage and health across multiple drives.Integration: Dash., OpenMediaVault, TrueNAS, or Unraid
Docker Containers
View and control Docker containers. Shows container status and resource usage.Integration: None required (direct Docker socket access)
Health Monitoring
Display health metrics from infrastructure monitoring tools.Integration: Dash., Glances, OpenMediaVault, Proxmox, TrueNAS, Unraid, or Coolify
Network & Security Widgets
DNS Hole Summary
Display DNS filtering statistics from Pi-hole or AdGuard Home. Shows blocked queries and top domains.Integration: Pi-hole or AdGuard Home
DNS Hole Controls
Enable or disable DNS filtering with quick toggle controls.Integration: Pi-hole or AdGuard Home
Firewall
Monitor firewall statistics and rules from OPNsense.Integration: OPNsense
Network Controller
View Unifi Controller statistics including connected clients and network usage.Integration: Unifi Controller
Smart Home Widgets
Entity State
Display the state of Home Assistant entities (lights, sensors, switches).Integration: Home Assistant
Execute Automation
Trigger Home Assistant automations with a button click.Integration: Home Assistant
Utility Widgets
Clock
Display current time with customizable format and timezone support.Integration: None required
Weather
Show current weather conditions and forecast.Integration: None required (uses public API)
RSS Feed
Display recent items from RSS/Atom feeds.Integration: None required
Notebook
Add markdown notes and documentation to your board.Integration: None required
Stock Price
Track stock prices and market data.Integration: None required (uses public API)
Video
Embed video streams or video files.Integration: None required
Development Widgets
Releases
Monitor new releases from GitHub, GitLab, Docker Hub, NPM, and other sources.Integration: GitHub, GitLab, Docker Hub, NPM, Codeberg, LinuxServer.io, GitHub Container Registry, or Quay
Coolify
Monitor Coolify deployments and services.Integration: Coolify
Notifications
Display notifications from ntfy.Integration: ntfy
Gaming Widgets
Minecraft Server Status
Display Minecraft server status, player count, and MOTD.Integration: None required (direct server query)
Widget Configuration
All widgets share a common configuration structure with type-safe options:Adding a Widget
- Enable Edit Mode on your board
- Click Add Widget
- Select a widget type from the gallery
- Configure widget options
- Click Add to place on the board
- Drag to position and resize as needed
- Click Save to persist changes
Widget Options
Each widget type has specific configuration options. Here’s an example of the App widget:Option Types
Widgets use type-safe option builders:- Switch
- Select
- Multi-Select
- Text
- Number
- Slider
Boolean toggle for on/off options:Used for features like “Show Title”, “Open in New Tab”, etc.
Integration Requirements
Many widgets require integrations to function:Checking Requirements
Widget definitions specify integration requirements:Integration Categories
Widgets use integration categories to support multiple services:- calendar: Sonarr, Radarr, Lidarr, Readarr, Home Assistant, Nextcloud
- mediaService: Plex, Jellyfin, Emby
- downloadClient: qBittorrent, Transmission, Deluge, SABnzbd, NZBGet
- dnsHole: Pi-hole, AdGuard Home
- healthMonitoring: Dash., Glances, Proxmox, TrueNAS, Unraid
Some widgets work without integrations (like Clock, Weather, Notebook) while others require at least one integration to function properly.
Real-Time Updates
Widgets fetch data using React Query with automatic refetching:Data Fetching
Prefetching
Widgets can prefetch data for faster initial load:Refresh Intervals
Most widgets automatically refresh every 30-60 seconds. Some widgets support custom refresh intervals in their options.Widget Lifecycle
Understanding how widgets load and update:- Mount: Widget component loads with initial data
- Prefetch: Background data loading for faster display
- Render: Display data with loading states
- Update: Automatic refetch on intervals
- Edit: Update options in edit mode
- Unmount: Cleanup when removed or board changes
Widget Props
Custom Widget Options
Widgets can have complex nested configurations:Sortable Lists
App Selection
Many widgets need to select apps or integrations:Error Handling
Widgets handle errors gracefully with custom error messages:- Custom icon and message
- Optional link to server logs
- Retry button
- Fallback to generic error for unexpected issues
Widget Development
Creating custom widgets follows a defined pattern:- Define the widget with type-safe options
- Create the component with data fetching
- Export with dynamic import for code splitting
Best Practices
Performance
- Use appropriate refresh intervals
- Enable prefetching for frequently accessed widgets
- Limit the number of real-time widgets per board
- Test with actual data volumes
Configuration
- Use descriptive widget names
- Configure appropriate integrations
- Set reasonable data limits (number of items to display)
- Test widgets in both edit and view mode
Layout
- Group related widgets together
- Size widgets appropriately for their content
- Leave space for expansion
- Test responsive behavior on different screens
Integrations
- Test connections before adding widgets
- Use meaningful integration names
- Document which widgets use which integrations
- Monitor integration health
Next Steps
Set Up Integrations
Connect your services to enable widget functionality
Configure Boards
Learn how to organize widgets on boards
Select Icons
Customize widget and app icons
Search Features
Quickly access widgets and services
