services: homepage: image: ghcr.io/gethomepage/homepage:latest container_name: homepage restart: unless-stopped networks: - proxy - socket_proxy volumes: - ./config:/app/config environment: - PUID=1000 - PGID=1000 - TZ=America/Sao_Paulo - HOMEPAGE_ALLOWED_HOSTS=${HOMEPAGE_ALLOWED_HOSTS} - DOCKER_HOST=tcp://socket-proxy:${SOCKET_PROXY_PORT} 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 # Allow listing containers - POST=0 # Disallow POST requests (write access) networks: proxy: external: true socket_proxy: internal: true