Kituwa IT · Self-hosting guides

Install Homarr with Docker Compose

Self-hosted server dashboard and launcher

dashboardhomepagebookmarks

Homarr is a self-hosted dashboard and app launcher. It links every service on your server, shows live status widgets, and gives you one browser tab to rule them all from. It's a small thing, but the tab it replaces is worth it.

Category
Productivity
License
MIT / AGPL
Needs
Nothing
Image
ghcr.io/homarr-labs/homarr

What it is

Drag tiles onto a board, point each at a URL or a Docker container, and get a launcher with status indicators. Newer versions support multiple users with per-user boards, so a family dashboard can show only what each person actually uses.

Before you start

  • Recent 1.x releases changed how boards and users are stored. Check whether your version wants SQLite or Postgres before assuming the old compose file works.
  • Mounting the Docker socket lets Homarr show container status. Skip it if you'd rather not grant that access — the links work fine without it.
  • Homarr is a launcher, not a monitor. Pair it with Uptime Kuma and link the status page from a board tile.

1 — Write the compose file

Command / configuration
services:
  homarr:
    image: ghcr.io/homarr-labs/homarr:latest
    container_name: homarr
    restart: unless-stopped
    ports:
      - "127.0.0.1:7575:7575"
    environment:
      SECRET_ENCRYPTION_KEY: CHANGE_ME_32_chars_minimum
      DB_TYPE: sqlite
      TZ: UTC
      NODE_ENV: production
    volumes:
      - ./homarr/appdata:/app/appdata
    healthcheck:
      test: ["CMD", "wget", "--spider", "-q", "http://localhost:7575/"]
      interval: 30s
      timeout: 5s
      retries: 3

2 — Start it

Command / configuration
mkdir -p ~/services/homarr/appdata
cd ~/services/homarr
docker compose up -d
docker compose logs -f homarr | grep -i "ready\|error"

3 — First-run setup

  1. Open http://yourhost:7575 and create the admin account.
  2. Build a board and drag in tiles. The useful types: App for a link, Service Worker for a PWA, and Ping if you just want a green dot.
  3. Use Groups to separate services by function — Infrastructure, Media, Productivity — so the board stays legible once you pass thirty tiles.
  4. Add users under Settings → Users and give each their own board if this is a shared home server.
  5. Set it as your browser's homepage and as the default page on any wall tablet. That's the entire workflow this app is for.

4 — If you run a lot of services

Command / configuration
# copy the URL list straight out of docker
docker ps --format '{{.Names}}' | sed 's/^/http:\/\/localhost:7575 -> /'
Tiles point at URLs, not containersWhen you add a tile for nextcloud, give it the public URL a human uses, not the internal container address. The dashboard is only useful if every link is one click from working, and internal names don't resolve in your browser.

Help when you need it

Want help getting this running?

We can help with a supported Linux host, application setup, migration or troubleshooting. Contact us to confirm the software, scope and scheduling before ordering.

Related guides

← Browse all 30 guides · Back to top