services: homepage: image: ${HOMEPAGE_IMAGE} container_name: ${HOMEPAGE_NAME} restart: unless-stopped networks: - tsysdevstack-supportstack-demo-network ports: - "${BIND_ADDRESS}:${HOMEPAGE_PORT}:3000" environment: - PORT=3000 - HOMEPAGE_URL=http://${BIND_ADDRESS}:${HOMEPAGE_PORT} - BASE_URL=http://${BIND_ADDRESS}:${HOMEPAGE_PORT} - HOMEPAGE_ALLOWED_HOSTS=${BIND_ADDRESS}:${HOMEPAGE_PORT},localhost:${HOMEPAGE_PORT} volumes: - ${HOMEPAGE_CONFIG_PATH}:/app/config - ${DOCKER_SOCKET_PROXY_SOCKET_PATH}:${DOCKER_SOCKET_PROXY_SOCKET_PATH}:ro # For Docker integration mem_limit: ${HOMEPAGE_MEM_LIMIT} mem_reservation: ${HOMEPAGE_MEM_LIMIT} deploy: resources: limits: cpus: '${HOMEPAGE_CPU_LIMIT}' memory: ${HOMEPAGE_MEM_LIMIT} reservations: cpus: '${HOMEPAGE_CPU_LIMIT}' memory: ${HOMEPAGE_MEM_LIMIT} healthcheck: test: ["CMD", "wget", "--quiet", "--tries=1", "--spider", "http://localhost:3000/api/health"] interval: ${HEALTH_CHECK_INTERVAL} timeout: ${HEALTH_CHECK_TIMEOUT} start_period: ${HOMEPAGE_STARTUP_TIMEOUT} # Longer start period for homepage retries: ${HEALTH_CHECK_RETRIES} # Homepage integration labels for automatic discovery labels: homepage.group: "Support Stack" homepage.name: "Homepage Dashboard" homepage.icon: "homepage.png" homepage.href: "http://${BIND_ADDRESS}:${HOMEPAGE_PORT}" homepage.description: "Homepage dashboard for Support Stack" homepage.type: "homepage" user: "${TSYSDEVSTACK_UID}:${TSYSDEVSTACK_DOCKER_GID}" # Direct access to Docker socket for discovery networks: tsysdevstack-supportstack-demo-network: external: true name: ${TSYSDEVSTACK_NETWORK_NAME}