Homepage (Dashboard) with Docker-Compose

Homepage (Dashboard) with Docker-Compose

After using Heimdall as my preferred dashboard for a while, I decided to give Homepage another try. Homepage simply offers a more versatile, customizable, and functional dashboard. While I appreciated the simplicity of Heimdall, it limited me in some significant ways. Homepage provides a wider range of features and integrations that better suit my needs.

Setting up Homepage within a home lab is straightforward, especially with Docker Compose. I use a separate Linux container within my Proxmox cluster for almost every self-hosted app. This setup allows for replication between nodes and high availability features.

The following is a guide on how I set up Homepage in my home lab.

Prerequisites

Before you begin, ensure you have the following installed on your server:

  • Docker
  • Docker-Compose

Step-by-Step Guide

  1. create a directory for the Homepage project:
   mkdir -p ~/homepage
   cd ~/homepage
  1. create the docker-compose.yml:
   touch docker-compose.yml
  1. open the docker-compose.yml file with your favorite text editor and add the following configuration:
   version: "3.3"
   services:
     homepage:
       image: ghcr.io/gethomepage/homepage:latest
       container_name: homepage
       environment:
         PUID: 1000 # optional, your user id
         PGID: 1000 # optional, your group id
       ports:
         - 3000:3000
       volumes:
         - ./config:/app/config
         - /var/run/docker.sock:/var/run/docker.sock:ro # optional
       restart: unless-stopped

This configuration does the following:

  • Pulls the latest image of Homepage.
  • Names the container homepage.
  • Maps port 3000 of your host to port 3000 of the container.
  • Mounts a local directory (./config) to the container’s config directory (/app/config).
  • Restarts the container automatically unless it is explicitly stopped.
  1. create the configuration directory specified in the Docker-Compose file:
   mkdir -p ~/homepage/config
  1. start the Homepage container by running:
   docker-compose up -d

The -d flag runs the container in detached mode.

  1. open your web browser and navigate to http://localhost:3000

Customizing Homepage

You can customize Homepage by editing the configuration files in the ~/homepage/config directory. Homepage allows you to add widgets, links, and integrate various services to tailor the dashboard to your needs.

Example

Below is a screenshot of my current dashboard, which serves as the start page in my Firefox browser on my MacBook.

Homepage meanwhile supports over 100 service integrations and continues to be actively developed.

If you're in search of a versatile dashboard, I highly recommend giving Homepage a try.