Skip to content

Homepage

Introduction

Homepage is a dashboard for your homelab just like Fenrus.
The big difference is that configuring the dashboard is a bit more difficult, because you don't use a GUI instead you are using yaml files.

Deploying Homepage

This time I decided to deploye this Docker container a little bit different.
I SSHed to my Portainer VM and created the directory and files for the Docker container.

Steps: 1. I SSHed to my Portainer VM 2. Created the Homepage folder with the Docker Compose file

Homepage Config
services:
  dockerproxy:
    image: ghcr.io/tecnativa/docker-socket-proxy:latest
    container_name: dockerproxy
    environment:
      - CONTAINERS=1 # Allow access to viewing containers
      - SERVICES=1 # Allow access to viewing services (necessary when using Docker Swarm)
      - TASKS=1 # Allow access to viewing tasks (necessary when using Docker Swarm)
      - POST=0 # Disallow any POST operations (effectively read-only)
    ports:
      - 127.0.0.1:2375:2375
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro # Mounted as read-only
    restart: unless-stopped

  homepage:
    image: ghcr.io/gethomepage/homepage:latest
    container_name: homepage
    env_file: .env
    environment:
      - PUID=$PUID
      - PGID=$PGID
      - HOMEPAGE_VAR_PROXMOX_URL=$HOMEPAGE_VAR_PROXMOX_URL
      - HOMEPAGE_VAR_PROXMOX_USERNAME=$HOMEPAGE_VAR_PROXMOX_USERNAME
      - HOMEPAGE_VAR_PROXMOX_PASSWORD=$HOMEPAGE_VAR_PROXMOX_PASSWORD
      - HOMEPAGE_VAR_PORTAINER_URL=$HOMEPAGE_VAR_PORTAINER_URL
      - HOMEPAGE_VAR_PORTAINER_API=$HOMEPAGE_VAR_PORTAINER_API
      - HOMEPAGE_VAR_FRESHRSS_URL=$HOMEPAGE_VAR_FRESHRSS_URL
      - HOMEPAGE_VAR_FRESHRSS_MONITOR=$HOMEPAGE_VAR_FRESHRSS_MONITOR
      - HOMEPAGE_VAR_FRESHRSS_USERNAME=$HOMEPAGE_VAR_FRESHRSS_USERNAME
      - HOMEPAGE_VAR_FRESHRSS_PASSWORD=$HOMEPAGE_VAR_FRESHRSS_PASSWORD
      - HOMEPAGE_VAR_BESZEL_URL=$HOMEPAGE_VAR_BESZEL_URL
      - HOMEPAGE_VAR_BESZEL_USERNAME=$HOMEPAGE_VAR_BESZEL_USERNAME
      - HOMEPAGE_VAR_BESZEL_PASSWORD=$HOMEPAGE_VAR_BESZEL_PASSWORD
      - HOMEPAGE_VAR_UPTIMEKUMA_URL=$HOMEPAGE_VAR_UPTIMEKUMA_URL
      - HOMEPAGE_VAR_FRESHRSS_MONITOR=$HOMEPAGE_VAR_FRESHRSS_MONITOR
      - HOMEPAGE_VAR_UPTIMEKUMA_SLUG=$HOMEPAGE_VAR_UPTIMEKUMA_SLUG
      - HOMEPAGE_VAR_GOTIFY_URL=$HOMEPAGE_VAR_GOTIFY_URL
      - HOMEPAGE_VAR_GOTIFY_MONITOR=$HOMEPAGE_VAR_GOTIFY_MONITOR
      - HOMEPAGE_VAR_GOTIFY_KEY=$HOMEPAGE_VAR_GOTIFY_KEY
      - HOMEPAGE_VAR_MKDOCS_URL=$HOMEPAGE_VAR_MKDOCS_URL
      - HOMEPAGE_VAR_MKDOCS_MONITOR=$HOMEPAGE_VAR_MKDOCS_MONITOR
      - HOMEPAGE_VAR_NPM_MONITOR=$HOMEPAGE_VAR_NPM_MONITOR
      - HOMEPAGE_VAR_UNIPRIX_URL=$HOMEPAGE_VAR_UNIPRIX_URL
      - HOMEPAGE_VAR_JENKINS_LOGIN=$HOMEPAGE_VAR_JENKINS_LOGIN
      - HOMEPAGE_VAR_JENKINS_URL=$HOMEPAGE_VAR_JENKINS_URL
      - HOMEPAGE_VAR_SPEEDTESTTRACKER_URL=$HOMEPAGE_VAR_SPEEDTESTTRACKER_URL
      - HOMEPAGE_VAR_SYNCTHING_URL=$HOMEPAGE_VAR_SYNCTHING_URL
      - HOMEPAGE_VAR_FIREFLY_URL=$HOMEPAGE_VAR_FIREFLY_URL
      - HOMEPAGE_VAR_OBSIDIAN_URL=$HOMEPAGE_VAR_OBSIDIAN_URL
      - HOMEPAGE_VAR_WALLOS_URL=$HOMEPAGE_VAR_WALLOS_URL
      - HOMEPAGE_VAR_OPENWEBUI_URL=$HOMEPAGE_VAR_OPENWEBUI_URL
    ports:
      - 3008:3000
    volumes:
      - /home/helixia/homepage/config:/app/config # Make sure your local config directory exists
      - /var/run/docker.sock:/var/run/docker.sock:ro # optional, for docker integrations
    restart: unless-stopped
You might notice something interesting. In this project I used a Docker environment files for the first tinme!
3. When starting the Docker container docker compose up -d the needed files are being created in the config folder 4. The most important files are service.yaml, settings.yaml and bookmark.yaml 5. After changing one of the files just reload the page to apply the change