docker.recipes

Homarr Modern Dashboard

beginner

Homarr dashboard with service integrations.

Overview

Homarr is a modern, customizable dashboard application designed specifically for homelab enthusiasts and self-hosted service management. Built with a sleek, responsive interface, Homarr allows users to create personalized dashboards that aggregate and monitor various self-hosted applications, services, and system metrics through an intuitive drag-and-drop configuration system. The application excels at integrating with popular homelab services like Plex, Sonarr, Radarr, and other *arr applications, providing real-time status updates, system health monitoring, and quick access to frequently used tools. This deployment pairs Homarr with NGINX to create a robust dashboard solution where NGINX serves as a high-performance reverse proxy, handling SSL termination, static file serving, and load distribution. The combination leverages NGINX's event-driven architecture to efficiently manage concurrent dashboard requests while Homarr focuses on service integration and widget rendering. This stack is ideal for homelab administrators, self-hosting enthusiasts, and anyone managing multiple containerized services who needs a centralized, visually appealing interface to monitor and control their infrastructure from a single location.

Key Features

  • Drag-and-drop dashboard builder with customizable widgets and layouts
  • Native integration with *arr applications (Sonarr, Radarr, Lidarr) for media management monitoring
  • Docker container discovery and management through mounted Docker socket
  • Real-time service status monitoring with health checks and uptime tracking
  • Customizable icon library with support for custom service icons
  • NGINX reverse proxy with HTTP/2 support for optimized dashboard loading
  • Responsive design optimizing dashboard viewing across desktop and mobile devices
  • Widget-based architecture supporting system metrics, weather, calendar, and RSS feeds

Common Use Cases

  • 1Homelab enthusiasts centralizing access to self-hosted media servers, download clients, and automation tools
  • 2IT administrators monitoring containerized application health and performance across development environments
  • 3Home automation enthusiasts integrating smart home controls with media management and system monitoring
  • 4Small business owners managing multiple web services and applications from a unified interface
  • 5Docker enthusiasts organizing and monitoring their container ecosystem with visual service management
  • 6Network administrators creating status dashboards for internal services and infrastructure monitoring
  • 7Self-hosting advocates replacing cloud-based dashboards with locally-controlled service aggregation

Prerequisites

  • Docker Engine and Docker Compose installed on the host system
  • Minimum 512MB RAM available for Homarr application and widget rendering
  • Docker socket access permissions for container discovery and management features
  • Network ports 7575 and 80 available for Homarr and NGINX services respectively
  • Basic understanding of Docker volume management for persistent dashboard configurations
  • NGINX configuration knowledge for customizing reverse proxy settings and SSL setup

For development & testing. Review security settings, change default credentials, and test thoroughly before production use. See Terms

docker-compose.yml

docker-compose.yml
1services:
2 homarr:
3 image: ghcr.io/ajnart/homarr:latest
4 container_name: homarr
5 restart: unless-stopped
6 ports:
7 - "${HOMARR_PORT:-7575}:7575"
8 environment:
9 - TZ=${TZ:-UTC}
10 volumes:
11 - homarr_configs:/app/data/configs
12 - homarr_icons:/app/public/icons
13 - /var/run/docker.sock:/var/run/docker.sock:ro
14
15 nginx:
16 image: nginx:alpine
17 container_name: homarr-nginx
18 restart: unless-stopped
19 ports:
20 - "${NGINX_PORT:-80}:80"
21 volumes:
22 - ./nginx.conf:/etc/nginx/nginx.conf:ro
23
24volumes:
25 homarr_configs:
26 homarr_icons:

.env Template

.env
1# Homarr
2HOMARR_PORT=7575
3TZ=UTC
4NGINX_PORT=80

Usage Notes

  1. 1Homarr at http://localhost:7575
  2. 2Drag-and-drop configuration
  3. 3Docker socket for containers
  4. 4Integrates with *arr apps

Individual Services(2 services)

Copy individual services to mix and match with your existing compose files.

homarr
homarr:
  image: ghcr.io/ajnart/homarr:latest
  container_name: homarr
  restart: unless-stopped
  ports:
    - ${HOMARR_PORT:-7575}:7575
  environment:
    - TZ=${TZ:-UTC}
  volumes:
    - homarr_configs:/app/data/configs
    - homarr_icons:/app/public/icons
    - /var/run/docker.sock:/var/run/docker.sock:ro
nginx
nginx:
  image: nginx:alpine
  container_name: homarr-nginx
  restart: unless-stopped
  ports:
    - ${NGINX_PORT:-80}:80
  volumes:
    - ./nginx.conf:/etc/nginx/nginx.conf:ro

Quick Start

terminal
1# 1. Create the compose file
2cat > docker-compose.yml << 'EOF'
3services:
4 homarr:
5 image: ghcr.io/ajnart/homarr:latest
6 container_name: homarr
7 restart: unless-stopped
8 ports:
9 - "${HOMARR_PORT:-7575}:7575"
10 environment:
11 - TZ=${TZ:-UTC}
12 volumes:
13 - homarr_configs:/app/data/configs
14 - homarr_icons:/app/public/icons
15 - /var/run/docker.sock:/var/run/docker.sock:ro
16
17 nginx:
18 image: nginx:alpine
19 container_name: homarr-nginx
20 restart: unless-stopped
21 ports:
22 - "${NGINX_PORT:-80}:80"
23 volumes:
24 - ./nginx.conf:/etc/nginx/nginx.conf:ro
25
26volumes:
27 homarr_configs:
28 homarr_icons:
29EOF
30
31# 2. Create the .env file
32cat > .env << 'EOF'
33# Homarr
34HOMARR_PORT=7575
35TZ=UTC
36NGINX_PORT=80
37EOF
38
39# 3. Start the services
40docker compose up -d
41
42# 4. View logs
43docker compose logs -f

One-Liner

Run this command to download and set up the recipe in one step:

terminal
1curl -fsSL https://docker.recipes/api/recipes/homarr-dashboard-stack/run | bash

Troubleshooting

  • Homarr widgets showing 'Service Unavailable': Verify target service URLs are accessible from within Docker network and check firewall rules
  • Docker containers not appearing in Homarr: Ensure Docker socket is properly mounted with read permissions and check container labels for service discovery
  • Dashboard configuration lost after restart: Verify homarr_configs volume is properly mounted and has write permissions for the container user
  • NGINX showing 502 Bad Gateway: Check Homarr container status and ensure port 7575 is accessible between containers in the same Docker network
  • *arr application integration failing: Verify API keys are correctly configured and the applications are accessible on their specified ports
  • Custom icons not displaying: Ensure homarr_icons volume is mounted and icon files are placed in the correct directory structure within the volume

Community Notes

Loading...
Loading notes...

Download Recipe Kit

Get all files in a ready-to-deploy package

Includes docker-compose.yml, .env template, README, and license

Ad Space