services: homepage: # image: ghcr.io/gethomepage/homepage:latest build: context: . dockerfile: Dockerfile container_name: homepage restart: unless-stopped networks: - proxy - socket_proxy # Volumes are commented out to use the baked-in config from Git # volumes: # - ./config:/app/config environment: - PUID=${PUID} - PGID=${PGID} - TZ=${TZ} - HOMEPAGE_ALLOWED_HOSTS=${HOMEPAGE_ALLOWED_HOSTS} - DOCKER_HOST=tcp://socket-proxy:${SOCKET_PROXY_PORT} - SOCKET_PROXY_PORT=${SOCKET_PROXY_PORT} - HOMEPAGE_VAR_PIHOLE_1_IP=${HOMEPAGE_VAR_PIHOLE_1_IP} - HOMEPAGE_VAR_PIHOLE_1_KEY=${HOMEPAGE_VAR_PIHOLE_1_KEY} - HOMEPAGE_VAR_PIHOLE_2_IP=${HOMEPAGE_VAR_PIHOLE_2_IP} - HOMEPAGE_VAR_PIHOLE_2_KEY=${HOMEPAGE_VAR_PIHOLE_2_KEY} - HOMEPAGE_VAR_OPENWEATHERMAP_API_KEY=${HOMEPAGE_VAR_OPENWEATHERMAP_API_KEY} - HOMEPAGE_VAR_OPENWEATHERMAP_LOCATION=${HOMEPAGE_VAR_OPENWEATHERMAP_LOCATION} labels: - "traefik.enable=true" - "traefik.http.routers.homepage.rule=Host(`homepage.${DOMAIN}`)" - "traefik.http.routers.homepage.entrypoints=websecure" - "traefik.http.routers.homepage.tls.certresolver=cloudflare" - "traefik.http.routers.homepage.tls=true" - "traefik.docker.network=proxy" - "traefik.http.services.homepage.loadbalancer.server.port=3000" healthcheck: test: [ "CMD", "wget", "--spider", "-q", "http://localhost:3000" ] interval: 30s timeout: 10s retries: 3 logging: driver: "json-file" options: max-size: "10m" max-file: "3" socket-proxy: image: tecnativa/docker-socket-proxy container_name: socket-proxy restart: unless-stopped networks: - socket_proxy volumes: - /var/run/docker.sock:/var/run/docker.sock:ro environment: - CONTAINERS=1 - SERVICES=1 - TASKS=1 - POST=0 networks: proxy: external: true socket_proxy: internal: true