Deploy Homepage on Ubuntu 22.04 or 24.04 using Docker — a fast, modern, highly customizable dashboard that unifies all your self-hosted services in one place with live stats, Docker integration, and 6000+ built-in icons.
Grab the automated bash script from GitHub to follow along with the video.
wget https://raw.githubusercontent.com/mhmdali94/Docker/main/management/homepage/homepage-ubuntu.sh
chmod +x homepage-ubuntu.sh
sudo bash homepage-ubuntu.sh
wget https://raw.githubusercontent.com/mhmdali94/Docker/main/management/homepage/homepage-ubuntu.sh
chmod +x homepage-ubuntu.sh
The script installs Docker if needed, then starts the Homepage container with a default config directory automatically.
sudo bash homepage-ubuntu.sh
Open your browser and navigate to:
http://<your-server-ip>:3333
Edit the config files in the ./config/ directory to add your services. The dashboard hot-reloads automatically — no restart needed.
nano ./config/services.yaml
| Port | Purpose |
|---|---|
| 3333 | Homepage Web UI |
Homepage is the most actively maintained open-source server dashboard available today, with thousands of GitHub stars and a rapidly growing integration library. It is designed specifically for self-hosters who run multiple services on one or more servers and want a single, beautiful starting point that shows live status for everything at a glance. Unlike older dashboards, Homepage is built with Next.js for speed, hot-reloads config changes without restarts, reads your Docker containers automatically via socket, and has native integrations for 100+ popular self-hosted services — showing live data like container counts, download speeds, uptime percentages, disk usage, and media library sizes directly on the dashboard tile.
Homepage is the best choice for server dashboards because it combines the deepest integration library with the cleanest interface and zero operational overhead. The Docker auto-discovery feature alone saves hours of manual config: add homepage.* labels to any container and it appears on your dashboard automatically. The built-in icon library covers 6000+ services so you never need to source icons manually. Config is plain YAML — version-controllable, easy to back up, and portable across servers. The system info widget shows CPU, RAM, and disk without any extra monitoring stack. For MENA users, Homepage runs perfectly in Arabic environments even though the UI itself is English-only.
Homepage uses port 3333 by default. Block this port from the internet using ufw (ufw deny 3333) and access it only through a reverse proxy on port 443. If you use Nginx Proxy Manager, Homepage never needs to be exposed publicly — only the proxy's 443 port needs to be open. The Docker socket mount is read-only and internal — no firewall rules needed for it.
Dashy is a strong alternative with a built-in GUI editor — better for users who prefer clicking over editing YAML. Homarr has a drag-and-drop interface and is popular for homelab beginners. Heimdall is simpler and lighter but has fewer service integrations. Flame is minimal and fast but lacks live stats. Organizr adds user authentication natively. Homepage is the right choice when you want the deepest service integration library and Docker auto-discovery without learning a GUI.
If you need a dashboard with a GUI editor rather than YAML files, Dashy or Homarr will suit you better. If you have only two or three services, a browser bookmarks folder is lighter and simpler. Homepage is English-only in its interface — if you need a fully Arabic dashboard UI, it is not currently supported. If your server has very limited resources (under 256 MB RAM), consider a lighter option like Flame.
PrismaTechWork provides end-to-end infrastructure services — from initial deployment and security hardening to ongoing monitoring, automated backups, and dedicated support. Whether you need a single-server setup or a multi-site network, our team ensures your infrastructure is built right, secured properly, and maintained reliably.
Yes. Homepage is fully open-source under the GPLv3 license and completely free. There is no paid tier, no cloud service, and no telemetry. You self-host it on your own server and own all your data.
Homepage reads the Docker socket (/var/run/docker.sock) and can automatically discover running containers. By adding homepage.* labels to your containers, they appear as tiles on your dashboard automatically — no manual config needed. Labels include homepage.name, homepage.group, homepage.icon, homepage.href, and homepage.description.
Homepage supports 100+ service integrations with live stats widgets — including Portainer, Proxmox, Grafana, Sonarr, Radarr, Jellyfin, Nextcloud, Uptime Kuma, Pi-hole, AdGuard Home, Nginx Proxy Manager, Gitea, and many more. Each integration pulls live data directly into your dashboard tiles.
Edit the services.yaml file in the config directory. Each service needs a name, href (URL), optionally an icon, and a description. Icons are resolved automatically from a built-in library of 6000+ service icons — just use the service name (e.g., icon: portainer.png). The dashboard hot-reloads when you save the file, no restart needed.
Homepage itself does not have built-in authentication. The recommended approach is to put it behind Nginx Proxy Manager with HTTP Basic Auth or OAuth2 Proxy for SSO. Never expose Homepage directly to the internet without authentication — it can show sensitive internal service information.
Homepage is the most actively maintained of the three and has the deepest service integration library (100+ integrations). Dashy has a GUI editor which is easier for non-technical users. Heimdall is simpler and lighter but has fewer integrations. Homepage is the best choice for server environments where you want live stats from your services.
Yes. Homepage supports multiple pages configured in settings.yaml. Each page can have its own groups, layout, and widgets. This lets you separate your dashboard into sections like Monitoring, Media, DevOps, and Networking.
Yes. Homepage has a built-in system widget that shows CPU usage, RAM usage, disk usage, and network throughput in real time. Add it to your widgets.yaml file. It reads system metrics directly without needing any external monitoring tool.