If you’re running multiple self-hosted services in your homelab, you’ve probably experienced the frustration of juggling bookmarks, memorizing ports, and keeping track of which service runs where. A self-hosted dashboard solves this problem by providing a unified interface to access and monitor all your applications from one place.
In this comprehensive guide, we’ll explore two of the most popular self-hosted dashboard solutions: Homepage and Dashy. Both are excellent choices, but they cater to slightly different needs. We’ll walk through installation, configuration, features, and help you decide which one is right for your homelab.
Why You Need a Self-Hosted Dashboard
Before diving into the specifics, let’s understand why a dashboard is essential for any serious self-hoster:
Centralized Access: Instead of remembering 192.168.1.50:8080, 192.168.1.51:9000, and dozens of other URLs, you access everything from one beautiful interface.
Service Monitoring: Most dashboards integrate with monitoring tools to show you service health, uptime, and resource usage at a glance.
Organization: Group services by category (Media, Downloads, Monitoring, etc.) to keep your homelab organized.
Discovery: When you have 20+ services running, a dashboard helps you remember what you’ve deployed and where it lives.
Aesthetics: Let’s be honest — a well-designed dashboard makes your homelab feel more professional and enjoyable to use.
Homepage vs Dashy: Quick Comparison
Before we dive into installation, here’s a high-level comparison:
Homepage
- Modern, widget-based interface
- Deep service integrations (shows stats directly on tiles)
- Built-in resource monitoring
- Active development and growing community
- Configuration via YAML files
- Better for users who want real-time service stats
Dashy
- Highly customizable visual appearance
- Simpler service listings (primarily links)
- Extensive theming options
- More mature project
- Configuration via YAML or web UI
- Better for users who prioritize aesthetics and customization
Both are excellent choices. Homepage excels at showing you what’s happening across your services, while Dashy excels at looking exactly how you want it to look.
Installing Homepage with Docker
Homepage is a modern, fast dashboard with excellent service integrations. Let’s get it running.
Prerequisites
You’ll need:
- Docker and Docker Compose installed
- A Linux server or mini PC running your homelab
- Basic knowledge of YAML configuration files
Docker Compose Setup
Create a directory for Homepage:
| |
Create a docker-compose.yml file:
| |
Important security note: Mounting the Docker socket (/var/run/docker.sock) allows Homepage to auto-discover and monitor your containers, but it also grants significant privileges. Only do this if you trust Homepage and understand the implications. For enhanced security, consider using a Docker socket proxy like Tecnativa’s docker-socket-proxy.
Start Homepage:
| |
Homepage will create configuration files in ./config on first run. Access it at http://your-server-ip:3000.
Basic Configuration
Homepage uses YAML files in the config directory. Let’s create a basic setup.
Edit config/services.yaml:
| |
Edit config/widgets.yaml to add system widgets:
| |
Edit config/settings.yaml:
| |
Restart Homepage to apply changes:
| |
Advanced Homepage Features
Docker Integration: If you mounted the Docker socket, Homepage can auto-discover containers. Add to config/docker.yaml:
| |
Service Widgets: Homepage supports 100+ service integrations. Each widget can show real-time data:
- Jellyfin: Currently playing, library counts
- Radarr/Sonarr: Queue size, missing items
- qBittorrent: Download/upload speed, active torrents
- Proxmox: CPU, RAM, node status
- Pi-hole: Queries blocked, percentage blocked
Find the complete widget list in the Homepage documentation.
Bookmarks: Add quick links in config/bookmarks.yaml:
| |
Installing Dashy with Docker
Dashy is a feature-rich dashboard with extensive customization options and a gorgeous interface.
Docker Compose Setup
Create a directory for Dashy:
| |
Create a docker-compose.yml file:
| |
Start Dashy:
| |
Access Dashy at http://your-server-ip:4000.
Basic Configuration
Dashy uses a single config.yml file. Create it in your Dashy directory:
| |
Restart Dashy to apply changes:
| |
Advanced Dashy Features
Themes: Dashy includes 20+ built-in themes. Change the theme in appConfig:
nord- Nord color palettenord-frost- Nord with frost tonesmaterial-dark- Material design darkdracula- Dracula thememonokai- Monokai color schemehigh-contrast-dark- High contrast for accessibility
Status Checking: Dashy can ping your services and show online/offline status. Enable per-item:
| |
Web Search: Add a search bar:
| |
Authentication: Protect your dashboard with built-in auth:
| |
Generate password hashes with:
| |
Icons: Dashy supports multiple icon sources:
favicon- Auto-fetch from servicehl-jellyfin- Home Lab iconssi-docker- Simple Iconsfas fa-home- Font Awesome- Custom URLs or local images
Widgets: Add widgets for weather, system info, or custom HTML:
| |
Reverse Proxy Setup
Running your dashboard behind a reverse proxy (Traefik, nginx, Caddy) is highly recommended for SSL and custom domains.
Traefik Example (Homepage)
Add labels to your docker-compose.yml:
| |
nginx Proxy Manager Example (Dashy)
- Create a new Proxy Host in nginx Proxy Manager
- Set domain name:
dashboard.yourdomain.com - Forward to:
dashy:80 - Enable “Block Common Exploits”
- Request SSL certificate with Let’s Encrypt
Security Best Practices
1. Use Strong Authentication: Both Homepage and Dashy should be protected, especially if exposed to the internet.
2. Reverse Proxy with SSL: Always use HTTPS for external access.
3. Firewall Rules: If using Tailscale or WireGuard, restrict dashboard access to your VPN network only.
4. Read-Only Docker Socket: Use a socket proxy instead of direct socket mounting:
| |
5. API Key Protection: Store API keys in environment variables instead of config files:
| |
Performance and Resource Usage
Both dashboards are lightweight, but here’s what to expect:
Homepage:
- RAM: ~50-100 MB
- CPU: Minimal (<1% idle)
- Disk: ~100 MB
- Startup time: 2-3 seconds
Dashy:
- RAM: ~60-120 MB
- CPU: Minimal (<1% idle)
- Disk: ~150 MB
- Startup time: 3-5 seconds
Both run smoothly on minimal hardware like a Raspberry Pi 4 or entry-level mini PC.
Which Dashboard Should You Choose?
Choose Homepage if you want:
- Real-time service statistics on your dashboard
- Deep integration with homelab services
- Active development and modern features
- Resource monitoring built-in
- Docker auto-discovery
Choose Dashy if you want:
- Maximum visual customization
- A mature, stable project
- Web-based configuration UI
- Extensive theming options
- Beautiful, polished interface out of the box
Or run both! Many homelabbers run Homepage on port 3000 for daily monitoring and Dashy on port 4000 as a public-facing dashboard for guests or family members.
Troubleshooting Common Issues
Homepage widget not showing data:
- Verify API keys are correct
- Check service URLs are accessible from the Homepage container
- Review Homepage logs:
docker logs homepage - Ensure services support the widget type
Dashy status checks failing:
- Confirm
statusCheckUrlis correct - Check if service requires authentication
- Increase
statusCheckIntervalto reduce load - Review browser console for CORS errors
Changes not applying:
- Always restart the container after config changes
- Verify YAML syntax (indentation is critical)
- Check for typos in file paths or URLs
Performance issues:
- Reduce number of widgets polling services
- Increase polling intervals
- Disable unused features
- Use a Docker socket proxy instead of direct mounting
Backup and Migration
Both dashboards store configuration in simple YAML files, making backup trivial:
| |
To migrate to a new server:
- Copy configuration files
- Deploy the docker-compose.yml
- Update IP addresses/URLs as needed
- Restart the container
Conclusion
A self-hosted dashboard transforms your homelab from a collection of scattered services into a cohesive, organized system. Whether you choose Homepage’s powerful integrations or Dashy’s stunning customization, you’ll wonder how you ever managed without one.
Homepage is ideal for power users who want deep service insights and real-time monitoring. Dashy is perfect for those who value aesthetics and want a beautifully designed interface with extensive theming.
Both are actively maintained, well-documented, and free. Start with one, experiment with both, and find what fits your workflow.
Your homelab deserves a proper command center. Set one up today, and enjoy the satisfaction of having all your services beautifully organized in one place.
Looking for more self-hosting guides? Check out our articles on Traefik reverse proxy setup, Docker Compose best practices, and securing your self-hosted services.