What Homarr Does and Why It Matters
Running a home server often means juggling a dozen browser bookmarks, memorizing port numbers, and switching between interfaces that were never designed to talk to each other. Homarr solves this by giving you a single, customizable dashboard where every self-hosted service lives in one place – Plex, Sonarr, Pi-hole, Nextcloud, and anything else you’re running can all appear as tiles with live status indicators and quick-launch links. It is open-source, Docker-native, and built for exactly the kind of person who wants control without constant friction.
What separates Homarr from simpler alternatives like Homer or Dasherr is its integration layer. Many dashboard tools are glorified link pages. Homarr connects directly to supported services through their APIs and displays real data – download queues, server health, media library counts, DNS statistics – directly on the dashboard tiles. Setup takes roughly 20 to 30 minutes, and the result is a genuinely functional control center rather than a styled bookmark list.

Prerequisites and Environment Setup
Before pulling the Homarr image, confirm that Docker and Docker Compose are installed on your server. This guide assumes you are running a Linux-based system – Ubuntu, Debian, or a similar distribution – though the Docker commands are identical on any platform Docker supports. You will also need to know the local IP address of your machine, since that is what you will use to access the dashboard from other devices on your network. If your server does not have a static local IP assigned yet, set one now through your router’s DHCP reservation settings to avoid the dashboard URL changing after a reboot.
Create a dedicated directory for your Homarr configuration files before writing any compose file. Keeping it organized from the start prevents config sprawl later, especially if you are already running other services on the same machine. A path like /opt/homarr or /home/youruser/docker/homarr works well. Inside that directory, create two subdirectories: configs and icons. Homarr stores all dashboard layouts and service credentials in the configs folder, and custom icons go into the icons folder if you choose to upload them.
Installing Homarr with Docker Compose
Inside your Homarr directory, create a file named docker-compose.yml and open it in any text editor. The basic compose configuration requires only a handful of fields, but getting the volume mounts right is where most first-time setups go wrong. Paste in the following structure and adjust the path values to match your own directory setup before saving:
The compose file should define a single service using the image ghcr.io/ajnart/homarr:latest. Set the container name to homarr and map port 7575 on the host to port 7575 inside the container. The three volume mounts you need are: your local configs directory mapped to /app/data/configs, your icons directory mapped to /app/public/icons, and the Docker socket at /var/run/docker.sock mapped read-only to /var/run/docker.sock. That Docker socket mount is what allows Homarr to detect other running containers automatically – it is optional, but skipping it means you lose the container status features. Set the restart policy to unless-stopped so the dashboard comes back up automatically after reboots.
Once the file is saved, run docker compose up -d from inside your Homarr directory. Docker will pull the image, which is around 200MB, and start the container. After a few seconds, open a browser on any device connected to your local network and navigate to http://YOUR_SERVER_IP:7575. You should see the Homarr welcome screen prompting you to set up your first board. If the page does not load, check that port 7575 is not blocked by a firewall rule on your server – running sudo ufw allow 7575 on Ubuntu will open it.
The first-run setup wizard walks you through naming your dashboard and selecting a layout style. You can always change these later, so pick whatever feels reasonable and move on. Homarr saves your board configuration as a JSON file inside the configs directory you mounted, which means your entire dashboard layout survives container updates or re-deployments without any manual backup work. That persistent config approach is one of Homarr’s more practical design decisions.

Adding Services and Configuring Integrations
Adding your first service tile is straightforward. In the Homarr interface, click the edit mode toggle in the top right corner, then click the plus icon to open the app search panel. Search for the service you want to add – if it is a recognized application like Jellyfin, Radarr, or Nextcloud, Homarr will auto-fill the icon and suggest a category. For services that are not in the built-in library, you can add them manually with a custom icon and URL. Position tiles by dragging them and resize them using the corner handle that appears in edit mode.
Integrations are configured separately from the tile itself, through the service settings panel. Click the gear icon on any tile, scroll to the integration section, and enter the internal URL of that service along with an API key if required. For Sonarr or Radarr, you will find the API key under Settings – General in those applications. For Pi-hole, the integration uses the admin password you set during Pi-hole setup. Once connected, the tile will begin displaying live data – Sonarr will show upcoming episode downloads, Pi-hole will display DNS query counts, and download clients like qBittorrent or Deluge will show active transfer speeds directly on the tile face.
Securing and Accessing the Dashboard
By default, Homarr requires no login, which is fine for a trusted local network but becomes a problem if you expose the service externally. Homarr includes a built-in user management system that you can enable through the dashboard settings panel. Navigate to Settings, then User Management, and create an admin account. Once an admin account exists, Homarr automatically requires login for anyone trying to access the dashboard. You can also create additional read-only user accounts, which is useful if you want family members to use the dashboard without being able to edit the layout or touch service integrations.
For remote access outside your home network, the recommended approach is placing Homarr behind a reverse proxy rather than exposing port 7575 directly to the internet. Nginx Proxy Manager and Caddy are both popular choices for this use case among home server operators. Pair the reverse proxy with a free domain from a service like DuckDNS, enable SSL through Let’s Encrypt, and your dashboard becomes accessible over HTTPS from anywhere. If you are building out a broader self-hosted stack, services like Photoprism can be added as tiles to Homarr once they are running, keeping everything accessible through one URL.
One point worth keeping in mind: the Docker socket mount that enables automatic container detection gives Homarr read access to information about every container running on your host. If you are running sensitive workloads on the same machine, review whether that trade-off is acceptable for your setup. A more security-conscious approach is to skip the socket mount and add services manually as static tiles, which removes the auto-detection feature but keeps the container boundary clean. The dashboard works perfectly well either way – the choice depends entirely on how much you trust the services sharing that host.






