How to Self-Host Homarr: Dashboard for Your Self-Hosted Services 2026
TL;DR
Homarr (MIT, ~7K GitHub stars, Next.js) is a customizable dashboard for your self-hosted services. Add app shortcuts, Docker container status, calendar, weather, and deep integrations with media management tools (Sonarr, Radarr, Jellyfin, etc.). Drag-and-drop layout, multiple boards, and a clean UI make it the control center for your homelab.
Key Takeaways
- Homarr: MIT, ~7K stars, Next.js — modern dashboard with deep service integrations
- Docker integration: See container status, start/stop/restart from the dashboard
- App integrations: Sonarr, Radarr, Lidarr, Readarr, Overseerr, Jellyfin, Plex, qBittorrent
- Drag-and-drop: Visual board editor — resize and arrange widgets freely
- Multiple boards: Create separate dashboards for different purposes
- Multi-user: User accounts with per-board permissions
Homarr vs Homepage vs Dashy
| Feature | Homarr | Homepage | Dashy |
|---|---|---|---|
| Setup style | Web UI | YAML config | YAML/UI config |
| Docker integration | Full (start/stop) | Status only | No |
| Drag-and-drop editor | Yes | No | Yes |
| Service integrations | Deep (API widgets) | Deep (API widgets) | Basic |
| Multi-user | Yes | No | No |
| Multiple boards | Yes | No | Multiple pages |
| RAM usage | ~200MB | ~50MB | ~100MB |
| Theme system | Built-in | CSS | Built-in |
Part 1: Docker Setup
# docker-compose.yml
services:
homarr:
image: ghcr.io/homarr-dev/homarr:latest
container_name: homarr
restart: unless-stopped
ports:
- "7575:7575"
volumes:
- homarr_appdata:/appdata
- /var/run/docker.sock:/var/run/docker.sock:ro # Docker integration
environment:
# Secret key for session encryption:
AUTH_SECRET: "${AUTH_SECRET}" # openssl rand -base64 32
# Default credentials (first run):
DEFAULT_COLOR_SCHEME: dark
volumes:
homarr_appdata:
docker compose up -d
Visit http://your-server:7575 → create your admin account → start building your dashboard.
Part 2: HTTPS with Caddy
dashboard.yourdomain.com {
reverse_proxy localhost:7575
}
Part 3: Adding Apps
Quick app shortcuts
- Edit mode (pencil icon) → + Add app
- Configure:
- Name:
Jellyfin - URL:
https://jellyfin.yourdomain.com - Icon: search for
jellyfin(built-in icon library with 10,000+ icons) - Description: optional
- Open in: New tab / Same tab / Iframe
- Name:
- Save → drag to desired position
App categories
Organize apps into sections:
Media: Jellyfin, Sonarr, Radarr, Overseerr, qBittorrent
Monitoring: Uptime Kuma, Grafana, Netdata, CrowdSec
Productivity: Nextcloud, Vaultwarden, Gitea, Linkding
Management: Portainer, Proxmox, pfSense, PiHole
Part 4: Widgets
Homarr's killer feature is deep integration widgets that pull real data from your services.
Docker widget
Shows container status with start/stop/restart controls:
- + Add widget → Docker
- No configuration needed — reads from
/var/run/docker.sock - Shows: running, stopped, paused containers
- Click a container → Start / Stop / Restart
Sonarr / Radarr widget
+ Add widget → Media Requests
Integration: Sonarr
URL: http://sonarr:8989
API Key: (from Sonarr → Settings → General → API Key)
Shows:
- Upcoming episodes / movies
- Missing episodes
- Queue (downloading)
- Calendar view of releases
Jellyfin / Plex widget
+ Add widget → Media Server
Integration: Jellyfin
URL: http://jellyfin:8096
API Key: (from Jellyfin → Dashboard → API Keys)
Shows currently streaming sessions, library counts, recent additions.
Weather widget
+ Add widget → Weather
Location: "San Francisco, CA"
Units: Imperial / Metric
Calendar widget
Shows events from Sonarr, Radarr, and Lidarr release calendars combined.
System health widget
+ Add widget → System Health
Shows CPU, RAM, disk usage of the host machine.
Uptime Kuma widget
+ Add widget → Monitoring
Integration: Uptime Kuma
URL: http://uptime-kuma:3001
Shows monitor status and uptime percentages.
Part 5: Board Customization
Layout
- Grid system: Drag and resize widgets on a grid
- Column count: Adjust from 2 to 12 columns per row
- Widget sizes: Small (1 column), medium (2), large (3+)
- Spacing: Configure gap between widgets
Theming
Settings → Appearance:
- Color scheme: Dark / Light / Auto
- Primary color: customizable
- Background: solid color, gradient, or image URL
- Opacity: widget transparency
- Custom CSS: for advanced styling
Background image
Settings → Appearance → Background:
URL: https://source.unsplash.com/random/1920x1080?nature
# Or a local image served from your server
Part 6: Multiple Boards
Create separate dashboards for different contexts:
- Boards → + New Board
- Name:
Home,Media,Development,Monitoring - Each board has its own set of widgets and layout
- Switch between boards from the top navigation
Board permissions
Different users can see different boards:
Boards → Settings → Access:
- Public: anyone can view (even without login)
- Restricted: specific users only
- Admin only: only administrators
Part 7: Multi-User Setup
Create users
Settings → Users → + Add User:
Username: alice
Email: alice@example.com
Role: User / Admin
Roles
| Role | Capabilities |
|---|---|
| Admin | Full access, manage boards, users, settings |
| User | View assigned boards, interact with widgets |
| Guest | View public boards only |
Part 8: Advanced Configuration
Custom Docker labels
Instead of configuring apps in the UI, use Docker labels:
# On any Docker container:
services:
jellyfin:
image: jellyfin/jellyfin
labels:
homarr.name: "Jellyfin"
homarr.icon: "jellyfin"
homarr.url: "https://jellyfin.yourdomain.com"
homarr.description: "Media Server"
Ping/health checks
Homarr can periodically ping your apps and show up/down status:
App Settings → Advanced:
Status Check: Enabled
Check Interval: 60 seconds
Iframe embedding
Embed another app directly inside Homarr:
+ Add widget → Iframe
URL: https://grafana.yourdomain.com/d/dashboard-id?kiosk
Height: 400px
Maintenance
# Update:
docker compose pull
docker compose up -d
# Backup:
tar -czf homarr-backup-$(date +%Y%m%d).tar.gz \
$(docker volume inspect homarr_homarr_appdata --format '{{.Mountpoint}}')
# Logs:
docker compose logs -f homarr
See also: Homepage — YAML-configured alternative with lower resource usage
See all open source homelab tools at OSSAlt.com/categories/homelab.