Skip to main content
Mini PC Lab logo
Mini PC LabMini PCs for Homelabs
tutorials

How to Set Up Homepage Dashboard on Mini PC

By Max · May 2, 2026 · Updated May 5, 2026

This article contains affiliate links. If you purchase through our links, we may earn a commission at no extra cost to you. We only recommend products we’ve thoroughly researched and verified.

How to set up a home server dashboard hero image

A service dashboard turns your mini PC from a collection of ports and IPs into a coherent home server. One URL shows your services, their status, and live stats — CPU, memory, disk usage, and per-service metrics like Plex active streams, Pi-hole query count, and Sonarr queue. This guide deploys Homepage the most widely used option in the homelab community, walks through service configuration, and sets up system stat widgets.

What you need:

  • A mini PC running Ubuntu Server 24.04 LTS with Docker installed
  • Docker Compose services already running Jellyfin, HA, Pi-hole, etc.

Homepage auto-discovers Docker containers and reads their labels for service configuration. It’s YAML-configured, which means your setup is in version-controlled files rather than a database.

Deploy Homepage

mkdir -p ~/homepage/{config,icons}
nano ~/homepage/docker-compose.yml
services:
  homepage:
    image: ghcr.io/gethomepage/homepage:latest
    container_name: homepage
    ports:
      - "3000:3000"
    volumes:
      - ./config:/app/config
      - /var/run/docker.sock:/var/run/docker.sock:ro  # Read-only Docker access
    environment:
      HOMEPAGE_VAR_MY_NAME: "Home Server"
    restart: unless-stopped
cd ~/homepage
docker compose up -d

Access at http://192.168.1.100:3000.

Configure Services

Homepage configuration lives in YAML files under ~/homepage/config/:

nano ~/homepage/config/services.yaml
- Media:
    - Jellyfin:
        icon: jellyfin.png
        href: http://192.168.1.100:8096
        description: Media server
        widget:
          type: jellyfin
          url: http://192.168.1.100:8096
          key: YOUR-JELLYFIN-API-KEY  # Settings → API Keys in Jellyfin

    - Plex:
        icon: plex.png
        href: http://192.168.1.100:32400
        description: Plex Media Server
        widget:
          type: plex
          url: http://192.168.1.100:32400
          key: YOUR-PLEX-TOKEN

- Automation:
    - Home Assistant:
        icon: home-assistant.png
        href: http://192.168.1.100:8123
        description: Smart home
        widget:
          type: homeassistant
          url: http://192.168.1.100:8123
          key: YOUR-HA-LONG-LIVED-TOKEN  # Profile → Long-Lived Access Tokens

    - n8n:
        icon: n8n.png
        href: http://192.168.1.100:5678
        description: Workflow automation

- Network:
    - Pi-hole:
        icon: pihole.png
        href: http://192.168.1.100:8080
        description: DNS ad blocking
        widget:
          type: pihole
          url: http://192.168.1.100:8080
          key: YOUR-PIHOLE-API-KEY  # Pi-hole admin → API Token

    - Nginx Proxy Manager:
        icon: nginx-proxy-manager.png
        href: http://192.168.1.100:81
        description: Reverse proxy

- Management:
    - Portainer:
        icon: portainer.png
        href: https://192.168.1.100:9443
        description: Docker management
        widget:
          type: portainer
          url: https://192.168.1.100:9443
          env: 1
          key: YOUR-PORTAINER-API-KEY  # Portainer → Account → Access Tokens

    - Uptime Kuma:
        icon: uptime-kuma.png
        href: http://192.168.1.100:3001
        description: Service monitoring
        widget:
          type: uptimekuma
          url: http://192.168.1.100:3001
          slug: YOUR-STATUS-PAGE-SLUG

- Storage:
    - Nextcloud:
        icon: nextcloud.png
        href: http://192.168.1.100:8080
        description: Cloud storage

    - Immich:
        icon: immich.png
        href: http://192.168.1.100:2283
        description: Photo backup
        widget:
          type: immich
          url: http://192.168.1.100:2283
          key: YOUR-IMMICH-API-KEY

Configure System Stats Widgets

nano ~/homepage/config/widgets.yaml
- resources:
    cpu: true
    memory: true
    disk: /
    cputemp: true
    label: Mini PC

- search:
    provider: duckduckgo
    target: _blank

- datetime:
    text_size: xl
    format:
      dateStyle: long
      timeStyle: short
      hour12: true

- openweathermap:
    label: Home
    latitude: 40.7128
    longitude: -74.0060
    units: imperial
    provider: openweathermap
    apiKey: YOUR-OWM-KEY  # Free at openweathermap.org
    cache: 5

Configure Docker Integration

Homepage can auto-discover Docker containers with the right labels:

nano ~/homepage/config/docker.yaml
my-server:
  socket: /var/run/docker.sock

Then add labels to your other Docker containers:

# In any service's docker-compose.yml:
services:
  jellyfin:
    image: jellyfin/jellyfin:latest
    labels:
      - "homepage.group=Media"
      - "homepage.name=Jellyfin"
      - "homepage.icon=jellyfin.png"
      - "homepage.href=http://192.168.1.100:8096"
      - "homepage.description=Media Server"

Containers with these labels appear on the dashboard automatically.


Option 2: Homarr GUI Configuration

Homarr is configured entirely through a drag-and-drop web interface — no YAML files. Better for users who prefer visual configuration.

Deploy Homarr

mkdir -p ~/homarr/{configs,data,icons}
nano ~/homarr/docker-compose.yml
services:
  homarr:
    image: ghcr.io/ajnart/homarr:latest
    container_name: homarr
    ports:
      - "7575:7575"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ./configs:/app/data/configs
      - ./data:/data
      - ./icons:/app/public/icons
    restart: unless-stopped
cd ~/homarr
docker compose up -d

Access at http://192.168.1.100:7575. No initial configuration required — use the drag-and-drop interface to add tiles and widgets.


Making the Dashboard Your Browser Home Page

Set http://192.168.1.100:3000 or your domain if behind NPM as the home page in your browser. Every new tab opens your mini PC dashboard — services, stats, and weather at a glance.

For mobile access, add the URL as a home screen shortcut on iOS/Android. It opens as a full-screen web app.


Adding to Nginx Proxy Manager

For HTTPS access and a clean URL:

In NPM → Add Proxy Host:

  • Domain: home.yourdomain.com
  • Forward to: homepage:3000
  • SSL → Let’s Encrypt

For internal-only access, add an Access List restricting to 192.168.1.0/24.


Keeping the Dashboard Updated

cd ~/homepage
docker compose pull && docker compose up -d

Homepage releases updates frequently. Run monthly or add to your Watchtower configuration for automatic updates.

Who Should Skip This Comparison

Frequently Asked Questions

What is a home server dashboard and why do I need one?

A home server dashboard is a web page that shows all your self-hosted services in one place — links to Jellyfin, Home Assistant, Nextcloud, Portainer, Pi-hole — along with system stats CPU, memory, disk and service status indicators. Instead of remembering 10 different IP:port combinations, you open one URL and click to any service.

What is the difference between Homepage and Homarr?

Homepage gethomepage.dev is YAML-configured, lightweight, and integrates directly with Docker to auto-discover containers. Homarr has a drag-and-drop web UI for configuration and built-in widgets Sonarr queue, Plex activity, download speed. Homepage is preferred for a mini PC home server because it’s simpler and reads Docker metadata automatically. Homarr is better if you prefer a GUI over YAML files.

Can the dashboard show real-time stats like CPU and memory usage?

Yes. Homepage integrates with Glances or reads system metrics directly, showing CPU usage, memory, disk I/O, and network throughput in real-time widgets. It also integrates with service APIs — Sonarr queue count, Plex active streams, Pi-hole query statistics — pulling live data directly from each service.

Is the dashboard accessible from outside my home network?

Yes, if you expose it via Nginx Proxy Manager with HTTPS and a domain name. Add access controls Cloudflare Access, Authelia, or NPM’s built-in access list to prevent unauthorized access to your service dashboard from the internet. For most users, LAN-only access is sufficient.