Files
app-catalog-felhom.eu/templates/homepage/docker-compose.yml
T
admin 093e5ed231 R-782: homepage allows the box's own host name (held — not for main tonight)
Without HOMEPAGE_ALLOWED_HOSTS every /api/* call under the box's name was
refused (400), so services and widgets stayed empty. Measured on the
bench. Glance's public page measured; its login is an operator question.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0159rPz1ZhFKsS53msqPYxtS
2026-10-06 20:52:28 +02:00

50 lines
1.7 KiB
YAML

# Homepage - Személyre szabható kezdőlap szolgáltatás widgetekkel
# Domain: ${SUBDOMAIN}.${DOMAIN}
# Database: None (file-based)
# RAM: ~50M (mem_limit: 256M) | Pi-compatible: Yes
#
# Environment variables:
# DOMAIN - Your domain (e.g., demo-felhom.eu)
services:
homepage:
image: ghcr.io/gethomepage/homepage:v1.13.2
container_name: homepage
restart: unless-stopped
environment:
- TZ=Europe/Budapest
# R-782 (measured 2026-10-06 on the bench, v1.13.2): since v1.0 Homepage refuses every /api/*
# request whose Host is not listed here — "Host validation failed" (400) — so the page loaded but
# its services and widgets stayed empty. The page itself and the healthcheck's 127.0.0.1 are not
# checked. With the box's own name listed, /api/services answers 200.
- HOMEPAGE_ALLOWED_HOSTS=${SUBDOMAIN}.${DOMAIN}
volumes:
- homepage_config:/app/config
- /var/run/docker.sock:/var/run/docker.sock:ro
networks:
- traefik-public
deploy:
resources:
limits:
memory: 256M
healthcheck:
test: ["CMD", "wget", "--spider", "-q", "http://127.0.0.1:3000"]
interval: 30s
timeout: 5s
retries: 3
start_period: 30s
labels:
- "traefik.enable=true"
- "traefik.http.routers.homepage.rule=Host(`${SUBDOMAIN}.${DOMAIN}`)"
- "traefik.http.routers.homepage.entrypoints=websecure"
- "traefik.http.routers.homepage.tls=true"
- "traefik.http.routers.homepage.tls.certresolver=letsencrypt"
- "traefik.http.services.homepage.loadbalancer.server.port=3000"
volumes:
homepage_config:
networks:
traefik-public:
external: true