What Homarr Does and Why It Belongs on Your Home Server
Managing a self-hosted home server usually means keeping a mental map of dozens of local IP addresses and ports – 192.168.1.100:8096 for Jellyfin, :8989 for Sonarr, :7878 for Radarr, and so on until the list stops being manageable. Homarr solves that problem by giving you a single, browser-based dashboard where every service lives behind a clean icon, a clickable link, and – if configured – a live status widget. You open one URL and see everything running on your network.
Homarr is open-source, actively maintained, and built specifically for the self-hosted crowd. It supports Docker-based deployments, integrates with services like Sonarr, Radarr, and Prowlarr to surface real-time data directly on tiles, and lets you arrange your dashboard layout with a drag-and-drop editor. It is not just a bookmarks page – it is a live control surface for your home lab.
This guide covers a full Docker Compose installation on a Linux-based home server, initial configuration, service integration, and a few settings worth adjusting before you call it done.

Prerequisites and What You Need Before Installing
You need a Linux machine running Docker and Docker Compose. Any Debian or Ubuntu-based system works well – a Raspberry Pi 4 or 5, an old PC repurposed as a server, or a dedicated mini PC like a Beelink or Minisforum unit. Docker Engine should be installed through the official Docker repository, not through the distro’s default package manager, since the latter often ships outdated versions. If you are on Debian or Ubuntu, follow Docker’s official installation script to get the current release.
You should also have a terminal open with sudo access, a text editor (nano works fine), and a dedicated directory for your Docker Compose projects. A clean folder structure helps long-term – something like /opt/stacks/homarr/ keeps things organized and easy to back up. Homarr will need a persistent volume to store its configuration, so that directory also needs to be writable by the Docker process.
No domain name is required for a local setup. You will access Homarr via your server’s local IP address and whatever port you assign, typically port 7575. If you later want to expose it over a reverse proxy with a domain, tools like Nginx Proxy Manager or Caddy handle that cleanly, but that is an optional step beyond this guide’s scope.
Installing Homarr with Docker Compose
Create your project directory and navigate into it:
- mkdir -p /opt/stacks/homarr
- cd /opt/stacks/homarr
Create a docker-compose.yml file with the following content. Open your editor with nano docker-compose.yml and paste this in:
- version: ‘3’
- services:
- homarr:
- image: ghcr.io/ajnart/homarr:latest
- container_name: homarr
- restart: unless-stopped
- ports:
- – “7575:7575”
- volumes:
- – /var/run/docker.sock:/var/run/docker.sock
- – ./homarr/configs:/app/data/configs
- – ./homarr/icons:/app/public/icons
- – ./homarr/data:/data
Save the file, then run docker compose up -d to pull the image and start the container. The first pull takes a minute or two depending on your connection. Once it is running, open a browser and navigate to http://YOUR-SERVER-IP:7575. You will see the Homarr setup screen.

Configuring Your Dashboard: Adding Services and Widgets
The first time you land on Homarr, you are dropped into an empty dashboard with an edit mode toggle in the top-right corner. Click Edit Mode to unlock the layout. From there you can add apps, widgets, and categories. Clicking the plus icon in edit mode opens a sidebar where you search for pre-built app definitions – Homarr ships with icons and integration configs for hundreds of common self-hosted services.
Adding a service is straightforward. Search for your app (say, Radarr), click it, then fill in the internal URL pointing to your Radarr instance – something like http://192.168.1.100:7878. If you want live integration data (queue count, download status), enter your Radarr API key in the integration settings tab. Homarr will then pull real-time stats and display them directly on the tile. The same applies to Sonarr, Prowlarr, qBittorrent, and several other apps. For those running a full media stack, Homarr pairs naturally with those services – if you have already set up Jellyfin with Overseerr, both can be added as integrated tiles.
Widgets work separately from app tiles. You can add a clock, a weather widget, a search bar, or a calendar. These are dropped onto the grid the same way as apps, and their size is adjustable by dragging the tile corners. The layout saves automatically, and your configuration persists in the mounted config volume – meaning a container restart or update does not wipe your setup.
Securing Homarr and Managing Access
Out of the box, Homarr has no authentication on its dashboard. Anyone on your local network who knows the address can see and interact with it. For a home network where you trust every device, that is acceptable, but if you ever expose it outside your LAN – even through a VPN – enabling the built-in authentication is worth doing.
Go to Settings, then Users, and create an admin account. Once a user is created, Homarr will require login to access the dashboard. You can also create guest accounts with read-only access, which is useful if you want family members to use the dashboard without being able to modify it. The permission system is simple but functional.
If you plan to expose Homarr outside your home network, put it behind a reverse proxy with HTTPS. Running it directly on port 7575 without TLS over the internet is not a good configuration. Nginx Proxy Manager makes this straightforward if you already have it running – point a subdomain at port 7575 and let it handle the certificate via Let’s Encrypt.

Keeping Homarr Updated and Backed Up
Homarr releases updates regularly through its GitHub container registry. Updating is a two-step process: pull the latest image and recreate the container. Run docker compose pull from your /opt/stacks/homarr directory, followed by docker compose up -d. The container restarts with the new image, and your configuration – stored in the mounted volumes – carries over untouched. Tools like Watchtower can automate this if you prefer unattended updates, though for a dashboard you interact with daily, manual updates let you review changelogs first.
Backing up Homarr means backing up the mounted volumes. The configs folder contains your entire dashboard layout in JSON format. Copying that directory to a separate drive, NAS, or cloud storage on a regular schedule is all you need. If you ever need to migrate Homarr to a new machine, copy the compose file and the config directory, run the same docker compose up -d on the new host, and your dashboard is exactly as you left it. The portability is one of the strongest practical arguments for running Homarr in Docker rather than installing it natively.
A single JSON file in that configs directory holds the entire state of your dashboard – every tile, every widget position, every API key reference. Treat it with the same care you would give any credentials file.





