Homepage

Homepage is a self-hosted dashboard application with a customisable interface for displaying service status widgets, bookmarks, and system information.

This compose file deploys Homepage with its configuration directory stored on an NFS volume. The dashboard is proxied through a Traefik reverse proxy with Cloudflare TLS certificates.

Docker Compose

# compose.yaml

services:
  homepage:
    image: gethomepage/homepage
    container_name: homepage
    restart: unless-stopped
    # ports:
    #  - 3000:3000
    networks:
      - homepage_proxy
    volumes:
      - type: volume
        source: docker-nfs
        target: /app/config
        volume:
          subpath: homepage/config
    environment:
      HOMEPAGE_ALLOWED_HOSTS: home.${TRAEFIK_BASE_URL}
      TZ: Europe/London
    labels:
      - "traefik.enable=true"
      - "traefik.docker.network=homepage_proxy"

      - "traefik.http.services.homepage.loadbalancer.server.port=3000"

      - "traefik.http.routers.homepage.rule=Host(`home.${TRAEFIK_BASE_URL}`)"
      - "traefik.http.routers.homepage.entrypoints=websecure"
      - "traefik.http.routers.homepage.tls=true"
      - "traefik.http.routers.homepage.tls.certresolver=cloudflare"

volumes:
  docker-nfs:
    driver: local
    driver_opts:
      type: nfs
      o: addr=xxx.xxx.xxx.xxx,nolock,soft,rw,nfsvers=4.2
      device: ":/mnt/nfs-volume"

networks:
  homepage_proxy:
    name: homepage_proxy

Environment Variables

# .env

TRAEFIK_BASE_URL=example.com

Traefik Configuration

# compose.yaml (excerpt)

services:
  traefik:
    image: traefik:latest
    container_name: traefik
    ...
    networks:
      - traefik
      # here
      - homepage_proxy
    ...

networks:
  # here
  homepage_proxy:
    name: homepage_proxy